参考:
- 先知的waf/upload_bypass
常见扩展黑名单
asp|asa|cer|cdx|aspx|ashx|ascx|asax
php|php2|php3|php4|php5|asis|htaccess
htm|html|shtml|pwml|phtml|phtm|js|jsp
vbs|asis|sh|reg|cgi|exe|dll|com|bat|pl|cfc|cfm|ini|phar
多个Content-Disposition绕过
在IIS的环境下,上传文件时如果存在多个Content-Disposition的话,IIS会取第一个 Content-Disposition中的值作为接收参数,而如果waf只是取最后一个的话便会被绕过。
30个绕过方法
- filename在content-type下面
- .asp{80-90}
- NTFS ADS
- .asp...
- boundary不一致
- iis6分号截断asp.asp;asp.jpg
- apache解析漏洞php.php.ddd
- boundary和content-disposition中间插入换行
- hello.php:a.jpg然后hello.<<<
- filename=php.php
- filename="a.txt";filename="a.php"
- name=\n"file";filename="a.php"
- content-disposition:\n
- .htaccess文件
- a.jpg.\nphp
- 去掉content-disposition的form-data字段
- php<5.3 单双引号截断特性
- 删掉content-disposition: form-data;
- content-disposition\00:
- {char}+content-disposition
- head头的content-type: tab
- head头的content-type: multipart/form-DATA
- filename后缀改为大写
- head头的Content-Type: multipart/form-data;\n
- .asp空格
- .asp0x00.jpg截断
- 双boundary
- file\nname="php.php"
- head头content-type空格:
- form-data字段与name字段交换位置