在网上看到一些文件上传的绕过的方法,记录一下
文件上传绕过
目录没有执行权限,可以结合路径穿越
../../
上传到别的目录上传文件找不到路径,可以结合路径穿越
../../
上传到根目录白名单截断。
- 长点绕过
test......................................................................php
(很多点) - 截断,
test.php%00.jpg
。windows下有一种特殊截断,test.php::$DATA
(DATA后面会被Windows文件系统当作文件流处理从而绕过)
- 长点绕过
黑名单绕过
- 能够被解析的后缀
1
2
3asp&aspx: ashx、asa、asmx、cer、cdx
php: php3、phtml
jsp: jspx、jspf- 大小写绕过和双写绕过(少),如
PhP
或jjspsp
- 上传
.htaccess
等配置文件一起绕过
文件上传绕过姿势整理
WAF绕过
安全狗绕过
1.绕过思路:对文件的内容,数据。数据包进行处理。
1 | 关键点在这里Content-Disposition: form-data; name="file"; filename="ian.php" |
2.通过替换大小写来进行绕过
1 | Content-Disposition: form-data; name="file"; filename="yjh.php" |
3.通过删减空格来进行绕过
1 | Content-Disposition: form-data; name="file"; filename="yjh.php" |
4.通过字符串拼接绕过
1 | 看Content-Disposition: form-data; name="file"; filename="yjh3.php" |
5.双文件上传绕过
1 | <form action="https://www.xxx.com/xxx.asp(php)" method="post" |
6.HTTP header 属性值绕过
1 | Content-Disposition: form-data; name="file"; filename="yjh.php" |
7.HTTP header 属性名称绕过
1 | 源代码: |
8.等效替换绕过
1 | 原内容: |
9.修改编码绕过
1 | 使用UTF-16、Unicode、双URL编码等等 |
WTS-WAF 绕过上传
1 | 原内容: |
百度云上传绕过
1 | 百度云绕过就简单的很多很多,在对文件名大小写上面没有检测php是过了的,Php就能过,或者PHP,一句话自己合成图片马用Xise连接即可。 |
阿里云上传绕过
1 | 源代码: |
360主机上传绕过
1 | 源代码: |
MIME类型绕过
1 | 上传木马时,提示格式错误。直接抓包修改Content-Type 为正确的格式尝试绕过 |
文件内容检测绕过
1 | 抓包,在正常图片末尾添加一句话木马 |
多次上传Win特性绕过
1 | 多次上传同一个文件,windows会自动更新补全TEST (1).php。 |
条件竞争绕过
1 | 通过BURP不断发包,导致不断写入Webshell,再写入速度频率上超过安全软件查杀频率,导致绕过。 |
CONTENT-LENGTH绕过
1 | 针对这种类型的验证,我们可以通过上传一些非常短的恶意代码来绕过。上传文件的大小取决于,Web服务器上的最大长度限制。我们可以使用不同大小的文件来fuzzing上传程序,从而计算出它的限制范围。 |
文件内容检测绕过
1 | 针对文件内容检测的绕过,一般有两种方式, |
垃圾数据填充绕过
1 | 修改HTTP请求,再之中加入大量垃圾数据。 |
黑名单后缀绕过
文件扩展名绕过
1 | Php除了可以解析php后缀 还可以解析php2.php3,php4 后缀 |
ashx上传绕过
1 | cer,asa,cdx等等无法使用时候。 |
特殊文件名绕过
1 | 比如发送的 http包里把文件名改成 test.asp. 或 test.asp_(下划线为空格),这种命名方式 |
Windows流特性绕过
1 | php在windows的时候如果文件名+"::$DATA"会把::$DATA之后的数据当成文件流处理,不会检测后缀名.且保持"::$DATA"之前的文件名。 |
白名单后缀绕过
00截断绕过上传
1 | php .jpg 空格二进制20改为00 |
htaccess解析漏洞
1 | 上传的jpg文件都会以php格式解析 |
突破MIME限制上传
1 | 方法:找一个正常的可上传的查看其的MIME类型,然后将马子的MIME改成合法的MIME即可。 |
Apache解析漏洞
1 | 1.一个文件名为test.x1.x2.x3的文件,apache会从x3的位置开始尝试解析,如果x3不属于apache能够解析的扩展名,那么apache会尝试去解析x2,直到能够解析到能够解析的为止,否则就会报错。 |
IIS解析漏洞
1 | IIS6.0在解析asp格式的时候有两个解析漏洞,一个是如果目录名包含".asp"字符串, |
Nginx解析漏洞
1 | 解析: (任意文件名)/(任意文件名).php | (任意文件名)%00.php |
解析漏洞
1 | Content-Disposition: form-data; name="file"; filename=php.php;.jpg |
前端限制绕过
1 | 1.使用BURP抓包修改后重放 |
下载绕过
远程下载文件绕过
1 | <?php |
文件包含绕过
1 | 上传图片木马 |
参考文章:https://blog.csdn.net/weixin_44578334/article/details/105842233
https://developer.aliyun.com/article/1160258#slide-20
- 本文作者: Sn1pEr
- 本文链接: https://sn1per-ssd.github.io/2023/03/01/各种绕过方法/
- 版权声明: 本博客所有文章除特别声明外,均采用 MIT 许可协议。转载请注明出处!