今天闲来无事,玩LOL抽奖,竟然抽中1,2,3,4,5折,喜不自胜,赶紧充值~
当我买了一个韦鲁斯之后,买第二个的时候提示我
这意味着我只能一个折扣用一次,看着后面的三个想买的我陷入了沉思。
我试着按F12打开谷歌浏览器Chrome开发者工具,整理下思路:
- 如果程序是简单的封包,js验证,请求,响应,那么我应该可以通过封包解除只买一个的限制。
- 如果程序在后台完成,我无法完成封包,解包,那么我只能看到腾讯的程序员是如何实现这一功能的。
- 我既看不到业务逻辑的实现,也无法封包作弊,但是可以学到安全知识。
第一步,我用元素选择器,首先观察到,当单机按钮就会提交到一个JS文件,这个JS文件是pgvSendClick(),百度之后没有找到想要的答案,具体答案就是腾讯自定义的一个方法。
<a class="btn-get" itemid="2110" href="javascript:;"
onclick="pgvSendClick({'virtualDomain':'lol.qq.com',hottag:'a20180224lucky.index.btn.get1'});"></a>
第二步,我利用抓包工具找到了一系列的网址
http://logs.game.qq.com/easnew/go/eas.php?click_type=98&e_code=399156
这个网址后来被我否定,原因如下:
1.将waterfall按开始时间排序发现最新调用的与购买有关的是ibuy开头的URL。
2.logs似乎是和日志有关。
3.i_buy.cgi返回值是json,为
var i_buy={“msg”:”[无限烈焰 黛安娜]每种折扣限购1次~”,”ret”:”-6352”,”serverTime”:”1527925419”}
说明成功返回正确值。
以上可分析出