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

BlueCMS SQL注入漏洞(CNVD-2022-25774)

漏洞详情如下:

网站部署:

  • 环境:php5 + apache+ mysql
  • 步骤:
    1. 将解压目录uploads,放在小皮面板的WWW目录下(可以简单对照下一级目录,就可以倒推你要放哪个目录)
    2. 在小皮创建网站,根目录指向uploads
    3. 网站URL访问 http://192.168.100.198:85/install/,进入安装目录,配置数据库、用户名信息
    4. 之后点击下一步安装即可,注意:如果点击安装之后页面变为空白,那么找到compile文件夹,将其下面的php文件删除即可

漏洞审计:

  • 挖掘技巧:
  1. 语句监控-数据库SQL监控排查可利用语句定向分析
  2. 功能追踪 - 功能点文件SQL 执行代码函数调用链追踪
  3. 正则搜索- (update|select|insert|delete|).*?where.*=
  • 如何快速的在多个文件代码里面找脆弱:
  1. 看文件路径(比如优先选择不需要权限就能够利用的)
  2. 看代码里面的变量(可控)
  3. 看变量前后的过滤(选择过滤较少的)
  • 我们定位到 ad_js.php这个文件里面
  1. 如图所示:首先具有可控变量,并且对于变量的过滤只采取了删去空格,形同虚设
  2. 我们ctrl + 左键进入getone 这个函数,查看是否存在过滤,查看后发现功能就是进行了SQL语句的执行,没有其他任何逻辑,那么我们就可以判断这里漏洞的存在,
  3. 最后有了输入,也确定逻辑存在SQL注入,最后我们找输出,输出决定了我们以什么方式进行漏洞利用,可以看到,末尾是存在 echo输出的,所以我们可以直接使用联合查询,输出就右键查看源代码即可

漏洞利用:

  • 首先我们需要确定我们要访问的页面URL路径,其次需要了解输入的参数
  • 直接右键单击 ad_js.php 点击复制路径 => 复制绝对根路径
  • 参数的话如果没有 GET\[\]** 和 **_POST\[\] 的话,就直接输入 ad_id即可
  • 我们这里可以使用技巧,下图中的 echo $sql,是自己加的,这样可以更清楚明白SQL 语句的执行,但前提是要注意不要影响程序的正常执行逻辑
  • 访问URL : 如图所示 => 右键点击检查源代码即看见结果,
  • 我们使用UNION 注入:这里列数可以参照数据库里面的 => 可以看到7是回显位,在这里输入我们想要得到的信息,比如 user()

做到这里,就可以宣告审计完成

相关推荐
PHP实战开发录1 小时前
MySQL字段加索引为什么没变快
数据库·mysql·php·开发
红红谈说2 小时前
标签化推送与已读统计怎么做?一次通知链路的工程复盘
数据库·消息推送·数字乡村·集合运算·已读回执·标签体系·写入放大
Shadow(⊙o⊙)3 小时前
MySQL索引
数据库·mysql
倔强的石头_4 小时前
多环境配置治理:开发、测试、生产连接信息如何隔离
数据库
杨云龙UP4 小时前
一次数据库查询缓慢故障复盘:大表数据增长、SQL全表扫描导致系统响应异常
linux·运维·服务器·数据库·sql·mysql
2501_933670795 小时前
2027 应用统计学秋招选岗指南:统计、SQL、业务指标如何对应岗位
数据库·sql
Alice-YUE5 小时前
向量数据库选型实战:Chroma/Qdrant/Milvus/PgVector 怎么选
数据库·milvus·向量数据库·chroma·rag·qdrant
invicinble5 小时前
python 编程语言 认识维度
开发语言·数据库·python
IT古董5 小时前
《FDE前沿部署工程师实战教程》29 - Enterprise AI Security:Agent安全体系设计
大数据·数据库·人工智能
OpenCSG5 小时前
行业观察 | 在宜昌看具身智能:开源社区被摆到了台前
数据库·开源