夜のランニングイベントに参加して、試合が終わったついでに自分で切符を払った.

1589 ワード

游侠客のプログラマー、お菓子を使うことができますか
先週、9元を払って、遊侠客が組織した武漢蛍光夜走活動に参加した.私は走って1年になりました.基本的には一人で走っています.今回のイベントに参加するのは、初めてのイベントで、いい感じです.
五六百人が参加して、文化のシャツと顔の落書き、カラーの蛍光棒、活発な女の子たち、現場の雰囲気はとてもいいです!
スタート前:
私は4、5列の位置に押し込んだ.
5キロの健康走で、私は命をかけて、10位でゴールしました(あの唯一レンズを見ていないのは私です):
しかし、実際には自撮り試合です.ランニングは賞を設けず、現場で写真を撮ってアップロードし、投票して評価して賞品があります.どうせ私も写真を撮るのが好きなので、アップロードして、友达の輪を共有して切符を引くことができるかどうかを見ました.
ポイントが来ました.友人は投票には携帯電話番号を入力し、検証コードを取得して投票ページに入る必要があると話しています.私も他の人に投票した経験がありますが、検証コードを記入して投票したのは、まだ見たことがありません.しかし、ランニングが頑張りすぎて、早く休みました.
翌日起きて、自分に人気をつけることができるかどうかを見たいので、何の希望も持ってchromeを開けて、debugは投票のホームページを開きました:
投票をクリックしてこのページをくれました.
微信をしたことがあり、これが微信ページの制限であることが分かったので、PC微信からこのページを開きました.ページが何を要求しているのかを見るために、すぐにfiddlerをダウンロードしました(ハッカー技術は本当にできません.fiddlerの基本的な操作はできます).
投票をクリックすると、ページにGETリクエスト(はい、GETリクエスト):
この要求には2つのパラメータ、uidとpidしかありません.他の何人かに投票して、観察してみるとuidは投票者id、pidは被投票者idであることがわかります.
そこで私の自分の投票ページに入って、自分のpidを見つけて、更に別の人の投票ページに入って、彼のpidを見つけて、私に投票するuidとして、このように彼が私に投票する過程を完成することができます.
URLをつづって、chromeアドレスバーに置くと、振り返ってみると私の票数が1つ追加されました.もう一度更新して、ああ、もう投げたから繰り返し投げてはいけないと教えてください.
好奇心を持って試してみると、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}`
}

携帯番号を入力して認証コードを取得してから投票できる制限を振り返ってみましょう.遊侠客のプログラマーたち、お菓子を使ってもいいですか?
自分に1位をつける勇気がなくて、1位の賞品にも興味がありません.しかし、私は「土豪大礼包」に興味を持っています.では、自分の5位から10位の順位を維持しましょう.