CCTF-WEB相关笔记
主要记录两个函数,一个是strcmp(),一个是mb_ereg_replace()
strcmp()
php 5.3 以后字符串和数组比较会返回0
测试代码:
<?php $password=$_GET['password']; if(strcmp('Firebroo',$password)){ echo 'NO!'; }else{ echo 'YES!'; } ?>
那么 xxx.php?password[]=1 就会输出 YES。具体详细原理见结尾PDF
mb_ereg_replace()
这个函数会被bypass。
测试代码:
<?php $data = $_GET['data']; $data = mb_ereg_replace("[<>]","_",$data); echo $data; ?>
那么在xss的过程中,就可以通过xx.php?data=%c0< 来逃逸过滤。原因感觉是因为这个函数把两个字符当做宽字节处理了。
相关文档:Nicolas_Gregoire-Not_so_obvious_vulnerabilities.pdf
本文由Hack Blog原创,如需转载注明原文链接