攻防世界 web高手进阶区 7分题 wtf.sh-150
前言
繼續ctf的旅程
開始攻防世界web高手進階區的7分題
本文是wtf.sh-150的writeup
解題過程
進來是個論壇
有注冊登錄發布的文章
嘗試點擊下各個連接
查看源碼和掃描后臺
都沒有發現
那就注冊試試
并嘗試在注冊登錄發布里sql注入
無果
不斷嘗試
在展示文章的頁面 post.wtf 下發現路徑穿越漏洞
- 如果應用程序使用用戶可控制的數據,以危險的方式訪問位于應用服務器或其它后端文件系統的文件或目錄,就會出現路徑遍歷
- 攻擊者可以將路徑遍歷序列放入文件名內,向上回溯,從而訪問服務器上的任何文件
出現源碼
(看的眼睛生疼。。。)
那第一反應搜索flag關鍵詞
幸運的發現了
整理下如下
可以發現admin登錄就能獲取flag
搜索admin和user
發現有user文件夾
那就繼續
可以發現admin賬號和我們注冊的123賬號
然后下面這一串跟自己注冊賬號抓包對比
發現是cookie里的token
個么嘗試欺騙
得到flag。。。的一半Flag: xctf{cb49256d1ab48803
啊,果然沒那么簡單
回去繼續代碼審計
(看得眼睛生疼。。。)
突然想到這個網頁是wtf文件
這個是真沒接觸過
印象里似乎是魔獸世界看到過?
跑遠了。。。
反正盲猜下跟這個有關
找wtf關鍵詞
找到一段
整理下
發現服務器能夠解析并執行 wtf 文件
如果還能夠上傳 wtf 文件并執行的話,就可以達到控制服務器的目的
。。。。。。
還得尋找上傳辦法
。。。
哽住了
不會做了
感覺應該是尋找注入或上傳后門的代碼
查了查wp
尋找到一個reply功能的代碼如下
function reply {local post_id=$1;local username=$2;local text=$3;local hashed=$(hash_username "${username}");curr_id=$(for d in posts/${post_id}/*; do basename $d; done | sort -n | tail -n 1);next_reply_id=$(awk '{print $1+1}' <<< "${curr_id}");next_file=(posts/${post_id}/${next_reply_id});echo "${username}" > "${next_file}";echo "RE: $(nth_line 2 < "posts/${post_id}/1")" >> "${next_file}";echo "${text}" >> "${next_file}";# add post this is in reply to to posts cacheecho "${post_id}/${next_reply_id}" >> "users_lookup/${hashed}/posts"; }存在路徑穿越
把用戶名寫在了評論文件的內容中
如果用戶名是一段可執行代碼,而且寫入的文件是 wtf 格式的
那么這個文件就能夠執行我們想要的代碼
那就創建個用戶
在用戶名里寫入后門
然后評論并抓包
上傳個sh.wtf
即修改下post內容
這里注意:
%09是水平制表符,必須添加,不然后臺會把后門當做目錄去解析
(學到了!)
然后訪問sh.wtf
獲得了flag2的路徑
那就創建用戶名$/usr/bin/get_flag2
重復上述步驟
獲得flag2
最終flag:xctf{cb49256d1ab48803149e5ec49d3c29ca}
結語
前一半flag還行,路徑穿越說實話蠻快就試出來了
后一半就難頂了,代碼審計眼疼,wtf也不了解,后門上傳還是查wp的
知識點
- 路徑穿越
- cookie欺騙
- 代碼審計
- wtf文件
- 上傳后門
幾個wp
- 一個國外大神的wp
- 神仙系列
- 神仙題
繼續努力
總結
以上是生活随笔為你收集整理的攻防世界 web高手进阶区 7分题 wtf.sh-150的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 阿里的面试官都喜欢问哪些问题?
- 下一篇: AutodeskCAD卸载后无法再次安装