01
背景介绍
ptsecurity.com 博主最近更新了一篇介绍.NET 应用程序任意下载dll的方法,该方法通过无状态会话绕过bin目录限制,可下载该目录下的任意程序集文件。
02
漏洞分析
当.NET应用程序开启cookieless时,可以通过在URL请求时携带特殊的会话资源标识符请求bin目录下的dll,从而实现任意dll文件下载漏洞。这里的思路来源自编号CVE-2023-36899漏洞,具体需要在web.config开启cookieless配置项,如下所示。
<system.web>
<sessionState cookieless="true"/>
</system.web>
这样.NET将会话ID随着HTTP请求附加到URL地址上。如下图所示。
这样的会话SessionID值(S(ybgzoikr52kbbdy5lfoqnnsl))以明文的形式发送显然是不安全的。具体详情可参考咱们发表的历史文章:
03
漏洞复现
默认浏览器请求默认页面后携带Cookies信息,如(S(01mczkyokpoak5etdpsfwo42)),修改请求bin目录下的webForms2.dll,可成功下载DLL程序集。如下所示。
http://host/(S(01mczkyokpoak5etdpsfwo42))/b/(S(01mczkyokpoak5etdpsfwo42))in/WebForms2.dll
DLL程序集文件名如何枚举?黑盒情况下可以通过IIS-ShortName-Scanner工具尝试发现一些短文件名的DLL,如下图所示。
另外除了bin目录之外 ,还可以检查其他的目录,比如App_Data,通过该方法下载数据库文件。不过该漏洞影响不大,因为从.NET2.0开始cookieless选项默认不启用。参考文献:Source Code Disclosure in ASP.NET apps – PT SWARM
04
欢迎加入知识库
为了更好地应对基于.NET技术栈的风险识别和未知威胁,dotNet安全矩阵星球从创建以来一直聚焦于.NET领域的安全攻防技术,定位于高质量安全攻防星球社区,也得到了许多师傅们的支持和信任,通过星球深度连接入圈的师傅们,一起推动.NET安全高质量的向前发展。
目前dot.Net安全矩阵星球已成为中国.NET安全领域最知名、最活跃的技术知识库之一,从.NET Framework到.NET Core,从Web应用到PC端软件应用,无论您是初学者还是经验丰富的开发人员,都能在这里找到对应的安全指南和最佳实践。
星球汇聚了各行业安全攻防技术大咖,并且每日分享.NET安全技术干货以及交流解答各类技术等问题,社区中发布很多高质量的.NET安全资源,可以说市面上很少见,都是干货。
星球文化始终认为授人以鱼不如授人以渔!加入星球后可以跟星主和嘉宾们一对一提问交流,20+个专题栏目涵盖了点、线、面、体等知识面,助力师傅们快速成长!其中主题包括.NET Tricks、漏洞分析、内存马、代码审计、预编译、反序列化、webshell免杀、命令执行、C#工具库等等。
我们倾力打造专刊、视频等配套学习资源,循序渐进的方式引导加深安全攻防技术提高以及岗位内推等等服务。
我们还有一个会员专属的星球陪伴群,加入的成员可以通过在群里提出问题或参与论的方式来与其他成员交流思想和经验。此外还可以通过星球或者微信群私聊向我们进行提问,以获取帮助迅速解决问题。
推荐站内搜索:最好用的开发软件、免费开源系统、渗透测试工具云盘下载、最新渗透测试资料、最新黑客工具下载……
还没有评论,来说两句吧...