参加了一次夜跑运动,竞赛完顺便给本身刷了下票

别名:游侠客的程序员,能不能用点心

上周交了9块钱报名列入了游侠客构造的武汉荧光夜跑运动。我跑步有一年了,基础上是一个人在跑。此次列入运动,也是第一次列入运动,觉得挺不错的。

五六百人参赛,文化衫和脸上的涂鸦,彩色的荧光棒,生动的妹子们,现场氛围很不错!

《参加了一次夜跑运动,竞赛完顺便给本身刷了下票》

起跑前:

《参加了一次夜跑运动,竞赛完顺便给本身刷了下票》

我在挤到了四五排的位置:

《参加了一次夜跑运动,竞赛完顺便给本身刷了下票》

五公里康健跑,我拼了老命,以第十名抵达尽头(谁人唯一没看镜头的就是我):

《参加了一次夜跑运动,竞赛完顺便给本身刷了下票》

但实际上这是一场自拍竞赛:跑步是不设奖项的,现场照相上传,然后投票评选才有奖品。横竖我也喜好照相,就也上传了,并分享了朋侪圈看能不能拉到票。

重点来了。朋侪说投票须要输入手机号,然后猎取验证码才进入投票页面。我也有给他人投票的履历,然则填验证码投票的,还没见过。但跑步太拼了,就早歇息了。

第二天起床,想看看能不能给本身加点人气,因而不抱任何愿望的打开了chrome,debug一下投票网页:

《参加了一次夜跑运动,竞赛完顺便给本身刷了下票》

点击投票后给了我这个页面:

《参加了一次夜跑运动,竞赛完顺便给本身刷了下票》

做过微信,邃晓这个是微信页面的限定,因而我从PC微信打开了该页面。为了看看究竟页面发了个什么要求,立马下载了fiddler(黑客技术真不会,fiddler基础操纵照样会的)。

点击投票时,页面发送了一个GET要求(是的,GET要求):

《参加了一次夜跑运动,竞赛完顺便给本身刷了下票》

《参加了一次夜跑运动,竞赛完顺便给本身刷了下票》

该要求只要两个参数,uid和pid。随便给其他几个人投票,视察了下,就晓得uid是投票人id,pid是被投票人id。

因而进入我本身的投票页面,找到本身的pid,再进入别的一个人的投票页面,找到他的pid,作为给我投票的uid,如许就可以完成他给我投票的历程了。

拼了一个URL,往chrome地址栏一放,转头看看我的票数就加了一个。再革新一下,哦,告诉我已投过了不能反复投。

猎奇的尝试了下,uid不运用他人的pid,而随便用个数字呢?不测的发明,随便一个数字都能投票!

如许就简朴的有点过分了,IP,id,跨域,要求距离都没有做限定。简朴一个剧本,随便在哪一个页面上一跑,想拿什么奖都可以了。

function vote (targetId) {
  let image = new Image()
    let uid = Date.now()
  image.src = `http://m.youxiake.com/h5/run_vote?uid=${uid}&pid=${targetId}`
}

转头看看谁人输入手机号猎取验证码才投票的限定… 游侠客的程序员们,能不能用点心

《参加了一次夜跑运动,竞赛完顺便给本身刷了下票》

不敢给本身刷第一名,对第一名奖品也没兴趣。然则我对“土豪大礼包”照样很猎奇的。那就保持下本身第5到10名的排名吧。

    原文作者:外籍杰克
    原文地址: https://segmentfault.com/a/1190000009824409
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞