文件上传黑名单限制的绕过总结
|
admin
2025年5月8日 18:43
本文热度 146
|
通过SQL注入、弱口令等方式进入网站后台或者在前台找到上传点,但在上传Webshell
时发现有黑名单限制、Web.config
限制脚本执行/身份验证或者存在某些WAF防护导致Webshell
脚本无法上传成功/正常解析,这时我们可以尝试去找一些可能被遗漏且能正常解析的脚本扩展名进行上传绕过测试。以前看到过很多这样的上传成功绕过案例,所以想着把这些绕过思路和方法记录下来,便于日后查询使用!
常见黑名单禁止上传脚本:
找到一个上传点后先去测试看下是白名单还是黑名单限制,文件名+扩展名+上传目录是否可控,或者是否可以目录穿越(../跨目录),是否存在WAF等?如果为黑名单时可以尝试以下这些脚本扩展名。
这种类型脚本虽然不能直接Getshell,但可以获取到一些基本信息,而且可以使用include
将web.config
、conn.asp
等文件中的内容包含出来查看,还可以尝试使用../../
跨目录形式fuzzing
看是否能包含到一些有权限读取的铭感配置文件或凭据信息等,然后你们懂的...,如下图所示。
0x02 Ashx Webshell
https://github.com/tennc/webshell/blob/master/caidao-shell/customize.ashx
0x03 stm/shtm/shtml
MVC4.0环境部署:
本地测试环境为Windows 2012 (IIS8.5)
,默认已经安装有.Net FrameWork 4.0
,自己下载并安装ASP.NET MVC 4.0
,将IIS中的“ISAPI和CGI限制”选项ASP.NET v4.0.0.30319
设置为允许,最后在网站根目录下创建一个web.config
配置文件即可,文件内容如下。
.Net FrameWork 4.0:https://www.microsoft.com/zh-CN/download/details.aspx?id=17851
ASP.NET MVC 4.0:https://www.microsoft.com/zh-CN/download/details.aspx?id=30683

注意事项:
如果当前网站根目下没有web.config
配置文件,或者没有指定.NET
版本,在浏览器访问cmd.cshtml
脚本时可能就会出现以下两种报错提示,如下图所示。

0x04 web.config Webshell
有时也会遇到那种不允许上传所有ASP/.NET
脚本,或者Webshell
上传成功但无法解析访问提示403
等情况,这是因为上传目录下有个web.config
配置文件禁止了脚本执行,我们可以随便输入一个ASP脚本文件名进行简单测试,无论这个文件是否真实存在都会提示403
,如下图所示。asp:.asp、.asa、.cer、.cdx、.htr、.cfm、.stm、.shtm、.shtml
aspx:.aspx、.asax、.ashx、.ashm、.asmx、.ascx、.svc、.soap、.cshtml
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<handlers accessPolicy="Read" />
</system.webServer>
</configuration>

针对以上两种情况的绕过需要具备这几个条件:
如果具备以上条件,就可以直接上传我们修改好的web.config
配置文件来执行命令或上线CS/MSF
等,可在web.config
最后修改自己要执行的Webshell
脚本内容,如下图所示。

@on1_es 师傅在某项目中遇到的一个案例:.NET的站(任意文件上传),但在上传目录下有个web.config
禁止了脚本执行,而且上传文件会自动命名,无法通过上传web.config
方式绕过,如下图所示。
最后他是通过上传一个能正常解析的Sharp4SoapRootShell.soap
脚本绕过了web.config
禁止脚本执行限制成功拿到这个目标的Webshell
权限,这里仅记录分享了下他的这个绕过方法,如下图所示。
实战项目案例二:
@Cek0ter 师傅遇到的另一个案例:.NET的站(任意文件上传),已成功上传一个ASPX马,但访问时会跳转到404
页面,图片/文本又能正常访问,猜测也是web.config
导致跳转到404页面,如下图所示。
最后他也是通过上传一个能正常解析的Sharp4SoapGodzlliav1.1.soap
脚本绕过了web.config
的重定向规则成功拿到这个目标的Webshell
权限,这里仅记录分享了下他的这个绕过方法,如下图所示。
注:根据他的描述在传Sharp4SoapRootShell.soap
时也会跳404,但Sharp4SoapGodzlliav1.1.soap
这个又不跳,1个跳,1个不跳,这我是着实没太搞明白咋回事,等以后有空了再去单独研究下这个吧!!!
另外说一嘴在实战中遇到这种类似场景时还是得自己去测一下才知道具体是个什么情况。。。
阅读原文:https://mp.weixin.qq.com/s/lkm7CMd3FK1dtq7kMSV9rw
该文章在 2025/5/8 18:43:44 编辑过