『代码审计』某OA系统.NET代码审计

admin 2025年3月18日23:45:31评论22 views字数 1390阅读4分38秒阅读模式
『代码审计』某OA系统.NET代码审计

点击蓝字 关注我们

『代码审计』某OA系统.NET代码审计

日期:2025-03-07

作者:Corl7

介绍:记录某OA系统.NET审计过程。

0x00 前言

由于对ASP.NET项目不是很熟悉,所以一直没有审计过ASP.NET的源码。最近项目不是很多,于是随便找了一套手里面的源码,边审边学。

『代码审计』某OA系统.NET代码审计

0x01 文件上传漏洞

通过查找上传点,发现Edit.aspx.cs文件中存在上传点。首先创建一个 MojoCube.Api.File.Upload类的实例,用于后续文件上传操作,然后设置文件上传路径为Document拼接在Session中取到的UserID,然后设置文件名,最后调用DoFileUpload方法进行上传文件。

『代码审计』某OA系统.NET代码审计

使用ILSpy打开Bin目录中的dll文件,搜索MojoCube.Api.File.Upload,找到DoFileUpload方法。首先检查上传的文件是否为空,然后判断FilePath是否为空,如果为空,FilePath为当前应用程序的根目录的物理路径拼接Files目录,如果不为空,FilePath为当前应用程序的根目录的物理路径拼接Files目录拼接FilePath值。

由于在Edit.aspx.cs文件中设置了FilePath的值,所以最终的上传路径为/Files/Document/拼接在Session中取到的UserID。接下来就是获取文件名和后缀名,然后判断如果目标目录不存在,则创建目录,如果FileName为空,使用原始文件名,否则使用自定义文件名,自定义文件名为在Edit.aspx.cs文件中设置FileName的值。最后使用SaveAs将上传的文件保存到目标路径。

『代码审计』某OA系统.NET代码审计

搜索MojoCube.Api.Text.Function.DateTimeString,该方法使用当前时间戳拼接1000-9999的随机值,也就是文件名是22位。

『代码审计』某OA系统.NET代码审计

在整个上传过程中,没有对文件后缀名做校验,因此存在文件上传漏洞,直接访问页面进行文件上传。

『代码审计』某OA系统.NET代码审计

访问上传后的文件。

『代码审计』某OA系统.NET代码审计

0x02 SQL注入漏洞

通过查看.cs文件,发现大多数文件中都是用过滤器过滤了用户的输入,来防止SQL注入,然后拼接keyword值到sql语句中。

『代码审计』某OA系统.NET代码审计

ILSpy中搜索MojoCube.Api.Text.CheckSql.Filter,查看实现方法。定义了一个字符串pattern,包含了常用的SQL关键词,然后去使用正则进行匹配,如果匹配成功,则将整个输入的内容替换为'',如果匹配不成功,则将'替换为''

『代码审计』某OA系统.NET代码审计

虽然使用了过滤器,但是按我审计经验来说,并不可能全部参数都使用了过滤器,终会有漏下的参数。翻.cs文件翻了好长时间,终于在List.aspx.cs文件中,找到了一个没有使用过滤器的参数,直接接收typeId参数值,并拼接到SQL语句中。

『代码审计』某OA系统.NET代码审计

直接上Sqlmap,喜提SQL注入一个。

『代码审计』某OA系统.NET代码审计

0x03 未授权访问漏洞

为了发现未授权访问漏洞,找到了一个偷懒的办法,直接将系统路径制作为一个字典文件。

『代码审计』某OA系统.NET代码审计

然后放到burp中去跑,发现泄漏了数据库的账号以及密码。

『代码审计』某OA系统.NET代码审计

0x04 总结

通过审计该项目,也算是对ASP.NET项目有了一个简单的了解,包括常用函数、目录结构等,并且也成功审计出了漏洞,往后就可以开开心心的审ASP.NET项目了。

『代码审计』某OA系统.NET代码审计

免责声明:本文仅供安全研究与讨论之用,严禁用于非法用途,违者后果自负。

点此亲启

原文始发于微信公众号(宸极实验室):『代码审计』某OA系统.NET代码审计

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2025年3月18日23:45:31
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   『代码审计』某OA系统.NET代码审计https://cn-sec.com/archives/3811671.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息