文章总结: 本文记录了一次针对.NET应用的代码审计实战。作者利用ILSpy和VSCode反编译DLL,通过关键词搜索发现三个漏洞:一是存在未授权上传及路径遍历风险,虽有限制后缀但缺乏权限校验;二是发现SQL注入点,但需登录权限;三是挖掘出弱口令逻辑,通过代码定位密码重置默认值,成功爆破账户登录,最终绕过权限限制复现SQL注入漏洞。文章展示了从代码反编译到漏洞利用的完整链条。 综合评分: 86 文章分类: 代码审计,WEB安全,渗透测试,实战经验
.NET代码审计初识
原创
wowo wowo
思极安全实验室
2026年2月28日 20:25 山东
- 免责声明
由于传播、利用本公众号所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,公众号及作者不为此承担任何责任,一旦造成后果请自行承担!如有侵权烦请告知,我们会立即删除并致歉。
前期工作:
这里先将dll源码通过ILSpy反编译,反编译之后提取出来,由于ILSpy搜索功能的不足,我这里习惯使用Visual Studio Code打开一份,用来搜索关键词。
漏洞一:文件上传漏洞
主页目录下通过文件名字发现上传功能点,跟踪到具体的类FileUpload 发现里面的内容仅为上传后缩略图的回显,又发现继承UploadHandler,一般来说继承什么他就要先执行里面的什么,推测关键函数在UploadHandler当中。
进去UploadHandler当中后,发现他这里又引入了一个类:JZSoft.Core.Tools.Upload,且启动了一个新的FileUploader 对象。这里继续跟进到FileUploader 类当中。
这里我们可以发现这里对文件后缀采用白名单进行了校验,仅能上传一下类型。
但是这里我们可以发现,上传位置并未进行权限校验,且上传路径接受用户输入subfolder,但并未做校验,可遍历路径扩大危害,但这里只能勉强算是一个未授权上传。
漏洞二:sql注入漏洞
这里借助Visual Studio Code去搜索select * from关键词,这类在注入漏洞当中出现频率较高。能够看到有以下几种,可以逐一测试。
这里能够看到在TaskReportConfigController类当中出现了很多拼接的语句,并且没有过滤,这里大致是将用户请求的参数拼接到text2当中再拼接到text4,最后交给GetDataTable函数去执行。
因为:MVC默认路由格式:/{Controller}/{Action}/{参数}
所以这里具体路径可知Controller对应的是去掉 Controller类名,Action对应的是方法名,而方法()里面的是参数。
但是当我去构造请求的时候发现请求失败,再回看代码发现,这个类还继承了一个,打开之后才知道继承的是权限校验的类。内含[CheckUserStateAuthorize]表示只要继承这个类就必须先校验用户身份。
这里就先放一下,再看看有没有其他漏洞,或者别的破解之法。
漏洞三:弱口令
该网站虽然存在用户名遍历和登录验证码延时缺陷,但由于密码加密以及多次错误后短暂封禁账号的防护机制,前期的爆破尝试均无功而返。后续还是回归到代码层面,通过Visual Studio Code搜索密码发现忘记密码重置后的值。
这里锁定密码初始化的值,只需遍历用户名即可实现爆破,后续爆破成功后,直接将sql注入成功复现。
免责声明:
本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。
任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。
本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我。
本文转载自:思极安全实验室 wowo wowo《.NET代码审计初识》
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。










评论