XCTF篇:Web (新手练习题)之 xff_referer


当你的才华

还撑不起你的野心时

那你就应该静下心来学习


目录

Web (新手练习题)之 xff_referer

0x01 前言

0x02 补充知识点:

X-Forwarded-For(XFF)

Referer

0x03 BurpSuite 修改数据包获得Flag

0x04 ModHeader 插件工具获得Flag


 

Web (新手练习题)之 xff_referer

0x01 前言

想玩玩攻防世界的朋友,CE已附上XCTF Web 练习题传送门:https://adworld.xctf.org.cn/

XCTF篇:Web (新手练习题)之 xff_referer_第1张图片

难度系数: 一星

题目来源: Cyberpeace-n3k0

题目描述:X老师告诉小宁其实xff和referer是可以伪造的。

题目分析:装X老师,意图很明显就是像让小宁这个靓仔(叼毛)了解xff和referer 相关的知识点。

  • X-Forwarded-For:简称XFF头,它代表客户端,也就是HTTP的请求端真实的IP,只有在通过了HTTP 代理或者负载均衡服务器时才会添加该项
  • HTTP Referer是header的一部分,当浏览器向web服务器发送请求的时候,一般会带上Referer,告诉服务器我是从哪个页面链接过来的

 

0x02 补充知识点:

X-Forwarded-For(XFF)

维基百科:

      X-Forwarded-ForXFF)是用来识别通过HTTP代理或负载均衡方式连接到Web服务器的客户端最原始的IP地址的HTTP请求头字段。 Squid 缓存代理服务器的开发人员最早引入了这一HTTP头字段,并由IETF在HTTP头字段标准化草案中正式提出。

      当今多数缓存服务器的用户为大型ISP,为了通过缓存的方式来降低他们的外部带宽,他们常常通过鼓励或强制用户使用代理服务器来接入互联网。有些情况下,这些代理服务器是透明代理,用户甚至不知道自己正在使用代理上网。

      如果没有XFF或者另外一种相似的技术,所有通过代理服务器的连接只会显示代理服务器的IP地址,而非连接发起的原始IP地址,这样的代理服务器实际上充当了匿名服务提供者的角色,如果连接的原始IP地址不可得,恶意访问的检测与预防的难度将大大增加。XFF的有效性依赖于代理服务器提供的连接原始IP地址的真实性,因此,XFF的有效使用应该保证代理服务器是可信的,比如可以通过创建可信服务器白名单的方式。

      简单地说,xff是告诉服务器当前请求者的最终ip的http请求头字段
      通常可以直接通过修改http头中的X-Forwarded-For字段来仿造请求的最终ip

 

Referer

维基百科:

      HTTP来源地址(referer,或HTTP referer)
      是HTTP表头的一个字段,用来表示从哪儿链接到当前的网页,采用的格式是URL。换句话说,借着HTTP来源地址,当前的网页可以检查访客从哪里而来,这也常被用来对付伪造的跨网站请求。

      简单的讲,referer就是告诉服务器当前访问者是从哪个url地址跳转到自己的,跟xff一样,referer也可直接修改


 

解题思路

0x03 BurpSuite 修改数据包获得Flag

1、浏览器设置代理,保持跟BurpSuite 的代理一致

XCTF篇:Web (新手练习题)之 xff_referer_第2张图片

BurpSuite 配置的代理

XCTF篇:Web (新手练习题)之 xff_referer_第3张图片

2、BurpSuite 开启监听,刷新当前浏览页面,在BurpSuite 的Raw下添加X-Forwarded-For(XFF)字段

伪造HTTP请求头中X-Forwarded-For

X-Forwarded-For: 123.123.123.123

XCTF篇:Web (新手练习题)之 xff_referer_第4张图片

3、BurpSuite 放包(Forward)后,浏览页面字体发生变化,给出相关提示:“必须来自https://www.google.com”

XCTF篇:Web (新手练习题)之 xff_referer_第5张图片

4、根据提示,我们再次刷新浏览器页面,在BurpSuite 的Raw下添加X-Forwarded-For和Referer 字段

伪造HTTP请求头中X-Forwarded-For

伪造HTTP请求头中Referer

X-Forwarded-For: 123.123.123.123

Referer: https://www.google.com

 

XCTF篇:Web (新手练习题)之 xff_referer_第6张图片

5、再次我们放包(Forward),浏览页面发生改变,得到了我们梦寐以求,日思夜想的Flag

XCTF篇:Web (新手练习题)之 xff_referer_第7张图片

 

 

 

 

成功获得Flag

cyberpeace{ad1b9c31a98ecd7d33ce7b28c7667994}

 

0x04 ModHeader 插件工具获得Flag

      ModHeader(chrome http请求头添加插件)是一款可以安装在谷歌浏览器上使用的http请求头添加插件,主要功能是为网页添加、修改或删除请求头和响应头,并可以为网页使用多个不同的配置文件来配置请求头,另外也可以将之前使用过的http请求头导入进该插件的配置中,或将正在使用的请求头导出以在别的地方使用,非常实用,需要的朋友欢迎前来下载使用!

使用谷歌浏览器的ModHeader 插件工具来伪造X-Forwarded-For(XFF)和Referer

1、首先打ModHeader 工具,添加X-Forwarded-For(XFF)字段

伪造HTTP请求头中X-Forwarded-For

X-Forwarded-For: 123.123.123.123

XCTF篇:Web (新手练习题)之 xff_referer_第8张图片

2、添加X-Forwarded-For(XFF)字段成功后,刷新当前页面,当前浏览页面,给出相关提示:“必须来自https://www.google.com”

XCTF篇:Web (新手练习题)之 xff_referer_第9张图片

3、根据提示,我们需要额外添加一个Referer 字段

首先,打开ModHeader 工具,点击弹窗右上角的 + 号,选择添加 “Request Heders”

XCTF篇:Web (新手练习题)之 xff_referer_第10张图片

XCTF篇:Web (新手练习题)之 xff_referer_第11张图片

4、ModHeader 工具新增一行Request Headers 后,在新增的一行中填写Referer 字段

伪造HTTP请求头中X-Forwarded-For

伪造HTTP请求头中Referer

X-Forwarded-For: 123.123.123.123

Referer: https://www.google.com

XCTF篇:Web (新手练习题)之 xff_referer_第12张图片

5、重新刷新当前浏览页面,成功获得Flag

cyberpeace{ad1b9c31a98ecd7d33ce7b28c7667994}

XCTF篇:Web (新手练习题)之 xff_referer_第13张图片

 


我不需要自由,只想背着她的梦

一步步向前走,她给的永远不重


 

你可能感兴趣的:(渗透测试,XCTF篇,XCTF-Web篇)