题目地址:http://123.206.31.85:1616/
老师傅说过拿这类到题目要先正常流程走一遍,要先对它有大概的认识
所以既然是游戏我们就得先看看它怎么玩的
.......
别说还挺好玩,不过干回正事
首先整理流程:
结合题目:学会如来神掌应该就能打败他了吧
和开始页面的介绍:不知是谁传出来的,只要学了这如来神掌,就可以打败蒙老魔,还天下一个太平。故事就至此开始了..
可以发现游戏的目标就是学会如来神掌然后打败蒙蒙老魔
目标有了就可以下一步啦,
进入游戏第一步审查元素,是否源码泄露(无发现),和目录扫描
可以发现有头部的js 文件和内容确认初始化属性的php页面
你可能跟我一样看到php就各种尝试,一顿攻击后可以猜测这后面的值是确定游戏流程的,start开始,map确定,再试下可能存在的页面时发现给我们跳转到了这个123.206.31.85:1616/wulin.php
是不是和我一样脸上扬起了笑容,有输入框而且是判断flag的,不过还是开心太早,一顿操作后都没任何反应(可能是我太菜没能攻击成功),审查元素也没任何有用的信息
还是老老实实玩吧,确定属性后我们能做的就是练功和赚钱,
到这没线索了,那就回到一开始的js文件出发
script.js是eval(function)加密过的
网上找解密源码后可以得到(https://www.cnblogs.com/zs-note/p/3895500.html)
可以发现的确只要打了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拿
那么马上属性拉满,然后再倒过来走一遍这些流程加密就完事啦
ok倒过来看上面解密的步骤就是:
encode_create(temp):
new Base64();创建一个Base64对象,也就是一开始得到js文件的base64.js
把得到的数-((i % 10) + 2),
再挨个得到ASCII后按位异或i,
转回字符
encode传进来的temp
接下来是encodeURIComponent(temp)
就ok啦
编写代码:
先把base64.js的代码copy过来
出题人还是挺善良的给了encode,但他竟然在这挖坑,害我在这看好久,差点就自己重写了,好险没这本事...
对比可以发现encode一开始是做了_utf8_encode的,而decode这一段是注释掉的(太过分了)所以把这句删掉接着
最后
完成
完整代码
全部99999后会发现
那不行,因为不知道属性上限是多少,那就改钱把,因为商店的书籍金额都比较大所有应该不会有太大问题
金额全部99999,你可能发现了这样每做一次操作就得改一次包岂不是很麻烦
别忘了还有个练功和赚钱,都是通过传进来的值在这基础上增加的,练功放弃了,那就走赚钱吧
好了到这基本完成了,买完商店的书籍学了如来神掌后去打boss,打赢后会弹窗出flag,不过提示我们不知道真假
这时别忘了一开始还有个彩蛋页面来验证flag的,输入后会发现有限制,直接右键检查去掉输入框的长度限制
回车
-----------------------------------------------------------------我是分割线--------------------------------------------------------------
看完了觉得不错就点个赞或者评论下吧,感谢!!!
如果本文哪里有误随时可以提出了,收到会尽快更正的