绝地求生可以说是本年度最火的游戏了。首付99,月付30,也可以说是土豪游戏了。我等屌丝吃了一个月的泡面,好不容易才凑够99上了吃鸡的车。可谓上车容易,“吃鸡”难。作为盒子精和快递员的我,每次都敬职敬业,把自己辛辛苦苦攒其的满配M4送给各种大佬,心中的苦闷,也就只有自己晓得了。
有热度的地方,就有黑产。虽然游戏官方一次次严打,但也不乏外挂横生。为了吃鸡的我,决定只身探险,为大家揭秘这条黑色产业链(找个牛逼的外挂去“吃鸡”)。
网上搜索了一下吃鸡辅助,找到个外挂的发卡平台。
很多朋友第一次听到“发卡平台”这个概念,这里简单说下。发卡平台就是第三方销售平台,就像某宝一样。外挂制作者或者外挂的代理商,在发卡平台注册商户,上架商品(外挂充值卡密),每卖出一单,发卡平台会从中抽成。所以,只要我们搞定了发卡平台,就可以自己充值,愉快吃鸡了。
外部看了看,没找到什么利用的点。所以,我们就得整一套源码来审计。这时就得上我们的神器了。先提取发卡平台的关键字,然后搜索引擎爬取网站。
再对采集到的网站扫一遍备份文件(主要还是我牛逼的字典),得到一份源码。本地搭建,审计开始。
文件结构如下:
下图是参数处理的方式。
所有形式进来的参数都要经过makeSafe的“洗礼”,基本就是加了“\”。防护还是挺弱的。我们想几个方法绕过下。
1. 取参数使用错误
取参数使用错误这个问题,以_P和$_POST举例来说。
_P就是$_POST经过makeSafe“洗礼”后的结果。可是有时候犹豫程序员粗心后者习惯的问题,他取参时没有用_P,而是用了$_POST,那不也没有经历“洗礼”么。
文件admin/adminInfo.php就刚好存在这样的问题。
这里由于没有回显,时间盲注喽
这样的注入利用起来一点都不好用,故继续寻找。
2. 没有引号来保护的点
虽然可以宽字节绕过注入,但是还是希望中找到通杀位置(主要还是我懒)。
文件/lin/ajax.php中这个查询$userid,$goodid和$channelid都没有引号的保护。
但是,在看参数的获取,$userid,$googid都进行了int强制类型转换。可偏偏$channelid没有进行转换。
构成了注入
还是好多处可以注入的地方,但是有这一次就够了呀。
接下来,我们再去找点别的乐子。
打开admin后台目录看看,发现其主要的认证依靠于common.php进行。
别的文件包含它来进行认证,这时,发现有个奇怪的文件adminInfo.php。这个文件居然没有包含该文件,那岂不是未授权访问?直接访问发现是空白显示,赶紧打开源码看看其功能。
我们看到action接受后有两个方法。
我们试着访问看看第一个方法。
瞬间惊呆,这莫不是开发者留下来的后门。。。那这可比注入好用多了。
但md5密文有时候破解不出来,我等穷屌丝也用不起付费破解。
我们再来看看第二个方法吧。
这个方法简直无敌了,我们可以以任意管理员登录后台。
我们先访问
然后访问/admin,就直接进入后台了。
这样就简单多了。。
来看看我们的发卡平台
可怕的流水账单
算了,我只是来找我的辅助卡密的
提取卡密,充值帐号,“吃鸡”去了。
大吉大利,天天吃鸡。
文中提及技术细节,仅作交流,请勿用于非法活动。