前言
领导的领导, 突发奇想要整个cnnvd, 三个通用的重任就落到了我身上, 最近也是在复健一下代码审计, 顺便记录一下思路
审计准备
一个正常人的脑子
一个正常人用的电脑
一套net代码
审计工具:dnSpy:https://github.com/dnSpy/dnSpy
案例1
我们用一个大佬打下来的某套源码来审计, 该系统如果出洞也是通用了()
第一步:看眼路由
简单用登录框看一眼路由结构

抓包看路径

/Home/newLogin
根据这个路径, 没有像login.aspx的文件拓展名, 可以高度确定网站是一个MVC架构, 且存在一个集中的controller
Home是controller, newLogin是方法
所以现在, 我们回到源码中去找他集中的controller

根据他的dll来猜测, system应该是系统的东西, 应该跟controller没什么关系, 其他的一些命名也不是很符合我们要找的controller, 看到JuCheap, 感觉就是他了, 点开JuCheap后, 果然我们发现了controller

依照登录口的路由/Home/newLogin, 我们可以在controller中找到他

既然到这里, 我们再看看他下面的一些东西, 其中有一个叫做Filters的, 这个就是过滤器, 如果方法添加了过滤器, 那就可能没办法从前台发起攻击了

当然也不是绝对, 万一他的过滤器压根就没写东西呢, 别不信, 真有这种


这套代码就写的有点东西, 审计难度也大(其实就是我菜), 接下来我们看一套难度没这么大的
案例2
这回也是拿一套非MVC架构的来审
路径中有.aspx, 这就是非常典型的Web Forms, 这种结构就是单纯的物理文件了

我们直接跳过审计阶段来到漏洞点, 这里接收了参数到DleteTemp中

非常明显的SQL注入, 我们直接把参数拼入就可以了, 玩过SQL注入的就不需要多说怎么拼了吧

简单拿下通用, 这里直接贴出sqlmap的执行结果

总结
.net的审计相对于Java来说其实算是简单很多的, 学会跟踪参数, 找路由就可以很快上手

Comments NOTHING