打开题目
没有发现什么,我们查看源代码
在这里我们发现了提示
访问一下页面得到
提示说不能来自于https://Sycsecret.buuoj.cn,我们尝试访问一下这个url
发现访问不了
我们bp抓包一下
伪造个referer头
referer:https://Sycsecret.buuoj.cn
发包过去看看
发现页面又说要用Syclover
所以又要伪造浏览器
发包过去,发现页面又要本地ip才能访问
我们伪造本地ip地址
发包过去
得到flag
同样的道理
例题见:墨者学院 浏览器信息伪造
打开题目
点开才发现网页只有在IPhone手机的2g网络下才能查看
抓包,修改ua头
Mozilla/5.0 (iPhone; CPU iPhone OS 9_3_2 like Mac OS X) AppleWebKit/601.1.46 (KHTML, like Gecko) Mobile/13F69 MicroMessenger/6.6.1 NetType/2G
或者这个
Mozilla/5.0 (iPhone; CPU iPhone OS 14_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/7.0.17(0x17001126) NetType/2G Language/zh_CN
{上面这个是我百度搜的,大佬说ua头信息百度就能搜到,搜关键词iPhone手机,微信就能有一大堆,不是固定卡死的,其实浏览器也只是看看关键词,我们只需要改一下关键词上传即可}
ua头大全见:手机微信ua大全,最新不重复的UA库
审计一下
-
Mozilla/5.0: 这是用户代理字符串的一部分,表示浏览器使用了Mozilla浏览器的通用标识。在很多情况下,这只是一个历史遗留的标识,而实际上并不表示使用Mozilla浏览器。
-
(iPhone; CPU iPhone OS 9_3_2 like Mac OS X): 表示设备是一个iPhone,运行的是iOS 9.3.2操作系统,类似于Mac OS X。
-
AppleWebKit/601.1.46 (KHTML, like Gecko): 表示浏览器内核是基于WebKit的,版本号是601.1.46,同时支持KHTML和Gecko标准。
-
Mobile/13F69: 表示该设备是移动设备,后续的数字/字符可能表示设备的具体型号或其他信息。
-
MicroMessenger/6.6.1: 表示浏览器使用的是微信内置的浏览器,版本号为6.6.1。
-
NetType/2G: 表示网络类型为2G
相关知识点见:谈谈 UserAgent 字符串的规律和伪造方法 - 知乎
发包过去得到key
mozhe5fe1238926257467d9434663069
知识点:
- HTTP协议头部referer
Referer是HTTP请求header
的一部分,当浏览器(或者模拟浏览器行为)向web
服务器发送请求的时候,头信息里有包含Referer 。比如在www.xxxx.com
里有一个www.bai.com
链接,那么点击这个www.bai.com
,它的header
信息里就有:Referer=https://www.xxxx.com信息
- referer作用
- 防盗链
那么可以利用这个来防止盗链了,比如我只允许我自己的网站访问我自己的图片服务器,那我的域名是www.xxx.com
,那么图片服务器每次取到Referer来判断一下是不是我自己的域名www.xxxx.com
,如果是就继续访问,不是就拦截。
2.防止恶意请求
比如只允许某台服务器访问我自己的图片服务器资源,则可校验Http请求包中的Referer
。判断是不是特定服务器的域名,若不是,则拒接响应。
比如我的网站上,静态请求是*.html
结尾的,动态请求是*.shtml
,那么由此可以这么用,所有的*.shtml
请求,必须 Referer 为我自己的网站。
3. 空referer
空 Referer 的定义为, Referer 头部的内容为空,或者,一个 HTTP 请求中根本不包含 Referer 头部。
那么什么时候 HTTP 请求会不包含 Referer 字段呢?根据Referer的定义,它的作用是指示一个请求是从哪里链接过来,那么当一个请求并不是由链接触发产生的,那么自然也就不需要指定这个请求的链接来源。
比如,直接在浏览器的地址栏中输入一个资源的URL地址,那么这种请求是不会包含 Referer 字段的,因为这是一个“凭空产生”的 HTTP 请求,并不是从一个地方链接过去的
Referer
头部的内容为空的情况:
- 浏览器内直接输入URL
- Windows桌面的超链接图标
- 浏览器内书签
- 第三方软件内容中的链接跳入
4.在防盗链设置中,允许空Referer和不允许空Referer的区别
-
允许空Referer:
- 当你允许空Referer时,服务器将接受来自任何来源的请求,无论请求中是否包含Referer头信息。
- 这意味着如果请求中包含一个有效的Referer头信息,服务器将根据该信息来判断请求是否合法,但如果Referer头信息为空或不存在,服务器仍然会处理请求,不会拒绝它。
- 这可以用于一些情况,例如当你希望公开共享某些资源,但仍然希望检测和处理来自合法来源的请求。
-
不允许空Referer:
- 当你不允许空Referer时,服务器将要求每个请求都包含一个有效的Referer头信息。如果请求中的Referer头信息为空或不存在,服务器将拒绝该请求。
- 这是一种更严格的防盗链策略,用于确保只有从指定来源发送的请求才能被处理,而来自其他来源的请求会被拒绝。
- 这可以提供更高级别的安全性,但可能会导致一些合法请求被拒绝,例如某些浏览器或代理可能不发送Referer头信息。
- refer伪造
伪造为ip地址:
使用brup拦截请求包,在Proxy里面发送到Repeater,将Http头中的X-Forwarded-For
改为想改的ip
伪造为url地址:
通过brup拦截,再使用Reapter修改Referer
为想指定的URL
- 浏览器伪造
通过User-Agent字段,网站服务器会知道访问者是通过什么工具来请求的
User-Agent一般格式为:Mozilla/5.0 (操作系统) 引擎版本 浏览器版本号
User Agent用户代理,是Http协议中的一部分,属于头域的组成部分,简称UA。它是一个特殊字符串头,是一种向访问网站提供你所使用的浏览器类型及版本、操作系统及版本、浏览器内核等信息的标识
所以我们可以通过修改ua头进行浏览器的伪造
- ip伪造
HTTP 连接基于 TCP 连接,HTTP 协议中没有 IP 的概念,只能通过X-Forwarded-For来实现。
X-Forwarded-For
(XFF)请求标头是一个事实上的用于标识通过代理服务器连接到 web 服务器的客户端的原始 IP 地址的标头。
所以我们可以通过bp抓包修改并伪装X-Forwarded-For来实现任意ip
知识点选自:https://www.cnblogs.com/huhu1020387597/p/11479468.html
2.http请求头中Referer的作用与伪造_referer伪造-CSDN博客