首页 > 其他分享 >Web安全入门与靶场实战(15)- 修改HTTP请求头

Web安全入门与靶场实战(15)- 修改HTTP请求头

时间:2023-01-24 11:00:13浏览次数:42  
标签:Web HTTP 请求 网站 IP 访问 15 浏览器 客户端

在HTTP请求报文中,请求头是我们需要重点了解的部分。请求头主要用于向网站发送客户端的一些信息,请求头中的字段非常多,并且都遵循着固定格式。不过并不是在每个请求报文中都要包含所有的字段,而是针对不同的网站,从不同的客户端所发出的HTTP请求头中的信息都是不相同的。

在这里并不准备集中介绍这些字段,而是随着课程的进展,将逐步对请求头中的一些常用字段展开介绍。

请求头中的常规字段

有些字段在绝大多数的请求头中都会存在,属于常规字段。比如下面所列举的几个字段:

(1)      Host,所要访问网站的域名或IP地址以及端口号。

(2)      Accept,客户端可以接收哪些MIME类型的消息。

MIME类型用来设定某种扩展名文件的打开方式,当具有该扩展名的文件被访问时,浏览器会自动使用指定的应用程序来打开,如jpg图片的MIME为image/jpeg。

比如Accept:text/html,表示客户端希望接收HTML文本。而如果是Accept:text/plain,则表示客户端只能接收纯文本,网站不能向它发送图片、视频等信息。

(3)      Accept-Language,指定客户端可以接收的语言。

如果请求消息中没有设置这个域,默认是任何语言都可以接收。该项也可以作为用户地区的判断依据。

(4)      User-Agent,客户端操作系统和浏览器的信息。

比如从Firefox浏览器发出的HTTP请求中的User-Agent字段的值:

Web安全入门与靶场实战(15)- 修改HTTP请求头_x-forwarded-for

利用curl发出的HTTP请求中的User-Agent字段的值:

Web安全入门与靶场实战(15)- 修改HTTP请求头_请求头_02

网站通过User-Agent字段可以判断客户端操作系统和浏览器的类型,从而展示对应的页面,也可以通过UA来判断客户端的访问是否合法,是用户访问还是程序访问等。

上面所列举的几个字段,User-Agent非常重要,后面结合具体应用,还将展开详细介绍。至于其它几个字段,以及那些没有介绍的字段,由于在Web安全中较少涉及,这里就不一一列举了。

伪造客户端IP地址

这里首先需要明确一个问题,请求头中的所有字段都是可以修改的,这也是在Web安全中经常需要执行的操作。

另外,我们还可以根据需要在请求头中添加一些字段。

有些字段在请求头中可能平常很少出现,但是对于Web安全又非常重要,那么我们就可以根据需要在请求头中添加这些字段。

这其中最为常见的操作就是在请求头中添加“X-FORWARDED-FOR”字段,从而来伪造客户端的IP地址。

下面还是结合一个CTF例题来具体说明。

Bugku-Web-程序员本地网站

打开题目后,给出提示:“请从本地访问!”。

什么叫本地访问?这是我们首先需要搞清楚的一个概念。

以我们在CentOS虚拟机中搭建的DVWA网站为例,我们平时都是在真机中,通过Windows系统中的浏览器去访问这个网站。

假设CentOS虚拟机的IP是192.168.80.50,那么我们在浏览器中输入URL:http://192.168.80.50就可以访问到网站。

在客户端上通过网络访问服务器中的网站,这种方式称为远程访问。

如果我们直接在CentOS虚拟机中访问在这台服务器上的网站,这种方式就称为本地访问。

本地访问,既可以像客户端远程访问那样使用服务器的IP,比如http://192.168.80.50,也可以使用回环地址127.0.0.1,比如http://127.0.0.1。

很明显,回环地址只能用于本地访问。所以对于这个题目,要求我们从本地访问,也就是要求我们使用127.0.0.1这个地址去访问网站。

为什么要限制网站只能从本地访问呢?这是因为网站中的某些版块可能安全要求比较高(比如后台管理版块),要对这些版块进行操作,只允许在服务器本地进行。所以这个题目就是提出这样一种要求。

但我们在客户端肯定是无法实现对这个网站的本地访问的,这时就可以伪造客户端IP。如果我们把客户端的IP伪造成127.0.0.1,那么即使仍是通过服务器的IP去访问网站,但网站依然会认为我们是在本地访问。

修改请求头还是需要借助于Burpsuite,在Burpsuite中拦截请求报文并发送到Repeater模块,然后在请求头中添加X-Forwarded-For字段,并把值设置为127.0.0.1:

Web安全入门与靶场实战(15)- 修改HTTP请求头_x-forwarded-for_03

将修改后的请求报文发送出去,就从响应报文中得到flag:

Web安全入门与靶场实战(15)- 修改HTTP请求头_burpsuite_04

利用浏览器插件伪造IP

在了解了HTTP协议的基本概念,并掌握了相关操作之后,我们终于可以继续对靶机进行操作了。

靶机中的网站同样要求只能在本地访问:

Web安全入门与靶场实战(15)- 修改HTTP请求头_burpsuite_05

而且在源码的注释中,明确提示我们可以使用x-forwarded-for:

Web安全入门与靶场实战(15)- 修改HTTP请求头_burpsuite_06

下面我们同样利用Burpsuite来修改x-forwarded-for的值,发现响应报文是一个302跳转,点击“Follow redirection“跟随跳转:

Web安全入门与靶场实战(15)- 修改HTTP请求头_请求头_07

成功返回了网站主页面:

Web安全入门与靶场实战(15)- 修改HTTP请求头_x-forwarded-for_08

但是接下来对网站的访问都要求修改客户端IP,这样用Burpsuite操作起来就有些麻烦了。我们可以在Firefox浏览器中安装一个插件“x-forwarded-for Header”,通过这个插件也可以修改请求报文中的x-forwarded-for。

Web安全入门与靶场实战(15)- 修改HTTP请求头_请求头_09

安装完插件后,设置要修改的客户端IP。这样我们只要点击了这个插件,那么所有从这个浏览器发出的请求报文中都是使用了经过伪造的IP。

Web安全入门与靶场实战(15)- 修改HTTP请求头_请求头_10

这下就可以正常访问网站了,可以发现这是Alice所在的Ceban Corp公司的网站,下面我们将接着去寻找网站中是否存在漏洞。

Web安全入门与靶场实战(15)- 修改HTTP请求头_请求头_11

标签:Web,HTTP,请求,网站,IP,访问,15,浏览器,客户端
From: https://blog.51cto.com/yttitan/6022211

相关文章

  • 1579_AURIX_TC275_MTU中的ECC机理以及各种寄存器实现
    全部学习汇总:​​GreyZhang/g_TC275:happyhackingforTC275!(github.com)​​这一夜的信息全是寄存器地址信息,在了解功能的时候都是非关键信息。后续的内容整理中,这部......
  • 1577_AURIX_TC275_MTU中检测控制相关寄存器
    全部学习汇总:​​GreyZhang/g_TC275:happyhackingforTC275!(github.com)​​开篇介绍的功能室之前看过很多次的一个握手的功能。快速行以及快速列模式的测试中,这个行......
  • Netty WebSocket客户端
    参考:​​https://www.jianshu.com/p/f8f99f20d7f4​​WebSocketClient.javapackagecom.flash.client;importcom.flash.handler.WebSocketClientHandler;importcom.flas......
  • 网络请求HTTP状态码以及含义
    相关文章:python状态码及其含义_Python中HTTP常见响应状态码有几种类型https://blog.csdn.net/weixin_39673704/article/details/111431231PythonRequests库Get和Post......
  • STC51 STC15开发工控网关-工控主机-02-开关量采集原理与设计
    开关量采集电路适用于对开关量信号进行采集,如循环泵的状态信号,进出仓阀门的开关状态灯开关量。污染源在线检测仪可采集16路开关信号,输入24VDC;设定当输入范围为18~24VDC时,认......
  • CF1715C
    *1700Monoblock-洛谷|计算机科学教育新生态(luogu.com.cn)首先看数据范围  1≤n,m≤1e5。主要是修改1e5,查询1e5,这里的话要么O(log)做法,要么O(1)做O(log)没......
  • 嵌入 WebAssembly 运行时和实例化 WebAssembly 模块的几大要素
    下面这段代码忽略了错误处理机制,介绍了如何在Go语言开发的宿主程序中嵌入WebAssembly.funccreateWasmVM(code[]byte){engine:=wasmtime.NewEngine()mod......
  • ARC153F - Tri-Colored Paths
    题意给定一个\(n\)个点\(m\)条边的无向连通图,求将\(m\)条边进行\(3\)染色且满足:存在一条简单路径,使得路径上三种颜色的边各有至少一条。的方案数。数据范围:\(......
  • http基础(随缘更新)
    前言:过年有点无聊,写写博客吧,顺便也总结一下。1.TCP/IP协议族1.1定义  什么是协议?协议是为了解决计算机与网络设备通信所制定的一种规则,只有使用相同的规则,才能顺利......
  • HTTPS 是这样握手的
    HTTP协议默认是明文传输,存在一定的安全隐患,容易被中间人窃听和攻击,在加密解决HTTP协议带来的安全问题中提到使用哈希、对称加密、非对称加密等方式对数据加密,能解决数据......