久違的來發文了╰(*°▽°*)╯
暑假廢了好久。因為自己一再的藉口,有好多應該記錄卻荒廢的靈感,現在想想不禁感到惋惜。畢竟也過去了許久,記憶隨著時間漸漸沖淡,因此前面的生活應該是無法補齊了,但未來的,希望自己能夠充實的飽滿的記錄下來。💪
cookies是一種紀錄網頁狀態的東西,我們可以透過開啟開發者工具點選橫幅中application裡的cookies看到正在瀏覽網站的cookie。
根據這題的題目所述,我們在未做任何動作的情況下有一個名為name值為-1的cookies。接著,如果我們依照輸入框中的提示輸入snickerdoodle,再觀察cookies會發現cookies的值變為0。因此我們可以合理懷答案藏在某一個cookies下。我們當然可以從0~100一個一個試,哪一個cookies值才是對的,但這種重複執行的事情可是電腦的專長鴨,因此我們何不讓電腦來幫我們呢?
這裡提供兩種方法,一種用python、一種用burpsuite
python
首先,我們需要載入requests這個package。我們可以透過在terminal輸入pip install requests
來下載,如果不確定自己是否有載過可以下pip show requests
來確定。
這段程式碼的原理是利用迴圈不斷發送請求封包(如果不知道封包是甚麼,推薦看這部影片)並將遞增的cookies值夾帶在其中,接著檢查回應封包是否有pico這個字樣。
這邊也提供成大資安社的做法
概念是一樣的,不過他多了一些檢查,像是allow_redirects=False是當狀態碼為301時不轉址。雖然影片中沒有說為甚麼,但我猜是因為有些題目會利用轉址的方式將有答案的網頁跳轉掉,所以才會設定為強制不轉址。r.status_code就是在察看狀態碼,方便之後除錯。
然後可以注意一點是cookies的值看似是數字,但我們在寫程式碼時要用字串,不然它會執行錯誤
Burpsuite
其實上述的python就是在做爆破,而burpsuite剛好也可以做到這件事。
我們將它的封包攔截下來並用action送到instruder,將cookies的值反白,點選右側的add代表我的變數是cookies的值,如下圖(如果對burpsuite不熟的可以看這篇)
接著點選上方tab中的Payloads,將payload type改為numbers,代表我等等要遞增的是數字。再來將Payload settings中的From、to分別設為0和100
最後按下右上角的attack執行會得到下方結果,然後通常長度最特殊的那個裡面就會有答案,這題抑是如此。我們點選Payload為18的Response,找一下就可以看到FLAG了。
如果擔心這個方法不夠明確或是怕眼睛看到花掉,可以到Settings裡的Grep-Match或是Grep-Extract,使用方式及成果如下
以下是設定說明
下面是attack後的成果
如果是使用Grep-Extract,點選Add後會長下面這樣
以下是設定說明
第一行我是手動輸入,第二行我是反白 I love 之後的結果
拿到FLAG
其實一邊寫我一邊也很感謝我的讀者以及vocus這個平台,因為在撰寫的過程我也會去思考這個地方為甚麼是這樣,有點像是更深度的學習。👍
最後想來和大家分享一些資源。
成大資安社youtube
成大資安社成員大多來自 CTF 戰對 B33F 5OμP (念法為beef soup。隊名中的u打不出來,如果有知道的讀者歡迎幫我打在留言區喔)。
成大資安社是一個力至於分享資安資源的社團,因此聽說連他們的社課都是可以自由去旁聽的喔(≧∇≦)ノ。當然,如果覺得成大太遠或是比較喜歡看影片學習(像我)的,可以透過上面貼的連結來上他們的社課。
今天撰寫的這題也是他們其中一堂社課時講到的喔
感謝您看到最後。為此,偷偷和您說一個好消息,聽說幫這篇按讚的,愛情和事業都會蒸蒸日上呦o(〃^▽^〃)o❤️