代码审计
教学计划:审计项目漏洞Demo->审计思路->完整源码框架->验证并利用漏洞
教学内容:PHP,JAVA网站应用,引入框架类开发源码,相关审计工具及插件使用
必备知识点:环境安装搭建使用,相关工具插件安装使用,掌握前期各种漏洞原理及利用
开始前准备:审计目标的程序名,版本,当前环境(系统,中间件,脚本语言等信息),各种插件等
挖掘漏洞根本:可控变量及特定函数,不存在过滤或过滤不严谨存在绕过导致的安全漏洞
漏洞挖掘思维导图
代码审计思路
1.定点挖掘关键字:
可控变量-变量接受get post,接受关键字KaTeX parse error: Undefined control sequence: \insert at position 50: …注入漏洞-->搜索select\̲i̲n̲s̲e̲r̲t̲\update\sql执行语句…_GET$_POST等
2.定点挖掘功能点:
如挖掘文件上传,会员中心存在文件上传的操作地址,抓包分析找到源码中的特定文件代码段,进行文件上传代码分析挖掘。
3.拓展:视漏洞而定
sql注入 数据库监控-监控到当前页面和数据库的交互过程(SQL执行语句)
断点调试:访问页面对应代码进行断点调试(执行过程前后顺序,调用文件列表)
可使用Seay源代码审计系统进行数据库监控、全局搜索关键字等(下载:https://github.com/f1tz/cnseay)
动态调试|Maccms SQL 注入分析(附注入盲注脚本):https://www.cnblogs.com/ichunqiu/p/9548754.html
双重编码绕过:源代码将%5c自动转为\,%25%35%63 转为%5c get出url编码
二次注入
原理:绕过转义注入 魔术引号
满足条件: 有insert update (必须是有插入到数据库中的操作) 、可控变量
注册用户:insert xiaodi union select'
过滤: xiaodi union select\'
进入数据库: xiaodi union select'
修改用户:update xiaodi union select' 条件=用户名是谁 xiaodi' union select update注入