原理:php数组强转为字符串时会转换为字符串Array 用法: $a= [];$a= @"$a";$b= @$a['a'=='b'];var_dump($b++);var_dump($b++);var_dump($b++); 效果: 记录部分绕过方法 __EOF__
所谓“绕过”,通常是因为输入的内容在某种方式上不符合预期的正则表达式模式,从而没有触发预期的匹配行为...
打开场景,显示源代码 <?phperror_reporting(0);if(!isset($_GET['code'])){highlight_file(__FILE__); }else{$code=$_GET['code'];if(preg_match("/[A-Za-z0-9_$@]+/",$code)){die('fighting!'); }eval($code); } 代码审计后,发现对输入code进行了正则表达式匹配,过滤了英文大小写字母、...
成功绕过第一个if判断。 二 换行符绕过正则跨行匹配 然后尝试绕过数字检测,可以使用换行符%0a绕过跨行匹配。 payload如下 stuff[4294967296]=admin&stuff[1]=user&num=123%0als 这里不能使用hackbar来执行payload,因为火狐浏览器会自动在换行符%0a前面加上回车符%0d,凑成%0d%0a,使绕过失败。 使用burp,成功绕过...
代码审计后,发现对输入code进行了正则表达式匹配,过滤了英文大小写字母、数字和_$@三个特殊字符。 本题的关键就是绕过正则匹配,执行eval()函数。 解题思路: 利用通配符调用Linux系统命令来查看flag 在Linux系统中可以使用 ? * 等字符来正则匹配字母 星号(*)可以用来代替0个及以上任意字符 ...