别名:游侠客的程序员,能不能用点心
上周交了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名的排名吧。