2020-QWB-final-bjyadmin
第一步sql注入
选手使用攻击机利用靶机中的sql注入漏洞获取bjyadmin框架路径
1 | # mysql> select info from PROCESSLIST; |
利用processlist注出字段名,相关的介绍
1 | import requests |
bjyadmin
题目提供的附件和
https://github.com/baijunyao/thinkphp-bjyadmin
一摸一样
挨个看过去发现有一个容易令人忽略的漏洞(sxgg一眼看出来)
1 |
|
ThinkPHP Action中的_empty方法
_empty方法即空操作,当找不到请求的方法时,默认执行该方法,利用这个机制,我们可以实现错误页面和一些URL的优化。
1
2
3
4 >public function _empty($name)
>{
echo $name;
>}参数name,即请求的方法名。如http://localhost/waimai/index.php/Index/sdfewsdf,不存在sdfewsdf方法时,会调用_empty方法,显示sdfewsdf.
当我们调用一个不存在的action时,它会display ($method)
,这将会造成任意模板调用
我们利用index.php?m=Home&c=Vue&a=evil_path
来调用任意模板,我们可以利用日志文件作为模板文件从而RCE
最后的payload:
1 | index.php/Home.php?m=Home&c=Vue&a=Runtime/Logs/User/20_09_17.log |