文章目录
代码审计思维导图:
代码审计简介:
- **教学计划:**审计项目漏洞Demo->审计思路->完整源码框架->验证并利用漏洞
- **教学内容:**PHP,JAVA网站应用,引入框架类开发源码,相关审计工具及插件使用
- **必备知识点:**环境安装搭建使用,相关工具插件安装使用,掌握前期各种漏洞原理及利用
- **开始前准备:**审计目标的程序名,版本,当前环境(系统,中间件,脚本语言等信息),各种插件等
- **挖掘漏洞根本:**可控变量及特定函数,不存在过滤或过滤不严谨存在绕过导致的安全漏洞
漏洞挖掘思维导图:
fortify使用:
Recent Projects是之前测试的项目,点击“Advanced Scan…”后选择源码,可以添加新项目
存在的漏洞会按照危害统计,并根据种类的不同被分组列在左边,点击“File”“Close Project”退出一个项目
支持多种计算机语言的分析
简易SQL注入代码段分析挖掘思路(以sqllib-less2为例)
首先包含了数据库配置文件,必须包含该文件才能与数据库建立连接,对数据库进行操作
include(“../sql-connections/sql-connect.php”);
接收变量,并带入到SQL语句中
$id=$_REQUEST[‘id’]; //可控变量
$sql=”SELECT * FROM users WHERE id=$id LIMIT 0,1”;
数据库执行函数
$result=mysql_query($sql); //执行特定函数
代码审计思路:
1.定点挖掘关键字:
可控变量
- 变量接受get post,接受关键字$_GET特定函数
-输出print、数据库操作mysql_query等特定关键字
- sql注入漏洞–>搜索select\insert\update\sql执行语句
- xss漏洞–>搜索echo\print等
- 安全漏洞–>搜索
$_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%43转为%5c get出url编码
二次注入:
- 原理:绕过转义注入 魔术引号
- 满足条件: 有
insert , update
(必须是有插入到数据库中的操作) 、可控变量
注册用户:insert xiaodi union select'
过滤: xiaodi union select\'
进入数据库: xiaodi union select'
修改用户:update xiaodi union select' 条件=用户名是谁 xiaodi' union select update注入
一、可以先用工具看一下,以及熟悉环境
二、例子:
-
定点挖掘关键字
2.Seay源代码审计系统——淡然点图标系统3.Seay源代码审计系统——骑士 CMS 自带过滤
-
mysql monitor——苹果CMS:转移+关键字 过滤
1. 定点挖掘关键字
可控变量:
变量接受get post 接收关键字 $_GET
特定函数:
输出print
数据库操作
通过搜索特定关键字尝试寻找特定漏洞
如:搜索echo print 常识挖掘的就是XSS漏洞
如:select, insert ,update ,sql执行语句 对应sql注入
视漏洞而定:
sql注入
数据库监控-监控到当前页面和数据库交互过程(SQL执行语句)
断点调试:访问页面对应代码进行调试(执行过程前后顺序,调用文件列表等 )
2.Seay源代码审计系统——淡然点图标系统
全局搜索:
定位函数:
定位到定义函数的地方
会检测来源地址,所有在主页面修改跳转地址到要测试的页面
在从主页面设置跳转测试地址
没有回显可以用延时注入/报错
注入来测试是否存在sqli漏洞
3.Seay源代码审计系统——骑士 CMS 自带过滤
配置文件
有自定义的过滤函数:
和addslashes函数的作用相同:
二次注入的原理:绕过转义注入 魔术引号
满足条件:
有2个(insert + update) (必须是有插入到数据库中的操作)
可控 变量
可使用Seay源代码审计系统进行数据库监控、全局搜索关键字等
4. mysql monitor——苹果CMS:转移+关键字 过滤
即用双重编码绕过
涉及资源:
动态调试|Maccms SQL 注入分析(附注入盲注脚本):https://www.cnblogs.com/ichunqiu/p/9548754.html
Fortify:https://www.ddosi.org/fortify/#gallery-10
Seay源代码审计系统:https://github.com/f1tz/cnseay
MySQL-Monitor:https://github.com/cw1997/MySQL-Monitor
oracleMonitor:https://github.com/denglt/oracleMonitor
参考网站:、
50:代码审计-PHP无框架项目SQL注入挖掘技巧 - zhengna - 博客园 (cnblogs.com)
https://blog.csdn.net/grb819/article/details/118522254
【小迪安全-web渗透测试课程】第50天:代码审计-PHP无框架项目SQL注入挖掘技巧 - 哔哩哔哩 (bilibili.com)