耶誕節交換禮物 Web CTF Writeup
耶誕節交換禮物 Web CTF Writeup
這篇大致整理了我 2022/12/24 的解題筆記,再不整理可能 WEB 基礎都要忘光光了 QQ
當天剛好可以報名交換禮物活動但我 ... 懶 XD
Welcome
此題被分類在 Frontend 類別。
網頁分析
網頁上好像沒有什麼有趣的東西,所以我打算開 Burp Suite 檢查看看有沒有攔截到什麼有趣的訊息。
使用 Burp Suite 分析
先開啟一個新的專案,因為我們要攔截流量,所以我們選 Proxy --> HTTP history --> Open Browser ,接著用那個新開的 browser 輸入題目網頁的網址,這時 Burp Suite 應該就會有一些資訊,像是顯示發送出甚麼 request 給 server 之類的。
我們通常會點找有興趣的 request 然後右鍵 Send to Repeater 去檢查發送這個 request 會得到什麼 response 。
接著我們可以點選 Repeater 檢查剛剛轉過去的資料,這邊我們重新送出這個 request 時會發現 response 會 ...
程式安全 Computer Security 2023 FALL tool
程式安全 Computer Security 2023 FALL tool
目前應該是按照我解出的順序整理 writeup 。
發現平臺被默默放上兩題,但是分數都是 0 ,應該是工具相關的練習
tool, web-practice, 0
tool, pwntools-practice, 0
tool, web-practice, 0
http://edu-ctf.csie.org:54321/
這題有給網頁後端的 source code 如下:
123456789101112131415161718192021222324252627282930313233import osimport http.serverimport socketserverfrom datetime import datetimePORT = 54321class Handler(http.server.SimpleHTTPRequestHandler): def do_GET(self): print(f'GET {self.client_address[0]& ...
程式安全 Computer Security 2023 FALL hw0
程式安全 Computer Security 2023 FALL hw0
目前應該是按照我解出的順序整理 writeup 。
加簽路途中經過的 XX 小徑
去程
回程
HW0, Baby Hook, 20
1nc edu-ctf.zoolab.org 10002
會拿到一個壓縮檔 hw0-pwn_92b26057bc6668d5.zip ,解壓縮之後進去可以翻到以下檔案以及資料夾:
這樣看來應該是要把 docker build 起來,所以就直接 build ,並且下 -d 使其可以再背景執行: ( 要先安裝 docker 跟 docker-compose )
12sudo docker-compose buildsudo docker-compose up -d
接下來要做的就是察看 container id 並利用該 id 進入 container 的指令介面。
查看 container id :
1sudo docker ps -a
進入 container 指令介面:
1sudo docker exec -it <container_id> ...
Break_x86_ISA_Paper_Reading
Break x86 ISA Paper Reading
這邊整理一下,最近讀的這篇論文相關的筆記,也順便做了一個報告的 slide 。
論文名稱: Breaking the x86 ISA
這篇論文主要是給出一個可能可以探索 x86 ISA 的方法。
這邊其實還有一張投影片在 demo 我在 VM 與實體機器上面執行的結果,確實是可以分辨兩者的不同!不過因為那張是放影片所以就沒放上來。
參考資料:
https://www.blackhat.com/docs/us-17/thursday/us-17-Domas-Breaking-The-x86-ISA.pdf
Jensen Inequality
Jensen's Inequality
定義
假設二維座標平面上 f(x) 是一個 convex function ( 凹向上、凸函數 ) , E 代表期望值函數,那將會有以下性質:
對 x 先取期望值然後再把結果帶入 f 的結果,會 小於等於 先把 x 帶入 f 之後再取期望值的結果。
假設二維座標平面上 f(x) 是一個 concave function ( 凹向下、凹函數 ) , E 代表期望值函數,那將會有以下性質:
對 x 先取期望值然後再把結果帶入 f 的結果,會 大於等於 先把 x 帶入 f 之後再取期望值的結果。
證明
先討論 convex function 的情況。
我們把 x 的期望值代入 f ,得到點 A :
接著把 f 上過點 A 的切線方程式叫做 T 。可以把點 A 帶入 f 的微分式,進而得到斜率,在有斜率且有已知點 A 的條件下,我們可以求出切線方程式 T :
接著利用 convex function 的特性, convex function 上某點 P=(m, n) 的 切線方程式 上的所有 y 座標值必定會小於等於在相同 x 座 ...
A1 Perceptron
Assignment #1 -- Perceptron
題目
我的答案
如何執行 ( Execution Description )
把 perceptron_code.ipynb 檔案以 GOOGLE COLAB 開啟。
點選 執行階段 > 全部執行 。
實驗結果 ( Experimental Results )
題目 1 實驗結果:
我實作 rand_sample_generation 這個 function ,其有兩個參數 pos_n 和 neg_n ,分別代表 positive label 的資料數量以及 negative label 的資料數量。
rand_sample_generation 有定義題目所要求的一直線,如下:
rand_sample_generation 會在 0.7 * x_tmp - y_tmp + 0.3 != 0 的時候才產生樣本,也就是說不會產生落在線上的樣本。
rand_sample_generation 會產生出指定數量的樣本並且以 random.shuffle 打亂順序。
使用以下程式碼便可以產生樣本 ( 樣本附帶 lab ...
Perfect Secrecy
Perfect Secrecy
簡單來說就是已知密文得出明文的機率與直接得出明文的機率一樣。
這邊要來解釋上面那句話的意思,我們要先知道我們要先有一些假設。假設我們有三個樣本空間 M ( 明文 ) 、 K ( 密鑰 ) 、 C ( 密文 ) ,我們要探討其中的機率分部:
M 機率分部:
由 先驗知識 決定,應該是根據一些我們已知的資訊整理而得。
K 機率分部:
由 密鑰生成演算法 決定。
C 機率分部:
由 M 、 K 以及 加密演算法 決定。
列一下算式,這邊我會用 Pr[] 來表示機率,裡面放的是某個被賦予值的參數:
定義以 k 為密鑰的形成的密文集合:
密文為 y 的機率,其中 y 屬於以 k 這個密鑰加密所有可能的明文產生出來的密文集合,故機率的部分是出現機率為兩者相乘:
在明文為 x 的條件下,密文為 y 的機率,其中 x 屬於以 k 這個密鑰解密 y 這個密文所產生出來的明文,故機率就是密鑰機率:
在密文為 y 的條件下,明文為 x 的機率,這邊應該也可以想成已知密文的條件下,得知明文的機率:
如果一個 Crypto-System 具有 Perf ...
Over The Wire Bandit Walkthrough
Over The Wire Bandit Walkthrough
Link
https://overthewire.org/wargames/bandit/bandit0.html
Slides
pumbling
plumbing
連線進去之後,會看到一堆字串
猜測 flag 可能就在其中,不過手動翻太難找了,直接用 grep 就可以了
First Grep
First Grep
搜尋看看有沒有類似 flag 的字串