某网络教学平台审计过程记录
0X00 前言 在某次漏洞挖掘中通过了Ueditor的远程图片抓取漏洞成功拿到了该系统的权限,并把源码下载了下来,并趁此机会学习学习Net代码审计,如有问题,感谢指正 0X01 审计过程 拿到源代码后,我们通过dnspy直接查看bin目录下的二进制文件即可(编译好的源代码),采用的MVC的设计架构我们关注Controllers中的方法即可 在来点小插曲,在Net中继承会默认继承对方的Filter
0X00 前言
在某次漏洞挖掘中通过了Ueditor的远程图片抓取漏洞成功拿到了该系统的权限,并把源码下载了下来,并趁此机会学习学习Net代码审计,如有问题,感谢指正
0X01 审计过程
拿到源代码后,我们通过dnspy直接查看bin目录下的二进制文件即可(编译好的源代码),采用的MVC的设计架构我们关注Controllers中的方法即可

在来点小插曲,在Net中继承会默认继承对方的Filter,所以这一点需要格外注意,例如以下Demo
Filter

请求Demo1会触发此Filter请求

Demo又继承Demo1

最后的请求结果,请求demo,带cookie能够正常访问

不带Cookie会直接跳转

0x10 任意文件上传1
全局搜索upload发现此处存在任意文件上传,首先判断上传文件个数是否等于0,如果等于则返回保存失败,之后直接通过string extension = Path.GetExtension(httpPostedFileBase. FileName); 获取后缀并且直接拼接导致任意文件上传

向上追溯,发现继承于TeachingBaseController跟进查看

实现了TeachingActionFiler

判断了用户session不为空,以及用户身份必须等于教师

0x11 任意文件上传2
一处未授权任意文件上传继承ApiController 并未实现任何权限校验操作

但文件名是由text+string str = Guid. NewGuid(). ToString() +后缀名组成,且是以json格式返回,爆破Guid 不知道猴年马月了


0x12 任意文件上传3
这个就比较人性化了,拼接后缀后直接返回路径



0x13 任意文件上传4
同样也是拼接路径,最后写入数据流



当然这套系统还有很多同样的问题太多了,都差不多

0x14 任意文件下载
用户可控参数path,和filname ,并未做任何过滤,直接判断path路径文件是否存在,存在即下载文件


0x15 SQL注入
用户可控参数 role,id,radio其中id以及role直接拼接导致注入的发生




这一处也是同样的

单位太少了,就4,5家,还有技工和技师这种