一、背景
今年年初暴雪游戏正式关闭国服,作为wow老玩家还想继续漫步艾泽拉斯,于是搞了一个x服,并且放到了云服务器上,和朋友一起游玩,本文章诞生的主要原因——朋友的密码忘记了!!!
于是我想尽办法想要解决密码问题,具体步骤如下:
二、知己知彼-观察数据库
我这边使用了navicat来连接数据库
之后进入到realmd库中的account(存储账号信息的表格)
观察表中我们可以得知,用户名肯定是明文存储了,密码经过了sha的加密,还有一个sessionkey、v、s(之前登陆失败,一度以为这些也是某些认证加密)也是一串不知道啥子的东西。
三、另辟蹊径-注册页突破
就在我无从下手的时候,突然想到,我之前从别的地方套了一个注册页来方便我的朋友们注册账号
那我可以查看修改密码的php源码,从而分析出加密规则
可惜打开cpwd.php文件却发现是乱码,之后我从网上搜索php乱码如何解决,却没有一个方法生效
四、黑刀显威
观察乱码文件我发现,zend并不像是乱码,于是通过网上搜索,居然是一种php文件加密(见识短浅)
Dezender就是大名鼎鼎的黑刀 (吐槽:这个软件好远古2010年)
解密过程就不放了
之后通过破译以后我们看到了文件源码
找到了最关键的一行代码
我们可以看到通过sha1加密算法按照格式:用户名:密码的形式 把对应账号id的密码强制覆盖
五、柳暗花明-成功拿下
那我们以GM3为例
打开百度输入sha1在线加密
之后把这个加密后的密文直接扔进数据库里覆盖尝试登陆却失败了?????不应该啊
到了这里我就考虑是不是后面密文还有相关的认证没法绕过
我注册了一个新的账号发现,新的账号后面居然是空值,在登陆一次后自动赋值,而且从sessionkey来看的话,多半是服务器这边的一个记录 于是将GM3账号的后面删除以后
成功登陆
六、命令验证
其实一开始并不是直接用这个方法修改的密码,而是魔改了修改密码网页,写了一个修改页然后访问执行SQL命令,来达到更换密码的目的
在这里直接通过命令实现密码的更改
至此本文结束,看一下大家有没有对x服感兴趣的,如果人多我会出,如何实现aibot机器人,局域网篇(本地联机),上云服务器篇(异地联机)
本文目的只为提供学习思路,禁止违法行为和用途!