一次寻找接口的惨痛经历

起因

事情得从一款叫明日之后的游戏说起,遇到某个口嗨的想要我的信息,顺手反查到他的手机号码。

可是只有手机号码也没啥用,毕竟又不能喊他约架。然后突然想到土司一个发带后门短信轰炸源码导致被封号的老哥。

翻了翻帖子,下载到本地搭建了起来,可惜接口不够猛烈啊,于是网上寻找一些收费的轰炸站点,开始黑吃黑。

故事开始

很快就找到了目标站,这里就不上图了,幸运的发现有死抓死吐的洞,就这样,三分钟弹了个shell到自己服务器上。

开始疯狂在对方服务器上找数据库,起初以为接口保存在裤子里,但是翻了半天,并没有找到。

不管三七二十一,把源码和裤子打包到本地慢慢找。

误导

在phone目录的main.jsp中发现这样一长串的js代码,肯定是做了处理。

一次寻找接口的惨痛经历

不过这种加密方式以前好像看别人说过怎么解,复制到一个新的html文件,使用alert。

一次寻找接口的惨痛经历

就这样得到了加密前的源码,可以看出是ajax发包的,于是自己当时十分确定接口就在这些js中。

一次寻找接口的惨痛经历

切换回client目录的main.jsp文件,确实发现了加密的代码,不过使用的是sojson.v5加密,变量名都被替换了,应该是不能完全解密,在网上也看了一些文章,并没有发现什么详细的解密过程。

一次寻找接口的惨痛经历

就这样,没有头绪了,眼看接口在眼前却解不开。

误导

继续翻了翻其他目录,发现old目录下存在main.jsp,对比了下确定是同一个文件,但是这个并没有加密,激动得蹦了起来。

一次寻找接口的惨痛经历

But,从上翻到下,并未发现接口的任何信息,只有一个url,而且提供了帐号密码,从提供的这些信息来看,感觉是调用了远程的接口。

一次寻找接口的惨痛经历

然后我就用提供的这些参数一顿操作,发现无论如何,都是跳转到BC的站,莫非是引流的。

开始郁闷了,掏出自己03的虚拟机,把源码在本地搭建了起来,是可以正常运行的,而且火力还挺猛。

利用fd抓包,可以抓到接口的信息,心里暗自高兴,写了个脚本把抓到的信息处理了一下,加到自己的裤子中,结果就收到三四条短信。。。

继续懵逼

很无奈,决定从头仔细看一遍代码,对调用的函数都跟踪了一下,找到了关键的代码位置。

一次寻找接口的惨痛经历

抓包发现请求包和响应包都是加密的,在虚拟机自己改代码进行调试,将modelUrls和params输出,然后成功显示出来了。

一次寻找接口的惨痛经历

继续写脚本处理数据,本以为事情到此结束,可是收到的又是不到10条短信。。。

悔恨

此时真的不知道接口位置了,只能继续往前推,找到请求的url,“callPhone!callNumberPhone.action”,但是自己对这玩意也不懂呀,不知道代码位置在哪,于是一个目录一个目录的翻,吃了ide的亏,一开始翻的时候ide中并没有显示这些class文件。不然也不会走这么多弯路了。

一次寻找接口的惨痛经历

结尾

找到了class文件,就进行了反编译,就这样,所有的接口都到手了。

一次寻找接口的惨痛经历

处理后在本地测试,是自己想要的结果。抽了自己两掌,事情结束。

-------------本文结束感谢您的阅读-------------