PHP代码审计 - SQL注入

SQL注入

复制代码
 正则搜索

(update|select|insert|delete).*?where.*=

示例一:

bluecms源码下载:source-trace/bluecms

以项目打开网站根目录,并以ctrl+shift+f打开全局搜索

(update|select|insert|delete).*?where.*=并开启正则匹配

最快寻找脆弱点的方法:

1、是否有可控的值

2、文件路径和文件名字猜测文件作用

3、有无过滤,或者过滤是否严格

这里就不浪费时间,直接测试ad_js.php文件内的sql注入

发现使用了自定义的getone函数,那么跳转到对应函数声明

查看getone函数

发现这里调用了类里的query函数

发现这里使用mysql_query函数,进行的sql语句,中间没有任何过滤,那么就存在sql注入

$ad_id参数来自于get传参

查看blue_ad内有7个字段

payload:1 union select 1,2,3,4,5,6,user()

发现没有回显,查看源代码

原来回显藏在html注释里面了

示例二:

emlog V6.0.0源码下载:https://soft-10-2.xiaoguaniu.com/soft/202105/Emlog_V6.0.0_XiTongZhiJia.zip?t=1731583487\&ip=112.193.34.227\&sign=25a70a465fbab4f660c316a902907b96

依旧使用正则搜索法寻找定位脆弱点,为了节约时间,直接定位漏洞文件comment.php

这里有调用一个自定义函数,看函数名应该是通过IP删除评论的意思

这里将$sql变量传入了db的query方法

发现这直到sql执行都没有过滤方法,那么存在sql注入

刚刚是通过$CACHE->updateCache(array('sta','comment'));转到执行的,这个代码文件路径:/admin/comment.php

并且要使得$action= 'delbyip'


插入调试代码 echo 'qdy';

构造发包,发现执行了调试代码,但是报错

寻找报错代码

缺少token,登录后台后复制token

发现还需要$ip参数,加入echo 调试

IP取值

构造payload

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

成功

mysql监听工具

https://codeload.github.com/cw1997/MySQL-Monitor/zip/refs/heads/master

存中...(img-oyGEHH9H-1731596090466)]

成功

mysql监听工具

https://codeload.github.com/cw1997/MySQL-Monitor/zip/refs/heads/master

相关推荐
这个DBA有点耶1 天前
SQL调优进阶:从“优化一条SQL”到“优化一个系统”的思维升级
java·大数据·数据库·sql·程序人生·dba·改行学it
IvorySQL1 天前
PG 日报|SQL/PGQ 图查询基于联接重写机制实现
数据库·人工智能·sql·postgresql·区块链·ivorysql
云云只是个程序马喽2 天前
海外短剧平台搭建方案:私有化源码系统选型|云微短剧系统技术架构拆解
java·php
你有我备注吗2 天前
SQL学习之查询
java·sql·学习
小小小小钰儿2 天前
网络安全名词术语!
安全·web安全·计算机·网络安全·黑客·编程
雅客李2 天前
2026云手机高负载压力测评 安卓云手机多开实测数据
android·智能手机·php
G.O.G.O.G2 天前
LeetCode SQL 从入门到精通(MySQL)05(下)
数据库·sql·oracle
G.O.G.O.G2 天前
《LeetCode SQL 从入门到精通(MySQL)》09
sql·mysql·leetcode
数据知道2 天前
BGP 劫持是怎么回事?运营商级路由安全科普
网络·安全·网络安全·智能路由器·bgp劫持
广州灵眸科技有限公司2 天前
xfce桌面旋转说明:基于灵眸科技EASY-EAI-Nano-TB
网络·网络协议·tcp/ip·算法·php