SuperAPI AI 工具集

hunt-aspnet

安全与审计

查看项目

更新于 10-15 14:05

技能介绍

用途

hunt-aspnet 是一个针对 ASP.NET 技术栈的漏洞挖掘技能,用于在授权安全测试中系统性地发现和验证 ASP.NET 特有的攻击面。其核心目标是 ViewState 反序列化、machineKey 恢复、双解析器 MAC 绕过等可导致远程代码执行(RCE)或信息泄露的问题。

主要能力

  • ViewState 分析:识别 __VIEWSTATE、__VIEWSTATEGENERATOR、__VIEWSTATEENCRYPTED 等隐藏字段,判断 ViewState 是仅签名还是同时加密。__VIEWSTATEENCRYPTED 为空表示仅签名未加密,若验证密钥泄露即可伪造。
  • 双解析器差异检测:通过发送多种 ViewState 载荷形态(垃圾数据、真实前缀、翻转位、超大、XML 形状、LosFormatter 前缀等),观察不同错误信息,证明存在两个反序列化入口,其中一个在某些载荷形态下先于 MAC 校验执行。
  • machineKey 恢复线索:检测负载均衡环境下跨节点 ViewState MAC 失败,确认 Web 场拓扑;结合源码泄露、配置泄露等途径寻找验证/解密密钥。
  • 端点探测:枚举 trace.axd、elmah.axd、*.svc、*.asmx、Telerik.Web.UI.WebResource.axd、ChartImg.axd、ScriptResource.axd、WebResource.axd、_vti_bin/* 等路径。
  • WCF 服务枚举:通过 ?wsdl 和 ?mex 获取服务契约,寻找认证较松的管理端点。
  • 请求验证器绕过:测试 HTML 实体编码、JSON/XML 请求体、路径段、Cookie/Referer 头等绕过方式。
  • Telerik 组件检测:识别 Telerik.Web.UI.WebResource.axd?type=rau 上传处理器,关联 CVE-2017-11317、CVE-2017-11357、CVE-2019-18935。
  • CMS 特定链:覆盖 SharePoint(ToolPane.aspx + 匿名 FormDigest + 未加密 ViewState 的 ToolShell 前置链)、Sitecore(CVE-2021-42237)、DotNetNuke、Umbraco。
  • SafeControl 枚举:通过 Picker.aspx?PickerDialogType=<TypeName> 的不同错误信息枚举 SafeControl 列表,用于 CVE-2019-0604 家族挖掘。

使用方式

技能以方法论和可复制命令的形式给出。典型流程:

  1. 指纹识别:通过响应头(X-AspNet-Version、X-Powered-By、Server: Microsoft-IIS/10.0、ASP.NET_SessionId、.ASPXAUTH 等)和表单体中的 __VIEWSTATE 判断技术栈。
  2. 触发错误:用过期 ViewState POST 触发 500,从错误体读取 .NET Framework 与 ASP.NET 版本信息。
  3. 定位所有含 __VIEWSTATE 的表单,检查 __VIEWSTATEENCRYPTED 是否为空。
  4. 运行双解析器差异探测:技能提供 Python 脚本,发送 7 种载荷形态并分类响应。
  5. 探测敏感端点:如 curl -sk -o /dev/null -w "%{http_code}\n" "https://target.example/trace.axd",200 表示完整跟踪转储暴露。
  6. 枚举 WCF 服务:抓取页面中的 .svc 链接,逐个请求 ?wsdl 和 ?mex。
  7. 测试请求验证器绕过:尝试 URL 编码、NUL 字节、无 < 的 javascript:、Cookie/Referer 注入等。
  8. Telerik 指纹与利用门槛:请求 Telerik.Web.UI.WebResource.axd?type=rau,若返回 RadAsyncUploadHandler 风格响应则存在 Telerik;公开利用需要泄露的 machineKey 和 telerikEncryptionKey。

适用场景

  • 互联网可达的经典 ASP.NET Webforms 企业应用(银行门户、经销商门户、HR 系统,运行于 .NET Framework 4.x)。
  • SharePoint 场(2013/2016/2019/SE)。
  • 集成 Telerik UI for ASP.NET AJAX 的站点。
  • WCF 服务(*.svc?WSDL)等常被遗忘的管理端点。
  • Sitecore、DotNetNuke、Umbraco 等 CMS。

限制

  • 完整 RCE 通常需要同时恢复验证密钥与解密密钥;仅有原语(如未加密 ViewState)本身不构成可利用漏洞。
  • Telerik 利用需要泄露的 machineKey 和 telerikEncryptionKey。
  • 报告前需确认攻击者当前可实际达成的影响,并能在 10 分钟内复现完整链。
  • 技能中提及的 CVE 编号、版本范围与利用工具(ysoserial.net、viewgen、telerik-revda)为资料原文,具体可用性取决于目标环境。
  • 部分绕过技巧(如 X-Forwarded-For: 127.0.0.1)是否有效取决于应用实现。