一次伪造HTTP请求包刷票的经历

来源:互联网 发布:网络美工的工作内容 编辑:程序博客网 时间:2024/06/06 09:06

前段时间收到一个消息说帮忙给某某某投票的活动,打开发现是一个页面,点击按钮后进行投票,每天都可以投票,最后统计投票总数。

怀着学术交流、友好和谐的心态(·_·),简单的抓了下包,看了下协议请求。

发现请求头大概长这样:

GET /xxxx?xxx1=xxx&xxx2=xxx&xxx3=xxx&id=xxx&sign=xxxx HTTP/1.1HOST: XXX.XXXX.comConnection: keep-aliveUser-Agent:XXXXXXAccept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8Accept-Encoding: gzip, deflate

猜测id对应用户id,构造随机id进行请求,返回内容为校验失败,看了发现有一个sign参数,该参数应该是一个校验值,看着长度和MD5差不多,猜测为一个MD5校验,那这个MD5是从哪里来的呢?继续分析抓包内容发现有一个js文件,详细分析了下,找到关键计算sign值的点:

 $request: function(e, q, n) {        var f = q;        f.Str = Math.random().toString(10).substr(1, 2);        f.ts = (new Date).getTime();        var o = this.objToString(f);        var abc = md5(o).toUpperCase();        f.sign = abc;        ....

就是对参数的内容计算了一个MD5进行校验,知道算法了再重新验证一下,轻松通过。

仅供学习,屏蔽掉了相关信息。

原创粉丝点击