ToB企服应用市场:ToB评测及商务社交产业平台

标题: 某个OA系统的代码审计 [打印本页]

作者: 小小小幸运    时间: 2024-7-24 08:50
标题: 某个OA系统的代码审计
2023年HVV中爆出来的洞了,但是有一些漏洞点修复了,刚好地市级的攻防演练中遇到了一个,想着把可能出现问题的点全部审计一下,顺便熟悉一下.net代码审计。ps:感兴趣的师傅们可以自行根据poc搜刮源码。
0x1 反编译

好吧,当我没说,下载dnspy反编译即可,但是起首要找到web逻辑代码才能开始审计,由于这套oa是使用了mvc开辟模式,简单介绍一下mvc,其实就是model,controller,view,其中的view是视图也就是html等展示给用户看的东西,model是模型也就是控制数据库的代码。controller是控制器负责实行代码的逻辑,也就是我们必要审计的地方了。
[img=720,308.88]https://m-1254331109.cos.ap-guangzhou.myqcloud.com/202407231554123.png[/img]


然后找到controller就是web的主要逻辑了。
[img=720,346.32]https://m-1254331109.cos.ap-guangzhou.myqcloud.com/202407231554127.png[/img]

0x2 身份校验绕过

起首可以随便点入一个controller,发现filesController继承自TopVisionApi。
[img=720,327.6]https://m-1254331109.cos.ap-guangzhou.myqcloud.com/202407231554128.png[/img]

然后我们发现IsAuthorityCheck()这个函数用于判断权限。
[img=720,597.7639751552795]https://m-1254331109.cos.ap-guangzhou.myqcloud.com/202407231554129.png[/img]

起首看到第一行代码getByValue这个函数,其实Request.Properties["MS_HttpContext"]).Request[value]就是获取http请求中的某个参数,而value就是调用传过来的参数,在这里是token,那么这段代码就是获取http中的token参数。
[img=720,409.62406015037595]https://m-1254331109.cos.ap-guangzhou.myqcloud.com/202407231554130.png[/img]

然后if判断了token是不是空值然后再判断token参数的值是不是等于"zxh",如果登录则直接返回一个UserInfo对象。

然后回到filesController的身份判断,发现只判断了IsAuthorityCheck返回是否为null,以是只必要让token参数是zxh的时候,那么就可以绕过身份校验了。
[img=720,287.6534296028881]https://m-1254331109.cos.ap-guangzhou.myqcloud.com/202407231554132.png[/img]

0x3 恣意文件下载

照旧 filesController 这个控制器 DownloadRptFile方法。这时我们已经绕过了身份认证,以是只必要看之后代码即可。requestFileName就是我们通报的http参数,
[img=720,176.53401797175866]https://m-1254331109.cos.ap-guangzhou.myqcloud.com/202407231554133.png[/img]

然后跟进代码。并未发现任何过滤../的行为,直接通报给getBinaryFile函数
[img=720,151.50300601202406]https://m-1254331109.cos.ap-guangzhou.myqcloud.com/202407231554135.png[/img]

getBinaryFile函数如下。
[img=720,249.90291262135923]https://m-1254331109.cos.ap-guangzhou.myqcloud.com/202407231554136.png[/img]

结果证明: (读取文件内容会以base64返回)
[img=720,416.16]https://m-1254331109.cos.ap-guangzhou.myqcloud.com/202407231554137.png[/img]

0x4 信息泄露

发现GetCurrentUserList方法查询了所有用户信息。并且返回给前台。
[img=720,182.16]https://m-1254331109.cos.ap-guangzhou.myqcloud.com/202407231554138.png[/img]

是c#中的泛型,这里是用来查询数据库的。可以看到遍历了dicUserList这个数组。这个数组就是初始化的用户信息数组了。
[img=720,200.8695652173913]https://m-1254331109.cos.ap-guangzhou.myqcloud.com/202407231554139.png[/img]

直接访问:
[img=720,352.69776876267747]https://m-1254331109.cos.ap-guangzhou.myqcloud.com/202407231554140.png[/img]

0x5 恣意文件删除

发现DeleteFile2方法是一个删除文件方法。这里也没有发现过滤../以及过滤删除文件的后缀名。
[img=720,212.978505629478]https://m-1254331109.cos.ap-guangzhou.myqcloud.com/202407231554141.png[/img]

虽然是有限制了文件路径,但是全然没有过滤../,而且filename参数也是完全可控的。以是这里其实是存在恣意文件删除漏洞的。
[img=720,214.26695842450766]https://m-1254331109.cos.ap-guangzhou.myqcloud.com/202407231554142.png[/img]

[img=720,259.0424076607387]https://m-1254331109.cos.ap-guangzhou.myqcloud.com/202407231554143.png[/img]

ps: 这里就不放验证截图了,感兴趣的师傅们可以自行本地验证。
【----资助网安学习,以下所有学习资料免费领!加vx:dctintin,备注 “博客园” 获取!】
 ① 网安学习成长路径思维导图
 ② 60+网安经典常用工具包
 ③ 100+SRC漏洞分析陈诉
 ④ 150+网安攻防实战技术电子书
 ⑤ 最权威CISSP 认证考试指南+题库
 ⑥ 超1800页CTF实战本领手册
 ⑦ 最新网安大厂口试题合集(含答案)
 ⑧ APP客户端安全检测指南(安卓+IOS)
0x6 恣意文件上传

UploadFile2方法中获取了各种参数,然后传入UploadFile2

跟进该方法。pathType就是限制文件上传到哪个文件夹的。
[img=720,354.24]https://m-1254331109.cos.ap-guangzhou.myqcloud.com/202407231554145.png[/img]

pathType详解:
[img=720,311.76]https://m-1254331109.cos.ap-guangzhou.myqcloud.com/202407231554146.png[/img]

fs参数是我们通报的byte数组也就是文件的内容。
startPoint等于0就好如许才能创建一个新的文件,datasize则是数组的长度。
[img=720,118.83495145631068]https://m-1254331109.cos.ap-guangzhou.myqcloud.com/202407231554147.png[/img]

漏洞验证:
[img=720,225.36]https://m-1254331109.cos.ap-guangzhou.myqcloud.com/202407231554148.png[/img]

0x7 SQL注入

InventoryController的GetProductInv方法,直接从参数获取boxNoName未经过过滤直接通过string.Format拼接至sql语句中,导致了sql注入。
[img=720,395.28]https://m-1254331109.cos.ap-guangzhou.myqcloud.com/202407231554149.png[/img]

验证:直接sqlmap即可
[img=720,24.48]https://m-1254331109.cos.ap-guangzhou.myqcloud.com/202407231554150.png[/img]

[img=720,175.68]https://m-1254331109.cos.ap-guangzhou.myqcloud.com/202407231554151.png[/img]

更多网安技能的在线实操训练,请点击这里>>
  

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。




欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) Powered by Discuz! X3.4