目录
一、审计方法
1、从黑盒到白盒
2、白盒审计
3、灰盒审计
二、审计过程
1、功能点追踪
2、功能函数
3、目录扫描
4、getshell
5、安全模块未引用
6、自动扫描工具
一、审计方法
1、从黑盒到白盒
--->从一个网站前端
--->查看其页面的源代码,并分析关键
--->根据关键部分使用fofa等工具去搜索(所使用的关键字部分搜到的越多的,就优先考虑,毕竟出货几率就大了)
--->然后寻找到对应的开发系统(网站一多,肯定有的地方会表明某某系统,某某技术支持等待)
--->然后再寻找到对应的源码
(关键部分就可以搜这些URL,找到资产最多的)
2、白盒审计
直接从源码下手,结合cnvd已经爆出,但未公布的漏洞,然后尝试在修复后的新版本中继续绕过,实现新漏洞(直接代码审计也许考虑当前版本已有的漏洞,事半功倍)
3、灰盒审计
黑盒白盒相结合的动态审计
二、审计过程
1、功能点追踪
--->黑盒寻找到功能点
--->分析请求的URL所对应源码的路由(抓包分析)
--->再分析对应的Inherits、CodeFile、CodeBehind(即所指向的程序集,以及路径等信息。找到后反编译后再进行分析)
--->再对程序进行分析是否可以利用
2、功能函数
根据平时收集的功能函数,丢审计工具里面去搜
(注:源码多用几个工具打开,有的工具可能搜不到;函数开始平时日积月累的收集,也可以多查找几个相关功能的源代码,找出这个功能的所有源代码里面相同的函数,可能就是这个功能函数了)
3、目录扫描
将源码的所有目录复制下来,然后使用bp挨个跑一遍
(如果返回字节很大,就说明可能存在未授权访问)
4、getshell
如果要getshell的话,就得考虑文件上传、命令执行等可能存在严重漏洞的功能点了
5、安全模块未引用
为了节省开发成本与时间,很多功能都是基于模块开发,最后耦合在一起的,防护模块也不例外
当某些页面为调用一些安全验证模块,就会出现对应的安全问题
在源码中寻找未调用安全模块的目录(可以使用排除法,搜索安全模块的函数,然后会出现包含安全模块的目录,将包含安全模块的目录进行排除)
6、自动扫描工具
1、ILSpyi
Releases · icsharpcode/ILSpy (github.com)
(还一直在更新,推荐使用这个)
2、dnSpy
Releases · dnSpy/dnSpy (github.com)
3、Reflector
网上下载网站可以下载到
Reflector下载免费版_.NET Reflector(.NET反编译工具下载)绿色免费版11.1 - 系统之家 (xitongzhijia.net)