3rwgk-6aaaa-aaaad-qey6a-cai.icp0.io
Open in
urlscan Pro
2a00:fb01:400:200:5000:61ff:fe45:43ab
Public Scan
URL:
https://3rwgk-6aaaa-aaaad-qey6a-cai.icp0.io/ssctf-network-security-competition-hungry-game.html
Submission: On January 16 via api from US — Scanned from CH
Submission: On January 16 via api from US — Scanned from CH
Form analysis
1 forms found in the DOMName: searchform —
<form name="searchform" class="form u-search-form">
<i class="icon fas fa-search fa-fw"></i>
<input type="text" class="input u-search-input" placeholder="Search...">
</form>
Text Content
SSCTF网络安全比赛——HungryGame * * * 首页 * 分类 * 学习园地 * 编程开发 * 算法之美 * 逆向工程 * CTF比赛 * 娱乐天地 * 奇思妙想 * 挑战智慧 * 魔术学堂 * 其它分类 * 博客折腾 * 故事小说 * 过期代码 * 友链 * 留言 * 关于 * * * 首页 * 分类 * 学习园地 * 编程开发 * 算法之美 * 逆向工程 * CTF比赛 * 娱乐天地 * 奇思妙想 * 挑战智慧 * 魔术学堂 * 其它分类 * 博客折腾 * 故事小说 * 过期代码 * 友链 * 留言 * 关于 Volantis SSCTF网络安全比赛——HUNGRYGAME 才怪 学习园地CTF比赛 发布于:2016年2月29日 次浏览 第一关 这道题的题目是《饥饿游戏》,一进游戏果然是好莱坞大片的即视感: 可以看到场面非常宏伟壮观,而我们的英雄人物就是乔布斯。 看一下游戏提示: > Connected > Login OK > Use [↑↓←→] ot move around, [space] is the function key. 也就是说:方向键可以移动英雄,空格键是用来触发功能的。 把英雄移动到门的旁边,按空格键可以过关。 第二关 地图里有两扇门: 关卡提示: > There is a locked door in front of you, but you don’t have the key. 走到左边的门旁边按空格键,看到提示: > Find key to open this door! 看来需要钥匙才能打开左边的门,但是地图里没看到有钥匙。 在网页源码里搜索关键字Find key,可以在game.js文件里发现以下代码: 1 2 3 4 5 6 7 8 COPY function onnextdoor() { data = JSON.stringify([msg('next', {})]); ws.send(data); } function onfackdoor() { logtext('Find key to open this door!'); } 搜一下onfackdoor()函数,发现按空格就直接调用了,所以是找不到钥匙来开启的。 而onnextdoor()函数的作用是向服务器发送数据进入下一关,所以在浏览器的控制台里执行onnextdoor()即可过关。 还有一种方法是修改英雄的坐标,这样英雄就可以穿墙了,然后走到右边的门按空格键。 第三关 地图里有两颗树: 游戏提示: > Hold [space] to cut the tree. When you get 9999 wood, a wooden pickaxe will be > automatically generated. 在树的旁边按住空格键可以砍树,获得9999块木材会自动获取一根木制镐。 走到树边砍树: > Cutting Tree… > You get 3 woods,total 3 > You get 5 woods,total 8 > …… 按住一秒会得到一个木材,手动砍树的话肯定是行不通的,看一下js文件,发现如下代码: 1 2 3 4 5 6 7 8 9 10 11 COPY if (level == 2 && users[heroname].x < 800) { var tmp = Date.parse(new Date()) - woodstart if (tmp > 1000 && woodstart != -1) { woodstart = -1; data = JSON.stringify([msg('wood', { 'time': tmp })]); ws.send(data); } } tmp变量是两次按键之间的毫秒数,所以可以轻易伪造砍了10000颗树,在浏览器控制台输入: 1 2 3 4 COPY data = JSON.stringify([msg('wood', { 'time': 10000000 })]); ws.send(data); 执行后游戏提示: > You get 10000 woods,total 10008 > Get the wooden pickaxe!!! 走到门边通往下一关。 第四关 地图里有两堆钻石: 游戏提示: > Mine by hitting [space], When you get 9999 diamonds,the diamond sword will be > automatically generated. 猛击空格键,得到9999颗钻石会获得一把钻石剑。 在游戏源码里可以发现以下代码: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 COPY if (level == 3 && users[heroname].x < 800) { if (second != Date.parse(new Date()) && diamondpos) { if (diamondtimes > 0) { data = JSON.stringify([msg('diamond', { 'count': diamondtimes })]); ws.send(data); } diamondtimes = 0; diamondpos = false; second = Date.parse(new Date()); } else { diamondtimes += 1; } } 按照第三关的方法在浏览器控制台执行: 1 2 3 4 COPY data = JSON.stringify([msg('diamond', { 'count': 10000 })]); ws.send(data); 游戏提示: > Mining too fast, manager kicked you out. > Connection lost 挖掘太快,被服务器踢出去了。 应该是数量太多了,经过试验,每次挖掘的最大数量是50,所以用循环执行200次就行了: 1 2 3 4 5 6 COPY for (var i = 0; i <= 200; i++) { data = JSON.stringify([msg('diamond', { 'count': 50 })]); ws.send(data); } 执行结果: > Get 50 diamond,total 50 > Get 50 diamond,total 100 > Get 50 diamond,total 150 > …… > Get 50 diamond,total 9950 > Get 50 diamond,total 10000 > Get the diamond sword!!! 通过门可以通向下一关。 第五关 终于要打BOSS了: 游戏提示: > At last, the final level! Wave your diamond sword and beat the BOSS. > PS: Short-range weapons can only hurt other players(your hp +1) but cannot > harm the BOSS. > PS: Cause 15 point damages to the BOSS to get the flag > PS: Or kill 5 players to get the flag 近距离攻击的武器只能攻击到别的玩家,打不到远处的BOSS。攻击到别的玩家时,别的玩家的hp会减1,自己的hp会加1。 有两种过关方法,一是让BOSS掉15滴血,二是杀死5个玩家。 BOSS是有瞬移技能的,满地图顺机传送,而且隔两三秒就攻击玩家一次: > Attacked by boss > Attacked by boss > Attacked by TFBoys > Attacked by boss 英雄不但会受到BOSS攻击,还会受到其它玩家的攻击,而英雄只有10滴血,往往坚持30多秒就挂了。 地图里有个神秘的箱子和一把远程攻击的弓箭,其实这些都是骗人的,捡物品的时候会调用以下代码: 1 2 3 COPY function onselfkill(argument) { logtext("There's nothing here.Too yong too simple.( ‵▽′)ψ "); } 看一下按功能键时的代码: 1 2 3 4 5 6 7 8 9 10 11 COPY if (level == 4) { if (second != Date.parse(new Date())) { data = JSON.stringify([msg('attack', { 'x': users[heroname].x, 'y': users[heroname].y })]); ws.send(data); attacking = true; second = Date.parse(new Date()); } } 代码向服务器发送了一个攻击事件和英雄的当前坐标,服务器应该是判断这个坐标周围有没有攻击对象的。如果把这个坐标改成BOSS的坐标的话,那么就可以攻击到BOSS了。 查看js代码,发现有一个boss变量,所以可以在控制台执行以下代码: 1 2 3 4 5 6 7 8 COPY function attact() { data = JSON.stringify([msg('attack', { 'x': boss.x, 'y': boss.y })]); ws.send(data); } setInterval('attact()', 1000); 执行后可以得到过关的key: > Attack:boss,total 1 > Attack:boss,total 2 > Attacked by boss > Attack:boss,total 3 > Attack:boss,total 4 > Attack:boss,total 5 > Attacked by boss > Attack:boss,total 6 > Attack:boss,total 7 > Attacked by boss > Attack:boss,total 8 > Attack:boss,total 9 > Attack:boss,total 10 > Attacked by boss > Attack:boss,total 11 > Attack:boss,total 12 > Attack:boss,total 13 > Attacked by boss > Attack:boss,total 14 > Attack:boss,total 15 > SSCTF{2b3d41dd4b7911dc0fe683d1a0d977ef} > 博客内容遵循 署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0) 协议 > > 本文永久链接是:https://www.poboke.com/ssctf-network-security-competition-hungry-game.html 更新于:2021年8月15日 CTF JavaScript 微信自动摇一摇刷一分钱 除夕打开微信摇一摇抢红包,红包雨还没开始时,会显示如下界面: 底部圆形的logo在不停地跳动,点击一下,居然领到了一分钱: 如果不断摇一摇再点击logo,就可以领到很多一分钱。不过手动操作太麻烦... 破解Mac版WiFi万能钥匙密码 春节回家,家里没有网络,手机流量又不够用,所以只能去蹭邻居的网。 我的电脑里以前装过WiFi万能钥匙,打开一看,发现有可以连接的热点: 先用手机开启一个热点给电脑使用,再打开Charles拦截电... 评论 昵称 邮箱 网址(可选) 预览: 0 字 提交 评论 刷新 Powered by Waline v1.6.0 才怪 网络中的魔术师 文章分类 * 学习园地 (36) * 编程开发 (8) * 算法之美 (9) * 逆向工程 (9) * CTF比赛 (10) * 娱乐天地 (22) * 奇思妙想 (4) * 挑战智慧 (9) * 魔术学堂 (9) * 其它分类 (10) * 博客折腾 (4) * 故事小说 (2) * 过期代码 (4) 本文目录 1. 第一关 2. 第二关 3. 第三关 4. 第四关 5. 第五关 PoweredHexo ThemedVolantis AnalysedClarity Copyright © 2012-2021 破博客