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直接拼接导致注入的发生


这一处也是同样的

点击收藏 | 0 关注 | 1 打赏
登录 后跟帖