360抢票王验证码自动识别真的那么牛吗?

时间:2024-02-24 21:06:42

前几朋友叫帮忙买火车票,现在的火车票大家也知道,不是一般的难买,热门路线想直接通过12306官网买到票,估计跟买到彩票的概率差不多,

所以直接用抢票软件,刚好听说360抢票是如何如何牛逼,所以也试一下,还别说,还真买到了,呵呵,人品爆发!

回想买票过程,选择 乘客,席别,车次后  后面的事交给软件就好了,有票的话,还自动识别验证码,最后能自动识别验证码这点让我这菜鸟很是敬佩

哇塞,这么牛掰,第一次识别验证码失败后紧接着第二次识别,第三次,终于识别对了,然后自动提交订单神马的。。。

有点我比较反感,为毛一定要360专用浏览器,看那不也是用谷歌浏览器的内核吗?装逼。。。。

好吧,废话不多说了,开始正题吧

打开360所谓抢票专用浏览器,并打开地址   http://pc.huochepiao.360.cn/  NND,又提示说需要安装插件,

 

 

好吧,添加插件,等会奇迹的一刻发生了,,,NM

  

这界面不是很熟悉吗?这除了那个 icon 换了,界面不是跟谷歌浏览器添加插件时一样一样的吗?。。。

同时右下角小管家也弹出了一个提示,, 

.crx 这下我敢100%肯定了,360这货用的就是用跟谷歌浏览器一个内核,我处于本能,马上定位到这个.crx文件,迅速把这个插件复制备份,

用来分析,看验证码自动识别到底用了些啥,直接将扩展名改成.zip然后解压(后来在谷歌浏览器中尝试安装,你猜怎么着?没错,安装成功了!

这充分说明所谓的专用浏览器都是幌子,骗装机量来的!),挨个JS查找,找啊找,JS被混淆了,很难看,所以挨个美化了先,终于在一个叫 ticket_content.otn.min.js里找到了这么些

顺藤摸瓜,在 ticket_bg.min.js 找到了这个

,

纳尼,直觉告诉我,这跟验证码自动识别有很大关系,,http://check.huochepiao.360.cn/img_yzm? 后台访问了这个地址get 了两个参数,a ,b 那这两个参数怎么来的呢?

不用怕,用 Fiddler Web Debugger  来帮忙抓请求,(为了有请求,所以又模拟抢票了,让它开始执行验证码自动识别),

功夫不负有心人,在验证码识别了四次后终于成功了10,有了数据,那就慢慢分析吧,

第一个参数:img_buf  为图片的base64编码,后面的check看上去像是一个MD5,访问 http://check.huochepiao.360.cn/img_yzm?{%22img_buf%22:%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%22,%22check%22:%22f70c34e99896fe63e6cab36eb02800e9%22} 返回一个{“res”:”TN4Q”} 的JSON数据(后来通过将base64转换成图片,

发现这次识别只差一个),经过4次识别终于识别完成,

突然想,要是能把这个用到自己的项目来做自动识别,那是多么吊炸天的事呀!于是乎自己找了张验证码转换成base64代入上面的URL,

结果很失望,返回了{“res”:”0000″} 没成功响应,心想,是不是处在了check参数上?试着把这张图的base64的MD5算出来换到后面,谁知还是不成功,

那么这个参数是怎么算出来的呢?,再回想上面看JS的时候不是有个getMySig函数,于是乎找到了这个,

没错,最后还调用了PIAO.plugin.GetSig  这个方法,这个签名算法到底里面做了些什么?我找了很久还是没有找到,

估计是被封装到了插件中plugin这个目录下的 helper.dll 文件中了。

 

 

 

 

PS:通过

点击ticket_bg.html 这个页面在控制台调用PIAO.plugin.GetSig();方法能获取一个签名,这种获取方法太过于笨拙,最终通过这个签名成功的让360帮我识别了那个验证码,嘿嘿,差的远,识别的是 5CEC

 

这个离我想象中的状况差远了,我本想看能不能直接用他们的类库什么的或者一个未公开的URL来帮我做识别,最后看来是我多想了,360早已经把后门给堵死了,不愧是流氓软件出身呀!

 

哎,自己都觉得说的语无伦次的,如果看官都看到这了,估计你也很无聊,上面是我今天下午三点开始到六点无聊的成果,不喜欢勿喷!谢谢。。。

 

 

 

 

 

最后还发现一个奇怪的请求,谁能告诉我这个是神马?

找到一个以blob:http://开头的请求  ,

问度娘,度娘说不知道,问谷哥,谷哥告诉我一大堆英语,没兴趣看(有谁知道能告诉我吗?谢谢。),好吧,这个望尘莫及