Bugku-CTF:学会如来神掌应该就能打败他了吧

题目地址:http://123.206.31.85:1616/

老师傅说过拿这类到题目要先正常流程走一遍,要先对它有大概的认识

所以既然是游戏我们就得先看看它怎么玩的

.......

别说还挺好玩,不过干回正事

首先整理流程:

结合题目:学会如来神掌应该就能打败他了吧

和开始页面的介绍:不知是谁传出来的,只要学了这如来神掌,就可以打败蒙老魔,还天下一个太平。故事就至此开始了..

可以发现游戏的目标就是学会如来神掌然后打败蒙蒙老魔

目标有了就可以下一步啦,

进入游戏第一步审查元素,是否源码泄露(无发现),和目录扫描

Bugku-CTF:学会如来神掌应该就能打败他了吧_第1张图片

可以发现有头部的js 文件和内容确认初始化属性的php页面

你可能跟我一样看到php就各种尝试,一顿攻击后可以猜测这后面的值是确定游戏流程的,start开始,map确定,再试下可能存在的页面时发现给我们跳转到了这个123.206.31.85:1616/wulin.php

Bugku-CTF:学会如来神掌应该就能打败他了吧_第2张图片

是不是和我一样脸上扬起了笑容,有输入框而且是判断flag的,不过还是开心太早,一顿操作后都没任何反应(可能是我太菜没能攻击成功),审查元素也没任何有用的信息

还是老老实实玩吧,确定属性后我们能做的就是练功和赚钱,

到这没线索了,那就回到一开始的js文件出发

script.js是eval(function)加密过的

网上找解密源码后可以得到(https://www.cnblogs.com/zs-note/p/3895500.html)

Bugku-CTF:学会如来神掌应该就能打败他了吧_第3张图片

Bugku-CTF:学会如来神掌应该就能打败他了吧_第4张图片

可以发现的确只要打了boss就会出flag,那就往上依次找到key→ca→mingwen→temp→temp_name→"user"

从getCookie(temp_name)入手:

可以发现这个就是返回cookie的,通过burp抓包后发现,这人物的状态就是靠cookie保存的,那么我们只要能解密这cookie不就可以伪造cookie了,新目标get!

接下来是decodeURIComponent(temp),这js内置函数对URI解码

解码后传到decode_create(temp),审计代码:

new Base64();创建一个Base64对象,也就是一开始得到js文件的base64.js

decode传进来的temp

再挨个得到ASCII后按位异或i,

接着把得到的数-((i % 10) + 2),

最后在转回字符。

ok我们把代码拉下来把cookie传进去看看能得到什么

O:5:"human":10:{s:8:"xueliang";i:988;s:5:"neili";i:882;s:5:"lidao";i:70;s:6:"dingli";i:72;s:7:"waigong";i:0;s:7:"neigong";i:0;s:7:"jingyan";i:0;s:6:"yelian";i:0;s:5:"money";i:0;s:4:"flag";s:1:"0";}

得到一串序列化字符串,看到这些拼音,脸上露出了微妙的微笑

虽然看到flag但是是空的所以MD5(key)必然没值,还是得打boss拿

那么马上属性拉满,然后再倒过来走一遍这些流程加密就完事啦

Bugku-CTF:学会如来神掌应该就能打败他了吧_第5张图片

ok倒过来看上面解密的步骤就是:

encode_create(temp):

new Base64();创建一个Base64对象,也就是一开始得到js文件的base64.js

把得到的数-((i % 10) + 2),

再挨个得到ASCII后按位异或i,

转回字符

encode传进来的temp

接下来是encodeURIComponent(temp)

就ok啦

编写代码:

Bugku-CTF:学会如来神掌应该就能打败他了吧_第6张图片

先把base64.js的代码copy过来

出题人还是挺善良的给了encode,但他竟然在这挖坑,害我在这看好久,差点就自己重写了,好险没这本事...

Bugku-CTF:学会如来神掌应该就能打败他了吧_第7张图片

Bugku-CTF:学会如来神掌应该就能打败他了吧_第8张图片

对比可以发现encode一开始是做了_utf8_encode的,而decode这一段是注释掉的(太过分了)所以把这句删掉接着

Bugku-CTF:学会如来神掌应该就能打败他了吧_第9张图片

最后

完成

完整代码

 

全部99999后会发现

Bugku-CTF:学会如来神掌应该就能打败他了吧_第10张图片

Bugku-CTF:学会如来神掌应该就能打败他了吧_第11张图片

那不行,因为不知道属性上限是多少,那就改钱把,因为商店的书籍金额都比较大所有应该不会有太大问题

金额全部99999,你可能发现了这样每做一次操作就得改一次包岂不是很麻烦

别忘了还有个练功和赚钱,都是通过传进来的值在这基础上增加的,练功放弃了,那就走赚钱吧

好了到这基本完成了,买完商店的书籍学了如来神掌后去打boss,打赢后会弹窗出flag,不过提示我们不知道真假

Bugku-CTF:学会如来神掌应该就能打败他了吧_第12张图片

这时别忘了一开始还有个彩蛋页面来验证flag的,输入后会发现有限制,直接右键检查去掉输入框的长度限制

回车

Bugku-CTF:学会如来神掌应该就能打败他了吧_第13张图片

-----------------------------------------------------------------我是分割线--------------------------------------------------------------

 

看完了觉得不错就点个赞或者评论下吧,感谢!!!

如果本文哪里有误随时可以提出了,收到会尽快更正的

你可能感兴趣的:(CTF)