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注入