モバイルとAPIペンテスト

🔥 Vibe プロンプト

「モバイルアプリをペンテスト:トラフィック傍受、SSLバイパス、ルート検出回避、APIテスト。」

モバイル設定

# Android: Burp Suiteプロキシ
adb push burp-ca.der /sdcard/
adb shell "su -c 'cp /sdcard/burp-ca.der /system/etc/security/cacerts/'"

# iOS: QProxy
# CydiaからQProxyインストール→Burpをプロキシ設定

# Frida: frida -U -f com.target.app -l ssl_bypass.js

Frida SSLバイパス

Java.perform(function() {
    var TrustAll = Java.registerClass({
        name: 'com.example.TrustAll',
        implements: [Java.use('javax.net.ssl.TrustManager')],
        methods: {
            checkServerTrusted: function() {},
            getAcceptedIssuers: function() { return []; }
        }
    });
    var SSLContext = Java.use('javax.net.ssl.SSLContext');
    SSLContext.init.implementation = function(k, t, r) {
        return this.init(k, [TrustAll.$new()], r);
    };
    console.log("SSLバイパス成功!");
});

ルート検出バイパス

Java.perform(function() {
    var RootBeer = Java.use('com.scottyab.rootbeer.RootBeer');
    RootBeer.isRooted.implementation = function() { return false; };
    console.log("ルート検出バイパス成功!");
});

APIセキュリティテスト

# 1. レート制限
for i in range(100):
    r = requests.post(f"{BASE}/login", json={"user": "admin", "pass": "wrong"})
    if r.status_code != 429 and i > 10:
        findings.append("ログインにレート制限なし!")
        break

# 2. IDOR
r1 = requests.get(f"{BASE}/orders/1", headers={"Authorization": f"Bearer {token}"})
r2 = requests.get(f"{BASE}/orders/2", headers={"Authorization": f"Bearer {token}"})
if r2.status_code == 200 and r1.json()["user_id"] != r2.json()["user_id"]:
    findings.append("IDOR: 他ユーザーの注文にアクセス可能!")

モバイルペンテストチェックリスト

| チェック | Android | iOS | |---------|---------|-----| | トラフィック傍受 | Burp + CA証明書 | QProxy + CA証明書 | | SSLピンバイパス | Frida | Frida | | ルート検出回避 | RootBeerフック | AntiSubstrateCrack | | 安全でない保存 | SharedPrefs、SQLite | Keychain、Plist | | ハードコードされた秘密 | APK逆コンパイル | IPA逆コンパイル |

ベストプラクティス

  • 実機でテスト(エミュレータ検出多数)
  • Fridaでランタイムバイパス
  • APK/IPAを逆コンパイルしてシークレット確認
  • APIとモバイルアプリを一緒にテスト
  • 安全でないデータ保存を確認
  • 全エンドポイントのレート制限確認

重要なポイント

  • コアコンセプトをしっかり理解する
  • ハンズオンコード例で実践する
  • 実世界の問題に応用する
  • 演習で知識を強化する

さらに学ぶ

  • 公式ドキュメント
  • GitHubのオープンソースプロジェクト
  • コミュニティフォーラムとディスカッション
  • 関連コースとチュートリアル

完全なチュートリアルをロック解除

このチャプターは有料コンテンツです。プロジェクトに参加して、10以上の神レベルのPromptや実際のソースコード例を含む、5000字以上の深い分析をロック解除してください!