Sorry, your browser cannot access this site
This page requires browser support (enable) JavaScript
Learn more >

搭建环境

centos7+apache+安全狗+宝塔+pikachu。

具体搭建流程可参照

https://www.cnblogs.com/confidant/p/15390011.html

在注入那块,安全狗的作用还是能体现出来的,但在文件上传这儿就显得没有存在感。反观宝塔,在注入和上传都有所防护,同样免费的前提下,后者要比前者防护更好。宝塔的付费插件资金问题没有购买,未来也许补上。

基于http绕过waf

https://mp.weixin.qq.com/s/OcIaKAgZquQnf7_-TnTcwQ

1.使用 Connection: keep-alive 达到一次传输多个http包的效果

img

2.分块传输/ Chunked Transfer (HTTP 1.1)

image-20211225193418969

3.ibm037编码/ Charset = xxx编码绕过

image-20211225193430261

4.HTTP协议未覆盖

image-20211225193444380

比较常规的过waf方式

常见的waf对文件上传上的检测基本上会注重两处:

Content-Disposition: form-data; name="file"; filename="1.php"

和上传文件内容。后者的绕过需要借助免杀或者是绕过禁用函数。

宝塔&安全狗绕过

就比如无收费的宝塔在前者检测上就基本没有防护能力:

上传php后缀文件,内容为正常图片

回显bad request400,实际上就是宝塔的拦截

image-20211225163200690

当我们在 Content-Disposition: form-data; name="file"; filename="result5.php"三者之间修改就可以绕过。

image-20211225163801733

如下均可:

1
2
3
4
5
6
7
8
9
10
11
12
filename="result5.php
filename=result5.php
filename=;filename="result5.php" ps:filename="1.jpg";filename="result5.php"被拦截
filename='result5.php'
filename='result5.php ps:filename=result5.php'上传文件后缀多了单引号
filename="result5.php[00].jpg"
//宝塔不可-换行思路
filename="result5
.
p
h
p"

前者针对的是后缀处理,需要基于上传内容能免拦截,接下来上传图片马:

如果我们在后缀处理得当的前提下,上传的是单纯phpinfo语句,能成功上传、解析。

image-20211225164653486

当碰到上传一句话时,就报错,这里就需要靠垃圾字符填充实现绕过waf

image-20211225165022295

垃圾字符填充还不够,还需要进行上述后缀的检测绕过

image-20211225165104499

这里的插入点为 Content-Disposition: [此]form-data;

其余可插入点

1
2
3
Content-Disposition: form-data;  [此]+[;]name="uploadfile"; filename="2.php
Content-Disposition: form-data; name="uploadfile"; [此]+[;]filename="2.php
;用于避免协议被破坏。

评论