文件上传黑名单限制的绕过总结

admin 2025年4月21日01:43:29评论0 views字数 2532阅读8分26秒阅读模式
声明:该公众号大部分文章来自作者日常学习笔记,也有部分文章是经过作者授权和其他公众号白名单转载,未经授权,严禁转载,如需转载,联系开白。
请勿利用文章内的相关技术从事非法测试,如因此产生的一切不良后果与文章作者和本公众号无关。

现在只对常读和星标的公众号才展示大图推送,建议大家把潇湘信安设为星标否则可能看不到了

公众号编辑器的插入代码又出BUG了,所以文章中没有贴出Webshell代码,懒的再去排版了,需要Webshell代码的师傅可以WX找我:S_3had0w

0x00 前言

通过SQL注入、弱口令等方式进入网站后台或者在前台找到上传点,但在上传Webshell时发现有黑名单限制、Web.config限制脚本执行/身份验证或者存在某些WAF防护导致Webshell脚本无法上传成功/正常解析,这时我们可以尝试去找一些可能被遗漏且能正常解析的脚本扩展名进行上传绕过测试。
以前看到过很多这样的上传成功绕过案例,所以想着把这些绕过思路和方法记录下来,便于日后查询使用!

常见黑名单禁止上传脚本:

找到一个上传点后先去测试看下是白名单还是黑名单限制,文件名+扩展名+上传目录是否可控,或者是否可以目录穿越(../跨目录),是否存在WAF等?如果为黑名单时可以尝试以下这些脚本扩展名

文件上传黑名单限制的绕过总结

0x01 stm/shtm/shtml

这种类型脚本虽然不能直接Getshell,但可以获取到一些基本信息,而且可以使用includeweb.configconn.asp等文件中的内容包含出来查看,还可以尝试使用../../跨目录形式fuzzing看是否能包含到一些有权限读取的铭感配置文件或凭据信息等,然后你们懂的...,如下图所示。
文件上传黑名单限制的绕过总结

0x02 Ashx Webshell

中国菜刀Ashx马:
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=17851ASP.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>        <handlersaccessPolicy="Read" />    </system.webServer></configuration>
文件上传黑名单限制的绕过总结

针对以上两种情况的绕过需要具备这几个条件:

  • 1. 上传目录可控或者可通过../../跨目录将Webshell脚本上传到其他目录;

  • 2. 允许上传*.config扩展文件,并且上传的文件不会被自动命名(如:日期/时间戳等自动生成文件名,这种国内好像很少,之前国外挺多的,现在就不知道了)。

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

文件上传黑名单限制的绕过总结

0x05 Soap 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个不跳,这我是着实没太搞明白咋回事,等以后有空了再去单独研究下这个吧!!!

另外说一嘴在实战中遇到这种类似场景时还是得自己去测一下才知道具体是个什么情况。。。

原文始发于微信公众号(潇湘信安):文件上传黑名单限制的绕过总结

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2025年4月21日01:43:29
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   文件上传黑名单限制的绕过总结http://cn-sec.com/archives/3973851.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息