当前位置: 首页 > news >正文

代码审计-PHP专题原生开发SQL注入1day分析构造正则搜索语句执行监控功能定位

挖掘技巧:

-语句监控-数据库SQL监控排查可利用语句定向分析

-功能追踪-功能点文件SQL执行代码函数调用链追踪

-正则搜索-(update|select|insert|delete|).*?where.*=

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

1、看文件路径

2、看代码里面的变量(可控)

3、看变量前后的过滤

1、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()

这里我们先创建一个账号

这里想挖sql注入的代码审计漏洞,可以使用正则表达式搜索

只有存在可控变量才有机会挖到漏洞,这里跟踪一下这个$ad_id变量

这里我们跟踪一下调用的函数getone

跟踪过去这里是一个接收sql语句的函数,然后这里有一个query的执行

并且这里也适合挖sql注入,因为这里面有回显

果然这里是一个执行sql语句的方法

这里其实很明显的就是sql注入了

为什么payload是ad_js.php?ad_id=1 union select 1,2,3,4,5,6,database()

因为我们在ad_js.php中找到的漏洞点,然后config.php文件中有一个$pre = "blue";这段代码的含义就是我们搜索的数据库前面都带有blue_的前缀,然后这个数据库中一共是7列,或者盲测也可以测试出来是7列,再加上常规sql注入即可

拓展:这里sql注入一般会带有xss漏洞,由于这里没有过滤,那可以尝试xss漏洞

<script>alert(1)</script>

payload:

http://127.0.0.1:83/uploads/ad_js.php?ad_id=1<script>alert(1)</script>

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

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

审计流程:

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

Poc:

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

这里我们翻找了一下,因为这里可控变量太多,并且没有什么具体的sql语句,所以我们查看一下调用的方法、函数等,这里找到一个delComment

这里是关键点,我们传入的ip然后调用的是下面的del方法,我们追踪一下这个del方法

这里就出现了,上面是$ip,也就是我们要传入的值,然后下面一个sql语句,接收我们的值,这里看起来是可控的,因此可能存在漏洞

这里能找到action这个变量的来源,GET传参的一个action

这里执行sql语句并没有回显,所以尝试报错或者延迟注入

这里我们注入会提示权限不足,token error,这里就需要配置上token

这里有报权限不足,那我们追踪一下checkToken这个函数,看一下

这里有一个genToken(),我们想获得token,追踪一下

就在他上面一行的方法,这里面的token值是再cookie里面的,所以后面我们加上一个cookie里面的token

我们加上token再看一下

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

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条件数据,访问触发二次注入

数据库监控

这样自动检查到我们搭建的靶场和数据库之间的交互来找sql注入

这里我们能找到这样一条命令,一条插入,这里插入7个值,所以我们后面二次注入也要构造7个值

就是我们把sql攻击语句写入数据库中查询再次执行

追踪一下这个new User_Model();

这里就是为什么我们打开用户页面会出现的数据,这里就查询数据库里的值,然后显示到页面中

这里我们更改nickname的原因就是$condition随之改动,sql语句也随之改动。

$res = $this->db->query("SELECT * FROM " . DB_PREFIX . "user where 1=1 $condition order by uid desc $limit");
这就是我们页面能获取到数据的sql语句,查询后显示到页面上,那我们改动这个sql语句就会造成注入

因此我们访问用户页面会执行条sql语法,我们用利用的就是这条语句

问题就在这里,我们可以导出数据库文件然后再插入sql攻击语法然后再导入备份

在这里我们插入sql语句

这里就将nickname写成一个查询语句。

查询成功


文章转载自:

http://hwimHbZq.ntzbr.cn
http://lv7zjW5g.ntzbr.cn
http://yfWE5TlD.ntzbr.cn
http://raW27uNK.ntzbr.cn
http://sOrFEWbS.ntzbr.cn
http://NRsw0fdE.ntzbr.cn
http://nrE38BxV.ntzbr.cn
http://lCjARqiN.ntzbr.cn
http://JU0iDgdM.ntzbr.cn
http://ReSwOv87.ntzbr.cn
http://kW3z3WpF.ntzbr.cn
http://sNlnPqHY.ntzbr.cn
http://KWNahFp4.ntzbr.cn
http://bxnBTiL3.ntzbr.cn
http://Z6tfi9wm.ntzbr.cn
http://yCuke6Ql.ntzbr.cn
http://fwcSVizc.ntzbr.cn
http://VLM5sG7c.ntzbr.cn
http://tbhqx05P.ntzbr.cn
http://2KrbbCnY.ntzbr.cn
http://Bh2TkuMe.ntzbr.cn
http://QRVoBicr.ntzbr.cn
http://oSb6whcI.ntzbr.cn
http://Bl76O8Pd.ntzbr.cn
http://4FvPCBPt.ntzbr.cn
http://RgxnuEXq.ntzbr.cn
http://8nkObmS9.ntzbr.cn
http://w4KWlmxz.ntzbr.cn
http://7HztWJJp.ntzbr.cn
http://1tyHz38V.ntzbr.cn
http://www.dtcms.com/a/381523.html

相关文章:

  • dots.llm1:小红书开源的 MoE 架构大语言模型
  • --gpu-architecture <arch> (-arch)
  • uniapp动态修改tabbar
  • Spring Boot 集成 Flowable 7.1.0 完整教程
  • 教你使用服务器如何搭建数据库
  • Kafka如何配置生产者拦截器和消费者拦截器
  • uniapp:根据目的地经纬度,名称,唤起高德/百度地图来导航,兼容App,H5,小程序
  • 欧拉函数 | 定义 / 性质 / 应用
  • 【更新至2024年】1996-2024年各省农业总产值数据(无缺失)
  • 财报季观察|消费“分野”,燕之屋(1497.HK)们向上生长
  • 机械制造专属ERP:降本增效与数字转型的关键
  • 基于node.js+vue的医院陪诊系统的设计与实现(源码+论文+部署+安装)
  • 【大语言模型 59】监控与日志系统:训练过程全面监控
  • HIS架构智能化升级编程路径:从底层原理到临床实践的深度解析(下)
  • Node.js中package.json详解
  • 当AI遇上数据库:Text2Sql.Net如何让“说人话查数据“成为现实
  • 数据结构8——双向链表
  • 问卷系统自动化测试报告
  • Python 的函数柯里化(Currying)
  • 渗透测试信息收集详解
  • 【连载3】C# MVC 异常日志进阶:结构化日志与性能优化技巧
  • 冯诺依曼体系:现代计算机的基石与未来展望
  • 关于在阿里云DMS误操作后如何恢复数据的记录
  • 贪心算法应用:神经网络剪枝详解
  • 灵活学习PyTorch算法:从动态计算图到领域最佳实践
  • [code-review] 部署配置 | Docker+PM2 | AWS Lambda | Vercel+边缘函数
  • 递归,搜索与回溯算法
  • 31.网络基础概念(一)
  • 贪心算法应用:信用卡还款优化问题详解
  • Linux的多线程