50:代码审计-PHP无框架项目SQL注入挖掘技巧
代码审计思维导图
代码审计
- 教学计划:审计项目漏洞Demo->审计思路->完整源码框架->验证并利用漏洞
- 教学内容:PHP,JAVA网站应用,引入框架类开发源码,相关审计工具及插件使用
- 必备知识点:环境安装搭建使用,相关工具插件安装使用,掌握前期各种漏洞原理及利用
- 开始前准备:审计目标的程序名,版本,当前环境(系统,中间件,脚本语言等信息),各种插件等
- 挖掘漏洞根本:可控变量及特定函数,不存在过滤或过滤不严谨存在绕过导致的安全漏洞
漏洞挖掘思维导图
代码审计思路
1.定点挖掘关键字:
- 可控变量-变量接受get post,接受关键字$_GET
- 特定函数-输出print、数据库操作等
- 特定关键字
- sql注入漏洞-->搜索select\insert\update\sql执行语句
- xss漏洞-->搜索echo\print等
- 安全漏洞-->搜索$_GET\$_POST等
2.定点挖掘功能点:
- 如挖掘文件上传,会员中心存在文件上传的操作地址,抓包分析找到源码中的特定文件代码段,进行文件上传代码分析挖掘。
3.拓展:视漏洞而定,举例
- sqlql注入 数据库监控-监控到当前页面和数据库的交互过程(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注入