IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 网络协议 -> CTF_BUGKU_WEB_game1 -> 正文阅读

[网络协议]CTF_BUGKU_WEB_game1

记录本人学习CTF的过程中,在BUGKU平台上的一道WEB题

1、题目:《game1》

2、答案(flag):flag{2d591388f46f67cadd1e9e2cb5b439dc}

3、分析:

首先启动bugku提供的环境
在这里插入图片描述
是一道小游戏题目,先打开F12,玩一次。
在这里插入图片描述
果然不出我所料,是不可能自己玩通关滴,可以查看控制台Network上提交成绩请求的数据流被服务器返回“失败了”。
PS:在此会想到之前做过的一道c/s客户端小游戏的题目,解题方法是在玩游戏后生成的存档文件中更改关卡数,再读取进度就能直接到最后一关。
由于是WEB线上游戏,不存在存档文件。
于是想到用BurpSuite抓包,查看到在游戏死亡时会提交一个get请求。
在这里插入图片描述
GET请求的参数是写在明文上的,根据以往的经验,把score改成999999(尝试尽量大)。
PS:客户终端机先将GET/POST请求发送至浏览器上配置的代理服务器上,再由代理服务器将请求上大网至服务器,反之相同。而BurpSuite在代理服务器这里可将交互请求逐条拦截,即可修改请求内容,如上图所示即为“游戏结束时发送给服务器的请求内容。”
发送后发现还是失败了。
在这里插入图片描述
然后就蒙了,这还能怎么办。
于是参考其他同僚的文章,也就是该题关键点:GET传参除了score分数以外,还有一个参数sign!
看到“sign=zMMjU===”知道是Base64编码过,放到CyberChef中解码出来并不是一个整型分数。
这时要考虑是不是经过1.多重加密或者2.在加密后字符串左右两边由加上了固定字符
于是我先尝试另玩一次得到一个不同的分数再查看sign,发现是不管分数多少,密文格式都是zM***==,所以 密文= “zM + Base64(score) + ==”,故到CyberChef中得到Base64(score=999999)即可。


这里已经知道sign怎么写了,但是我在想如果遇到其他加密方式或者多重加密怎么办,于是有了另一种比较踏实的方法:去浏览器控制台中查看这个sign是怎样将score加密的(因为是在GET请求里就已经生成密文了,所以加密方式一定是写在了前端js里)
在这里插入图片描述
PS:想要查看WEB前端源码,F12打开控制台,点Element此处为当前页面源码。基本上都是看js(<script>),所以可以大致翻看下,或者直接搜索关键词”
看到 var sign = Base64.encode(score.toString()); 然后就直接使用了。

我们可以在Console中编写执行javaScript脚本(1.自行编写并执行当前页面js语句。2.甚至更改当前页面js函数内容)!这里我们可手动更改score能得到Base64.encode(score.toString())的输出值。
在这里插入图片描述
至此,我们将的到得“原汁原味纯正经过js处理过的sign”密文放在BurpSuite抓的请求包中Forward
在这里插入图片描述
在控制台Network中最下方的服务器回应中能看到其为我们返回了flag。
在这里插入图片描述
或者在BurpSuite中将GET请求发送至Repeater(因为这里可以直接看到Request的Response,亦可重复发送请求),Go后得到flag。
在这里插入图片描述
至此结束。


总结
1.遇到小游戏题目,一般是要通关。若是c/s考虑修改存档文件直接通关,b/s用BurpSuite抓包修改提交到服务器的分数。
2.广泛思考是否有需要修改的其他校验参数(score+sign,而不止score)!对于该题而言,除了关键参数score,也要多去寻找查看有没有类似于sign这样的校验参。
3.浏览器自带控制台可以自行编写js,并在当前页面下执行。(1.获取函数值。2.修改函数内容)
4.想要查看响应内容。1.可在浏览器Network可以查看请求与响应。2.可以在BurpSuite中用Repeater方便地查看响应。

因记录的是本人做题思路,故步骤较复杂,如有问题或建议,还请指正!

  网络协议 最新文章
使用Easyswoole 搭建简单的Websoket服务
常见的数据通信方式有哪些?
Openssl 1024bit RSA算法---公私钥获取和处
HTTPS协议的密钥交换流程
《小白WEB安全入门》03. 漏洞篇
HttpRunner4.x 安装与使用
2021-07-04
手写RPC学习笔记
K8S高可用版本部署
mySQL计算IP地址范围
上一篇文章           查看所有文章
加:2022-06-21 21:33:08  更:2022-06-21 21:33:18 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 -2024/12/28 21:10:09-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码
数据统计