問題タブ [mitmproxy]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
android - mitmproxy でアプリのトラフィックが表示されない問題を修正するにはどうすればよいですか
Ubuntu で mitmproxy をセットアップし、Android デバイスをそれにリンクしました。Android ブラウザーからのトラフィックを表示できますが、アプリを起動すると、アプリがインターネットに接続されていても、アプリからのトラフィックは表示されません (どのアプリのようにも見えます)。私は何を間違っていますか?
私が実行しているmitmproxyコマンドは~mitmproxy --host
lan - ubuntuで2枚のLANカードを設定する方法
両方が異なるネットワークに接続されているように見えるように、1 台の PC に 2 枚の LAN カードを構成したいと考えています。また、1 つの LAN カードのゲートウェイをもう 1 つの IP アドレスにして、一方のトラフィックが 2 番目のトラフィックを通過できるようにします。自分のトラフィックを監視するために、PC に mitmproxy を適用しています。
私はubuntuとネットワーキングが初めてです。ですから、私が言ったことに誤りがある場合は、訂正してください。
ifconfig -a
eth0
リンク encap:Ethernet HWaddr 00:1c:c0:0d:85:38
inet addr:10.0.0.55 Bcast:10.0.0.255 Mask:255.255.255.0 inet6 addr: fe80::21c:c0ff:fe0d:8538/64 スコープ: Link UP BROADCAST RUNNING MULTICAST MTU:1500 メトリック:1 RX パケット:8094 エラー:0 ドロップ:0 オーバーラン:0 フレーム:0 TX パケット:7628 エラー:0 ドロップ:0 オーバーラン:0 キャリア:0 コリジョン:0 txqueuelen:1000 RXバイト:6890690 (6.8 MB) 送信バイト:1094128 (1.0 MB)
eth1
リンク encap:Ethernet HWaddr 10:fe:ed:01:ce:34
inet addr:10.0.0.95 Bcast:10.0.0.255 Mask:255.255.255.0 inet6 addr: fe80::12fe:edff:fe01:ce34/64 スコープ: Link UP BROADCAST RUNNING MULTICAST MTU:1500 メトリック:1 RX パケット:2338 エラー:0 ドロップ:0 オーバーラン:0 フレーム:0 TX パケット:2322 エラー:0 ドロップ:0 オーバーラン:0 キャリア:0 コリジョン:0 txqueuelen:1000 RXバイト:1303961 (1.3 MB) 送信バイト:256352 (256.3 KB)
lo
Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0 inet6 addr: ::1/128 Scope:Host UP LOOPBACK RUNNING MTU:65536 Metric:1 RX パケット:3849 エラー:0 ドロップ:0 オーバーラン:0フレーム:0 TX パケット:3849 エラー:0 ドロップ:0 オーバーラン:0 キャリア:0 コリジョン:0 txqueuelen:0 RX バイト:1008514 (1.0 MB) TX バイト:1008514 (1.0 MB)
ありがとう
python - MITMProxy: スマートな URL の置き換え
言語ごとに別の Web サイトを取得する必要があるカスタム スクレーパーを使用します (これはアーキテクチャの制限です)。site1.co.uk、site1.es、site1.de など。
しかし、site2.com/en、site2.com/de、site2.com/es などのように、URL で区切られた多くの言語で Web サイトを解析する必要があります。
MITMProxy について考えました: すべてのリクエストを次のようにリダイレクトできます:
URL を取得して書き換えるだけの小さなスクリプトを作成しました。
しかし、ターゲット ホストは、Web サーバーからの応答である 301 リダイレクトを生成します - 「ページはここに移動されました」と site2.com/en へのリンク
URL の書き換え、つまり site2.com/en --> site2.com/de で遊んだときに機能しました。しかし、異なるホスト (正確にはサブドメインとルート ドメイン) では機能しません。
上記の handle_request メソッドの Host ヘッダーを置き換えようとしました。
また、リファラーを置き換えようとしましたが、すべて役に立ちませんでした。
サブドメインからメイン ドメインへのリクエストを最終的にスプーフィングするにはどうすればよいですか? HTTP(s) クライアントの警告が生成された場合は、実際のブラウザではなく、スクレーパー (および警告をオフにすることができる) に必要なので問題ありません。
ありがとう!
reverse-engineering - Xbox One Smartglass アプリの API 認証ヘッダーのリバース エンジニアリング
Microsoft が Xbox Live ユーザーのプロフィール ページをログイン ウォールの背後に配置することを決めて以来、私は Xbox Live ユーザーがオンラインかどうかを判断する別の方法を見つける必要がありました。
これを行うために、私は mitmproxy を使用して、iOS 用の Xbox One Smartglass アプリによって行われている要求を把握しました。認証が必要なリクエストの場合、アプリは「Authentication」ヘッダー フィールドに「XBL3.0 x={computed auth token}」を入力するようです。
https://login.live.com/oauth20_token.srfへの POST リクエストを実行することで、アプリがアクセス トークンを取得し、ユーザーの "refresh_token" であるプロパティの 1 つであるフォーム エンコードされたデータを渡すことがわかりました。この更新トークンは、mitmproxy を使用してこれらの要求を調べるだけで取得できます。
その後、アプリはhttps://user.auth.xboxlive.com/user/authenticateへの POST 要求を実行し、その出所を特定できないさまざまな情報を渡します。以下は、このリクエストの JSON ペイロードの例です。
このリクエストのレスポンスには、次の JSON が含まれます。
連結された「uhs」と「token」の内容は、「XBL3.0 x=」認証ヘッダーから認証トークンが欠落しているように見えます。
問題は、Microsoft の Web スタックにまったく詳しくないことです。何時間も検索しても、「RpsHeader」と「RpsTicket」の値がどこから来たのかわかりません。
ssl - CA 証明書を使用する代わりの方法
1 つのサイトのみのトラフィックを傍受するために CA SSL 証明書をインストールする代わりの方法はありますか?
リクエストを変更できるという考えは気に入らず、技術的に1つのドメインのみに制限したいのですが、これは可能ですか、それともMITMを使用している場合、MITMをすべて信頼する必要がありますか?
例: 開発上の理由から、テスト サイト example.com へのすべての呼び出しをインターセプトしているため、ドッグフードを作成するには、テスターのデバイスに CA 証明書をインストールします。これで、すべてのドメインを傍受できます。プライバシーを侵害するため、テスターはこれを嫌います。
サイトから発行された証明書を変更したり、example.com の実際の証明書を mitmproxy に渡したりせずに、example.com でのみ機能するデバイスにインストールされた証明書を使用する代わりの方法はありますか?
macos - MITMPROXY を使用して Charles の Map Remote 機能を複製する方法
OS X 10.9 で MITMPROXY を使用して、Charles の Map Remote 機能によって提供される機能を複製しようとしています。私がやりたいのは、desiredurl.com へのリクエストを desiredurl.ca へのリクエストに置き換えることです (フリー ソフトウェアを使用して Charles で特定の機能を複製する方法を教えてくれる回答は何でも構いません)。
この回答とこの質問の両方が役立つように見えたので、以下のスクリプトを書きました。
iMac で iPadをmitmdump -s path/to/script.py
iMac のポート 8080 に通常どおり接続すると、ターミナル ウィンドウでトラフィックが飛んでいるのがわかりますが、desiredurl.com にアクセスすると、desiredurl.ca ではなく、desiredurl.com に移動します。したがって、私は次のことを試しました:
ただし、要求は引き続き、desiredurl.ca ではなく、desiredurl.com に送信されます。どうしてこれなの?
python - Debian mitmproxy は、pip 経由でインストールされた python-2.7 モジュールの検索/読み込みに失敗します
私はDebian wheezyを実行しており、システムパッケージからmitmproxyをインストールし、pipを使用してpushbullet.py( https://github.com/randomchars/pushbullet.py )をインストールしました。
次のように、Python コマンドラインからインポートすると、Pushbullet が機能します。
しかし、mitmproxy スクリプト内から pushbullet モジュールをインポートしようとすると、モジュールが見つかりません。
これで、pip は pushbullet.py とその依存関係 python-magic、requests、backports.ssl-match-hostname を /usr/local/lib/python2.7/dist-packages/ にインストールしました。cmdline python は pip でインストールされたパッケージを見つけたようですが、mitmproxy は何らかの理由で見つけることができません。
そのため、PYTHONPATH またはシステム パスを介してパスを追加しようとしましたが、まだ何か間違っているに違いないと思います。
cmdline pythonを介してすべてが機能し、mitmproxy内からスクリプトとしてロードされたときに失敗する理由と、それを修正する方法を誰でも明らかにできますか? pip経由でインストールされたモジュールはどのようにロードされるべきですか?
proxy - mitmproxy インストール エラー
python 2.6.6 を使用して centos 6.4 に mitmproxy をインストールしようとしていますが、インストール コマンドを実行すると以下のエラーが発生します。
#pip インストール mitmproxy