小迪老师代码审计
代码审计
挖掘漏洞
- 关键字搜索:1搜变量,2搜函数关键字
工具
- fortify,批量化挖掘漏洞,静态挖掘漏洞,支持多种语言,做题先扫描一遍
seay:
- 扫描关键字,
- 输入关键字之后点击全局搜索,
- 但是可能封装到一个类中了,
- 记住勾选正则和不区分大小写,
- 一定要看看哪一个语句是否有变量,没有变量就是写死了,没有办法控制变量,就没办法sql注入,
- 乱码记得切换编码
- 由关键字搜索到具体函数,根据函数名右键全局搜索调用函数的位置
- 关键字搜索,使用全局搜索,搜索可控变量或者执行函数
- 搜索例如select update insert 等sql语句函数,看看是否有可控变量,没有可控变量就是死sql语句,无法进行sql注入
- 函数查询
- 找到具体函数之后,右键定位函数使用的位置
步骤
- 搜索select
- 找到变量
- 找到变量调用函数
- 右键定位函数调用位置
- 看看页面和数据库的互动,根据回显判断注入点
判断过滤机制
- 看配置文件,看配置文件的关键字,例如:fun、inc
漏洞产生的根本
- 可控变量
- 特定函数,决定漏洞类型
- 不存在过滤或过滤不严谨存在绕过导致的安全漏洞
定点挖掘关键字
可控变量
特定函数
输出
- print echo
数据库操作
搜索特定关键字尝试寻找特定漏洞
- 搜索echo print 尝试挖掘的就是xss漏洞
- 搜索$_GET $_POST 尝试挖掘的就是安全漏洞(可控变量)
- 搜索select insert update sql执行语句 == sql注入漏洞
定点挖掘功能点
- 我要挖掘文件上传,通过网站的浏览,发现文件上传的位置,例如会员中心,抓包分析找到源码中的特定文件代码段,进行文件上传代码分析挖掘。
拓展:视漏洞而定
- sql注入 数据库监控-监控到当前页面和数据库的交互过程(SQL执行语句)
- 断点调试:访问页面时对应代码进行断点调试(执行过程前后顺序,调用文件列表)
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 h3110w0r1d's Blog!