闲来无事,写这篇文章主要是希望淘宝方面能加强抢购软件的对抗。
据我了解秒杀类的商品基本都500ms内就被抢购空了,像那些正常的用户哪有机会。完全是黄牛党的福利。有没有~
首先
我们来说一下抢购的几种花里胡哨的操作:
1、一种是通过模拟网页操作,这种方式能够通过一个循环的线程去获取时间,然后趋于0s内点击网页的下单,完成比人更快的操作,但是呢这种方式网页需要加载图片,执行JavaScript脚本,占用大量时间。
2、一种是通过网页交互的API接口进行操作,模拟网页操作最终也是通过构造数据包发送到网页API进行下单请求,而我们只要提取网页API接口直接进行数据交互,省去加载资源的时间,就能达到最快的抢购速度。
大白话来说呢,
第一种就是比如制作一杯奶茶的过程,其中我制作了一个机械手,去模仿人的动作最后制作出奶茶。。
第二种就是制作一个机器,直接根据配料混合直接加水制作出奶茶,速度上的差距就不用我多说了吧。。
下面我们来大概讲解第二种方式中的接口分析
网页API数据加密都在本地Script中,所以不存在不能分析的接口,有些混淆加密的比较厉害需要掌握比较多的分析方法,调试方法,对数据进行对比,然后自己构造数据包去尝试,根据返回的错误进行处理,最重要的两点是:耐心!耐心!耐心!细心!细心!细心!重要的事情说三遍!!
打开你的Chrome浏览器,点击你的F12按钮,没错就是它,是我们分析调试的利器。
分析一个接口需要先把一个流程完整跑通,意思就是打开网页,然后抓取一个完整的数据请求过程,然后重点关注XHR、JS和Doc三个类型,然后关注三个数据包是否有你需要的信息,如果有的话简单一点了,如果没有那就是加密会更加复杂。。
这里我们只是获取不重要的数据(所谓的不重要只是相对而言),所以加密的可能性较低,通过丰富的分析经验(其实是一个一个看的)并没有看到明显信息的数据,我这里通过搜索订单的价格尝试
定位到网页有一个json格式的数据,但是通过gbk编码,Chrome并没有有效解码,
这里我们用网页json格式化工具格式化一下(“http://www.bejson.com/”新版页面)
可以发现相关信息已经包括在json格式化的数据中,这个时候我们只需要通过正则或其他方式将数据提取就可以了。
确定API后,我们需要分析这个API需要哪些参数才能正确返回,请求方式(“GET”或“POST”)
通过多次对比这个请求,变动账号等方式,发现该接口参数不变动,所以只需要更换cookie直接请求就可以获取订单数据了。
接口比较简单,只是大概描述一下抢购的一些原理和大概的分析流程,其实还有获取订单数据更加简便的接口需要大家思考一下~
用户登录等接口分析需要较好的调试功底分析UA,密码加密代码等,这些以后有时间再写吧。
欢迎和我一起交流,不限分析类型,病毒木马分析、网页分析等~