分析.NET CVE-2023-36899 身份认证漏洞

0x01 Cookieless

默认情况下.NET和Java、PHP一样 会话产生的SessionID存储在HTTP报文 Cookie字段,如果不想用上述的Cookie存储方式也可以改成Cookie不带SessionID这样的会话,只需要在web.config配置<SessionState>节点属性cookieless属性为true,这样.NET将会话ID随着HTTP请求附加到URL地址上。如下图.

分析.NET CVE-2023-36899 身份认证漏洞

会话SessionID值(S(ybgzoikr52kbbdy5lfoqnnsl))以明文的形式发送显然是不安全的。

0x02 身份绕过

实战攻击在打点时遇到如下图WebShell上传后的场景还是比较常见的,访问 /(S(mwdwx5uhl2yqliv2w45c5cla))/uploads/dynamicCompilerSpy.aspx 弹出授权登录对话框如下图

分析.NET CVE-2023-36899 身份认证漏洞

以前可能就放弃或者找其他的解决办法,现在可以用URL会话ID的方式绕过,常用的Bypass Payload如下

(S(mwdwx5uhl2yqliv2w45c5cla))/up/(S(mwdwx5uhl2yqliv2w45c5cla))loads/

输入两次会话ID,并且拆解了uploads目录,这对绕过WAF等安全防护也是有用的。再次请求后成功绕过Windows身份认证返回WebShell界面如下图

分析.NET CVE-2023-36899 身份认证漏洞