.NET项目&DLL发编译&未授权访问问题
三点展开:
1 .NET配置调试-信息泄露
- .NET源码反编译-DLL反编译
- .NET常见安全问题-未授权访问
一。NET基本概述
.net相关搭建网站url后缀常为.aspx
该平台是基于windows搭建,C#的相关开发,反编译通常为后缀dLL相关的代码进行反编译(bin目录下)
二. .NET相关问题
2.1DLL反编译指向
工具:ILSpy
将.net相关文件后缀名为.dll的系列文件拖入该软件内即可实现反编译,以读取源码。
2.2 Web.config泄露问题
该文件中(自定义错误开关)customError mode =“Off”,则会先显示报错信息,造成信息泄露。
2.3未授权访问(aspx常出现)
要点:
tips: IIS出现报错500的问题大概率是由于文件访问的权限问题(安全中添加everyone)
出现地方: 大多出现在需要判断用户身份(比如登录等位置)
代码存在位置: 1.每个用户中存在验证代码 2.统一验证文件(其他代码中包含 )
进攻思路:
1.找源码文件中没有包含验证代码的文件
2.验证代码本身的逻辑性错误
整个网站登录界面如下:
点击登录时其请求的url路径为:
其部分源码为
其本身代码并没有验证性文件,因此大概率属于第二种,主要找到其所继承代码,再进行审计。
再进行反编译:
这里明显没有判断逻辑,故不是判断,则再进行master相关文件判断:
同理再进行审计:
至此发现其验证逻辑。
在关于.NET源码审计过程中,出现Inherits需要进行源码反编译。
再进一步深挖判断函数可知其判断逻辑是结合cookie中userid字段进行的
构造想应的数据包绕过即可到达后台(未授权访问达成):
2.4关于第一种的思路
白盒测试中进行代码审计,找寻相关的代码文件未包含判断即可,而黑盒的话相对比较难搞,只有用扫描器进行相关文件扫描,再进行处理。
三.补充
网站结构: 服务 + 中间件 + 数据库 + 第三方软件
常用搭配: windows + IIS +asp + accesss, windows + IIS + aspx + sqlserver
因此漏洞可以从结构中的几个方面入手,如语言特性,中间件问题,服务漏洞等。