ご想像のとおり、この記事ではFoursquareに焦点を当てます。
Foursquareの統計は印象的です。 ロシアだけでも、100万人がこのソーシャルネットワークを使用しています。 隣人がこのチェックインカードで 4sqを使用しているかどうかを確認できます。
主要な「チップ」4sqの1つはバッジです。これは、さまざまな場所を訪れることで得られる特別な成果です。
合計で多くのバッジがあります。
しかし、私たちは非常に具体的なバッジに興味を持っています-市長のバッジ。
市長バッジは、1か所で定期チェックインの最大回数を持つユーザーに発行されます。
次の2つのことが価値をもたらします。
1.市長のアバターがその場所のページに表示されます(その場所が人気がある場合、非現実的なクールになります!);
2.市長の場合、多くの場合、さまざまな割引やプロモーションがあります。
市長になるには何が必要ですか(EPのメンバーシップを除く)。
- 過去60日間で最大数のチェーキン。
- 1日あたり1回のチェックインのみがカウントされます。
さらに、4sqにはフラッディングに対する保護があります。
- 15分で3つ以下のchekins。
- 1時間あたり6個以下のchekins。
- 24時間で最大30種類のチェキン。
- 16:00(モスクワ)に毎日のカウンターを「ゼロにする」。
実生活と同様に、市長になるには、「クラシック」オプションをバイパスするいくつかの方法があります。 これについてさらに説明します。
最初の方法。 偽のGPS座標。
小切手を市長のために「カウント」するためには、必要な地理オブジェクトを直接見つけなければなりません。 これを行う最も簡単な方法は、GPSの動作をエミュレートする電話でユーティリティを実行することです。
この方法の利点は、正しいチェックが100%保証されることです。 短所-100%手作り。
2番目の方法。 開発者API。
4sq開発者APIを介してサーバーにコマンドを直接送信できるのに、なぜ電話をモックするのでしょう!
残念ながら、DevAPIでの作業中に、POSTリクエストのユーザー-エージェントカーブ、ドキュメント化されていないパラメーターが欠落し、最も重要なことに、この方法で受信したチェックは市長にカウントされません(明らかに、同じユーザー用のフィルターがあります)エージェント)。
3番目の最後の方法。 スマートフォンのなりすまし。
Instagramとは異なり、4sqは安全なhttps接続を使用して動作します。 したがって、デバイスとサーバー間のすべてのトラフィックは暗号化されます。
電話からのhttpsトラフィックを傍受するには、次のものが必要です。
- PCのげっぷスイート (無料版に十分);
- 電話のProxyDroid(Android)(または同等のもの);
- 電話機のBurpスイートルートCA証明書。
PortSwigger CAを電話のユーザー証明書ストアに追加し(そこから削除することを忘れないでください)、PCのBurp Suiteでプロキシモードをオンにし、電話のProxyDroidでプロキシ設定を指定し、プロキシを介してすべてのトラフィックをラップします。
このスキームでは、Burp Suiteがhttps接続でMITM攻撃を実行し、証明書ストア内の信頼できるBurp CA証明書により、電話機がそれを検出できなくなります。
その結果、電話機と4sqサーバーの間のHTTPSトラフィックは明確になります。
すぐに目を引くのは、DeveloperAPIに文書化されていない一連のパラメーター(メトリック、CheckinComposeActivity、VenueActivityなど)が存在することです。 私はそれらがなぜ必要なのか理解していません...
Burpのクエリジェネレーターを使用すると、再パッケージ化によって再チェックが行われることがわかります=>切望されている投稿から一歩離れました!
AutoCheckを起動します
チェックインプロセスを自動化するために、Linuxファームウェアとcronでホームルーターを使用することにしました。
クラスノダール準州の管理におけるチェック用の最後のbashスクリプトは次のようになります。
#! /bin/bash curl -k -X POST \ "https://api.foursquare.com/v2/checkins/add" \ -H "Accept-Language: en-US" \ -H "Accept-Encoding: gzip" \ -H "Connection: Keep-Alive" \ -H "Content-Type: application/x-www-form-urlencoded" \ -H "Host: api.foursquare.com" \ --user-agent "com.foursquare.android:2013040200:20130402:4.2.2:GT-I9100:release" \ --data "ll=45.0247440%2C38.9695560&llAcc=27.0&venueId=4bc4419874a9a593308fd5f6&shout=&broadcast=public&oauth_token=<bla-bla-bla>&v=20130402"
ここで、llはジオオブジェクトの緯度と経度(Googleマップで確認できます)、AccはGPS精度(メートル)、venueIdはジオオブジェクトの識別子です(4sq Webサイト上のオブジェクトのWebページのアドレスバーを見ると確認できます)、oauth_tokenは秘密キーですこれは、Burpスイートを使用したダンプパッケージ、またはDeveloperAPI(ログインして、Try it out!ボタンを使用してテストリクエストを送信)で確認できます。
最後のパラメーターは、Oauth_tokenがサーバーによって生成された日付です。 ご覧のとおり、4月のトークンはまだ生きています。
いくつかのbashスクリプトでcronを開始した後、私はすでにfoursquareについて忘れていました。 したがって、市と地域の市長が同時にメーデーを目覚めるのは特に楽しかったです。