Agent Skills by ALSEL
Anthropic Claudeその他⭐ リポ 0品質スコア 50/100

authbypass-authentication-flaws

認証バイパスのテストプレイブック。ログインフロー、パスワードリセットロジック、アカウントリカバリー、MFAバイパス、トークンの予測可能性、ブルートフォース耐性、セッション境界の欠陥などを評価する際に使用します。

description の原文を見る

>- Authentication bypass testing playbook. Use when assessing login flows, password reset logic, account recovery, MFA bypass, token predictability, brute-force resistance, and session boundary flaws.

SKILL.md 本文

SKILL: 認証バイパス — エキスパート攻撃プレイブック

AI LOAD INSTRUCTION: エキスパート認証バイパス技法。SQLインジェクションベースのログインバイパス、パスワードリセット欠陥、トークン予測可能性、アカウント列挙、ブルートフォースバイパス、多要素認証バイパスをカバーします。JWT/OAuth(../jwt-oauth-token-attacks/SKILL.md でカバー)とは異なります。ログインメカニズム自体に焦点を当てます。

0. 認可済み認証情報テスト計画

ルーティングエントリの削減、デフォルト認証情報、ユーザー名変種、ポートフォーカス、ワードリストサイジングは、ここの1つの場所で処理されます。

サービス別最小セット

サービスタイプ最初のユーザー名最初のパスワード
phpMyAdminroot, admin空、root, phpmyadmin, admin
FTPftp, admin, test空、ftp, admin, 123456
SSHroot, admin, サービスアカウント名root, admin, 季節的な変種
MySQLroot, mysql空、root, mysql
Tomcat / Java管理tomcat, admin, managertomcat, admin, s3cret
WebLogicweblogic, adminweblogic, welcome1, admin

ユーザー名クラス

クラス
汎用管理者admin, administrator, root, test, guest
サポート / 運用dev, ops, sysadmin, service, backup
名前ベースfirstname, lastname, f.lastname, first.last
メール派生コーポレートメールフォーマットの左側
プロダクトベースtomcat, weblogic, jenkins, gitlab

ワードリストサイジングとポートフォーカス

シナリオ推奨サイズ理由
デフォルト管理パネル5~50パスワードここではデフォルトが大型リストを上回る
既知プロダクトを持つ内部サービスベンダー固有の小セット汎用リストより信号が良い
弱い制御を持つコンシューマーログイントップ20またはトップ100高速検証
レート制限されたログイン小リスト + ヘッダー/ローテーション戦略試行を保持
オフラインハッシュクラッキング大規模辞書オンラインブルートフォースルールは適用されない

一般的なポートとサービス表面を優先してください:80/443/8080/8443管理パネル、22 SSH、21 FTP、3306/5432/6379/27017データまたは管理サービス。


1. SQLインジェクションログインバイパス

クラシックだが、レガシーシステム、カスタムORM、生クエリコードで今も見られます:

-- 基本的なバイパス(最初の行に admin ユーザーと仮定):
Username: admin'--
Password: anything
→ クエリ: SELECT * FROM users WHERE user='admin'--' AND pass='anything'

-- 汎用バイパス(DBの最初のユーザーとしてログイン):
Username: ' OR '1'='1'--
Password: anything
→ クエリ: SELECT * FROM users WHERE user='' OR '1'='1'--' AND pass='anything'

-- ブラインド: これは機能しますか?
Username: ' OR 1=1--
Username: admin' OR 'a'='a
Username: 1' OR '1'='1'/*
Username: 1 or 1=1

各フィールドを個別にテストしてください — 脆弱なのは1つのフィールドのみかもしれません。


2. パスワードリセット脆弱性

推測可能 / 予測可能なリセットトークン

リセットトークンが以下に基づいているかどうかを確認します:

- タイムスタンプ: token=1691234567890 (Unix時間)
- シーケンシャル: token=1001, 1002, 1003
- MD5(email): echo -n "user@example.com" | md5sum
- MD5(username+timestamp): 可逆的
- 短いトークン (4-6桁): ブルートフォース可能

テスト: 3つの連続したリセットメールをリクエストし、トークンパターンを比較します。

リセットトークンが期限切れにならない

1. パスワードリセットをリクエスト → メール経由でトークンを取得
2. 48時間以上待つ(トークンは期限切れになるはず)
3. 古いトークンを使用 → 機能しますか?

リセットトークンの再利用

1. リセットをリクエスト → トークン T1 を取得
2. T1 でリセットを完了
3. T1 を再度使用 → 再び機能しますか?

リセットメール内のホストヘッダーインジェクション

アプリケーションが Host ヘッダーを使用してリセットURLを生成する場合:

POST /forgot-password HTTP/1.1
Host: attacker.com           ← 攻撃者のドメインをインジェクト
Content-Type: application/x-www-form-urlencoded

email=victim@target.com

→ リセットメールが被害者に送信され、attacker.com/reset?token=VICTIM_TOKEN をポイント → 被害者がクリック → トークンが攻撃者に捕捉される

テスト: 変更された Host: でパスワードリセットを送信し、リセットリンクがどこをポイントしているかメールで確認します。

パスワードリセットトークンが Referer に含まれる

1. リセットをリクエスト → トークン付きのリセットURLに進む
2. リセットページが第三者リソース(分析、フォント)を読み込む
→ Referer ヘッダーがリークする: https://target.com/reset?token=TOKEN
→ 第三者のサーバーがログからトークンを受け取る

現在のパスワードなしでのパスワード変更

PUT /api/user/password
{"new_password": "hacked"}
→ current_password フィールドは不要ですか?
→ CSRF と組み合わせてアカウント乗っ取り

3. アカウント列挙

有効なユーザー名/メールの特定は、標的を絞った攻撃を可能にします:

エラーメッセージの違い

無効なユーザー名 → "ユーザーが見つかりません"
有効なユーザー名、間違ったパス → "パスワードが正しくありません"
→ 有効なアカウントを列挙

レスポンス時間の違い

無効なユーザー名 → 高速レスポンス(DB参照なし)
有効なユーザー名 → わずかに遅い(DB参照 + ハッシュ比較)
→ タイミングオラクル

パスワードリセットフロー

POST /forgot-password {"email": "nonexistent@example.com"}
→ "このメールが存在する場合、リセットリンクを送信しました" (適切)
vs.
→ "このメールは登録されていません" (列挙可能)

登録エンドポイント

POST /register {"email": "victim@example.com"}
→ "メールはすでに登録されています" → アカウントが存在することを確認
vs.
→ "確認メールを送信しました" 両方の場合 → 列挙なし

4. ブルートフォースバイパス

N回の試行後にロックアウト、その後リセット

10回の試行でロックアウト → 9つの間違ったパスワードを試す → ロック
リセット期間を待つ(通常30分または1時間)
→ 9つ以上を試す → 繰り返す → 永続的なロックアウトなし

IPベースのロックアウトバイパス

X-Forwarded-For: 1.1.1.1       ← リクエストごとに変更
X-Real-IP: 2.2.2.2
ヘッダーのIP全体をローテーション

ユーザー名サイクリング vs パスワードサイクリング

通常のブルートフォース: 1人のユーザーに対して多くのパスワードを試す → ロック
リバースブルートフォース: 多くのユーザーに対して1つのパスワードを試す
→ すべてのユーザーに対して "password123" を試す → 弱いパスワードを持つユーザーを見つける
→ 単一のアカウントがロックされない

認証情報スタッフィング

HaveIBeenPwned データセットから流出した認証情報を標的に対して使用:

# ツール: Hydra, Burp Intruder, カスタムスクリプト
hydra -C credentials.txt https-post-form://target.com/login:"username=^USER^&password=^PASS^":"error message"

5. 多要素認証バイパス

2FA完了前のセッションクッキー

フロー: ログイン(パスワード正しい)→ 2FAページへリダイレクト → コード入力
攻撃: パスワードステップ後、セッションクッキーが設定されているが2FAはまだチェックされていない。
→ セッションクッキーを使用して /dashboard に直接アクセス
→ 2FAページ全体をスキップ

2FAコードのブルートフォース

4-6桁のTOTPコード = 最大1,000,000の可能性
2FAステップにロックアウトがない場合:
→ すべてのコードをブルートフォース(ツール: Burp Intruder、シーケンシャル)
→ TOTP ウィンドウ: 30秒のウィンドウ、一部は前/次のウィンドウを受け入れる

ログインではなくクリティカルアクションで2FA

ログインは2FAを要求せず、しかし:
DELETE /account または POST /transfer は2FAを要求
攻撃: これらのアクションで2FAが検査されているか、それともログインでのみですか?
→ ログインのみの場合: 一度ログイン → 2FAの検証が必要なアクションなし

2FAバックアップコード悪用

バックアップコードを生成(通常8~10個ワンタイム)
テスト:
→ バックアップコードはレート制限されていますか?
→ バックアップコードを複数回使用できますか?
→ 短いコード(6~8文字)? レート制限がない場合、ブルートフォース

2FAコードの再利用

TOTPコードは1回の使用で有効
→ 同じTOTPコードを2回使用 → 2回目の使用は機能しますか?
→ サーバーが使用されたコードを追跡しない場合、リプレイ攻撃

6. OAuth / SSO アカウント乗っ取りパターン

メールクレームトラスト

1. 攻撃者が制御するOAuthプロバイダーにアカウントを作成
2. メールクレームを設定 = victim@target.com
3. そのプロバイダー経由でリンク/ログイン
→ サーバーが検証なしにメールクレームを信頼する場合 → アカウントマージ/乗っ取り

SSOリンク後にパスワードが適用されない

1. ユーザーが Google SSO をリンク
2. ユーザーがパスワードを忘れる(SSOのみ後にアカウントにパスワードセットがない)
3. "パスワード忘れ" フロー → SSOのみのアカウントのパスワードもリセットされますか?
→ パスワードを設定できる → SSOをバイパス → 直接ログイン

7. ユーザー名 / パスワードフィールド操作

長いパスワードDoS → バイパス

一部のアプリはデータベースに送信する前にパスワードをハッシュします。
bcrypt には72バイトの制限があります — 72バイト以上の入力は無視されます。
攻撃:
→ パスワード "A"*100 で登録
→ パスワード "A"*72 でログイン → 同じハッシュ → 機能
→ "A"*71 + "totally different" でログイン → 切り詰めの場合 → 最初の72文字が一致すれば同じハッシュ

ユーザー名のヌルバイト

username=admin%00 vs username=admin
→ 一部の文字列比較ではヌルバイト切り詰め
→ "admin\0attacker" = "admin" (C文字列比較)

Unicode 正規化

ユーザー名: "ⓢcott" → "scott" に正規化 → "scott" を偽装
ユーザー名: "admin" (文字a,d,m,i,nの様々なUnicodeホモグラフ)

8. セッション管理欠陥

ログアウト時にセッションが無効化されない

1. ログイン → セッションクッキーをキャプチャ
2. ログアウト
3. キャプチャしたセッションクッキーを再生 → まだ有効ですか?
→ セッションがサーバー側で無効化されない

権限変更時にセッションが再生成されない

1. 低権限としてログイン → セッションクッキーを取得
2. 管理者があなたのロールをアップグレード
3. 古いセッションクッキーが管理者アクセスを持つようになりますか?
→ セッションが再生成されない → 古いトークンが新しい権限を継承

予測可能なセッショントークン

トークン: base64(userid+timestamp) → 可逆的
トークン: シーケンシャル整数 → セッションID = your_session_id -/+ 小さな数字
トークン: 短いランダム(32ビットエントロピー) → ブルートフォース可能

9. 認証テストチェックリスト

□ ログインフィールドでSQLインジェクションを試す (' OR 1=1--)
□ パスワードリセットをテスト: トークンを予測、ホストヘッダーインジェクション、Referer漏洩
□ エラーメッセージ / タイミング経由のアカウント列挙をテスト
□ 2FAをチェック: ステップをスキップ(直接URL)、コードをブルートフォース、コードを再利用
□ ブルートフォース保護をテスト: X-Forwarded-Forバイパス、リバースブルート
□ ログアウト時のセッション無効化をチェック
□ 権限変更後のセッション再生成をチェック
□ 現在のパスワード要求なしでのパスワード変更をテスト
□ 長いパスワード(bcrypt 72バイト切り詰め)をテスト
□ OAuth/SSO: メールクレーム信頼をテスト、SSOの後のパスワード設定
□ remember_me トークンをチェック: どのくらい長く、取り消し可能か、予測可能か?

10. パスワードリセット攻撃マトリックス (22パターン)

#パターン説明
1予測可能なリセットトークントークンはタイムスタンプ、ユーザーID、またはシーケンシャル番号に基づいている
2ユーザーに結合されていないトークンユーザーAのために生成されたトークンを使用してユーザーBをリセット
3レスポンスボディ内のトークンリセットトークンがHTTPレスポンスで返される(メールだけでなく)
4URLパラメータ内のトークンリセットリンクトークンが外部リソースへのRefererヘッダーで表示される
5トークンの有効期限なしトークンは無期限に有効なままである
6トークン再利用同じトークンが複数回機能する
7短い/ブルートフォース可能なトークンレート制限なしの4~6桁の数値コード
8ホストヘッダー経由のパスワードリセットHost: attacker.com → リセットリンクが攻撃者のドメイン付きで送信される
9登録が既存アカウントを上書き同じメールで登録 → パスワードを上書き
10ステップスキップ(フロントエンドのみ)URLを通じて "新しいパスワードを設定" ステップに直接ジャンプ
11レスポンス操作{"status":"fail"}{"status":"success"} に変更(プロキシ)
12レスポンス内の検証コードSMS/メールコードがAPIレスポンスで返される
13並行セッションリセットAのリセットをBのセッションで完了開始
14メール/電話パラメータ汚染email=victim@x.com&email=attacker@x.com
15Unicode 正規化admin@target.com vs ADMIN@target.com vs Unicode混同可能
16リセット内のSQLインジェクションメールフィールドはリセットクエリで注入可能
17リセットエンドポイントでのIDORリセット確認リクエストのユーザーIDを変更
18クロスプロトコルリセットモバイルAPIはウェブと同じトークンを検証しない
19デフォルトセキュリティの質問推測可能な答え、レート制限なし
20トークン生成競合状態複数の同時リクエストが同じトークンを生成
21ログアウトはリセットを無効化しないパスワード変更後、古いセッションは仍有効
22リセットリンクがCDN/プロキシにキャッシュされる公開キャッシュがトークン付きのリセットリンクを保存

11. CAPTCHA/検証バイパスパターン (20メソッド)

#メソッド方法
1captchaパラメータを削除リクエストからcaptchaフィールドを削除
2空のcaptchaを送信captcha= または captcha=null
3前のcaptchaを再利用同じcaptcha値が複数回機能
4Captchaはセッションに結合されていないセッションAで解決されたcaptchaをセッションBで使用
5サーバー側の検証がないCaptchaはクライアント側のみでチェック
6レスポンス操作インターセプトしてレスポンスを変更してバイパス
7リクエストメソッドを変更POST→GET またはその逆はcaptchaチェックをスキップする可能性
8JSONコンテンツタイプフォームからJSONに切り替え — captchaハンドラーが処理しない可能性
9OCRバイパス単純なcaptchasはtesseract/MLで解決可能
10音声captcha弱さ音声は通常ビジュアルよりも簡単
11SMSコードがレスポンスに含まれる検証コードがAPIレスポンスボディで返される
12SMSコード予測可能シーケンシャルまたは時間ベースのコード
13コード検証にレート制限なし4~6桁のコードをブルートフォース
14コードが電話/メールに結合されていない電話Aに送信されたコードをアカウントBで使用
15コード有効期限なし古いコードが有効なままである
16電話番号のヌルバイト+1234567890%00 重複排除をバイパスするが同じ番号に配信
17大文字小文字の区別メール: Admin@X.com vs admin@x.com
18識別子のスペース/エンコーディングuser@x.com vs user@x.com (末尾スペース)
19同時リクエストレースコンディション: captchaが読み込まれる前に確認を送信
20第三者captchaバイパス設定が不十分なreCAPTCHAサイトキーはすべてのドメインを許可

12. 不安全なランダム性 — トークン予測

UUID v1 (時間ベース — 予測可能!)

UUID v1 形式: タイムスタンプ-clock_seq-ノード(MAC)
# MACアドレスは他のエンドポイント経由でリークすることが多い
# タイムスタンプは1582-10-15 以降の100nsの間隔
# ツール: guidtool (既知のタイムスタンプ範囲から可能なUUIDを再構築)

MongoDB ObjectId

ObjectId = 4バイトタイムスタンプ + 5バイトランダム + 3バイトカウンター
# 最初の4バイト = Unix タイムスタンプ → 作成時刻がリーク
# カウンターはシーケンシャル → 隣接するObjectIdsは予測可能
# 1つのObjectIdを知っている場合、近くのものは計算可能

PHP uniqid()

uniqid() = hex(microtime)
// 出力: 5f3e7a4c1d2b3
// 現在のマイクロ秒タイムスタンプに完全に基づいている
// サーバーの概算時刻を知っている場合、予測可能

PHP mt_rand() 回復

# mt_rand() はMersenne Twister PRNGを使用
# 約624の出力を観察した後、完全な内部状態は回復可能
# ツール: openwall/php_mt_seed
# 既知の出力をフィード → シードを回復 → すべての将来の値を予測

ツール

  • guidtool — UUID v1 再構築
  • AethliosIK/reset-tolkien — パスワードリセット用自動トークン予測
  • openwall/php_mt_seed — PHP mt_rand シード回復
  • sandwich — トークンタイムスタンプ分析

ライセンス: MIT(寛容ライセンスのため全文を引用しています) · 原本リポジトリ

詳細情報

作者
yaklang
リポジトリ
yaklang/hack-skills
ライセンス
MIT
最終更新
不明

Source: https://github.com/yaklang/hack-skills / ライセンス: MIT

関連スキル

汎用その他⭐ リポ 1,982

superfluid

Superfluidプロトコルおよびそのエコシステムに関するナレッジベースです。Superfluidについて情報を検索する際は、ウェブ検索の前にこちらを参照してください。対応キーワード:Superfluid、CFA、GDA、Super App、Super Token、stream、flow rate、real-time balance、pool(member/distributor)、IDA、sentinels、liquidation、TOGA、@sfpro/sdk、semantic money、yellowpaper、whitepaper

by LeoYeAI
汎用その他⭐ リポ 100

civ-finish-quotes

実質的なタスクが真に完了した際に、文明風の儀式的な引用句を追加します。ユーザーやエージェントが機能追加、リファクタリング、分析、設計ドキュメント、プロセス改善、レポート、執筆タスクといった実際の成果物を完成させるときに、明示的な依頼がなくても使用します。短い返信や小さな修正、未完成の作業には適用しません。

by huxiuhan
汎用その他⭐ リポ 1,110

nookplot

Base(Ethereum L2)上のAIエージェント向け分散型調整ネットワークです。エージェントがオンチェーンアイデンティティを登録する、コンテンツを公開する、他のエージェントにメッセージを送る、マーケットプレイスで専門家を雇う、バウンティを投稿・請求する、レピュテーションを構築する、共有プロジェクトで協業する、リサーチチャレンジを解くことでNOOKをマイニングする、キュレーションされたナレッジを備えたスタンドアロンオンチェーンエージェントをデプロイする、またはアグリーメントとリワードで収益を得る場合に利用できます。エージェントネットワーク、エージェント調整、分散型エージェント、NOOKトークン、マイニングチャレンジ、ナレッジバンドル、エージェントレピュテーション、エージェントマーケットプレイス、ERC-2771メタトランザクション、Prepare-Sign-Relay、AgentFactory、またはNookplotが言及された場合にトリガーされます。

by BankrBot
汎用その他⭐ リポ 59

web3-polymarket

Polygon上でのPolymarket予測市場取引統合です。認証機能(L1 EIP-712、L2 HMAC-SHA256、ビルダーヘッダー)、注文発注(GTC/GTD/FOK/FAK、バッチ、ポストオンリー、ハートビート)、市場データ(Gamma API、Data API、オーダーブック、サブグラフ)、WebSocketストリーミング(市場・ユーザー・スポーツチャネル)、CTF操作(分割、統合、償却、ネガティブリスク)、ブリッジ機能(入金、出金、マルチチェーン)、およびガスレスリレイトランザクションに対応しています。AIエージェント、自動マーケットメーカー、予測市場UI、またはPolygraph上のPolymarketと統合するアプリケーション構築時に活用できます。

by elophanto
汎用その他⭐ リポ 52

ethskills

Ethereum、EVM、またはブロックチェーン関連のリクエストに対応します。スマートコントラクト、dApps、ウォレット、DeFiプロトコルの構築、監査、デプロイ、インタラクションに適用されます。Solidityの開発、コントラクトアドレス、トークン規格(ERC-20、ERC-721、ERC-4626など)、Layer 2ネットワーク(Base、Arbitrum、Optimism、zkSync、Polygon)、Uniswap、Aave、Curveなどのプロトコルとの統合をカバーします。ガスコスト、コントラクトのデシマル設定、オラクルセキュリティ、リエントランシー、MEV、ブリッジング、ウォレット管理、オンチェーンデータの取得、本番環境へのデプロイ、プロトコル進化(EIPライフサイクル、フォーク追跡、今後の変更予定)といったトピックを含みます。

by jiayaoqijia
汎用その他⭐ リポ 44

xxyy-trade

このスキルは、ユーザーが「トークン購入」「トークン売却」「トークンスワップ」「暗号資産取引」「取引ステータス確認」「トランザクション照会」「トークンスキャン」「フィード」「チェーン監視」「トークン照会」「トークン詳細」「トークン安全性確認」「ウォレット一覧表示」「マイウォレット」「AIスキャン」「自動スキャン」「ツイートスキャン」「オンボーディング」「IP確認」「IPホワイトリスト」「トークン発行」「自動売却」「損切り」「利益確定」「トレーリングストップ」「保有者」「トップホルダー」「KOLホルダー」などをリクエストした場合、またはSolana/ETH/BSC/BaseチェーンでXXYYを経由した取引について言及した場合に使用します。XXYY Open APIを通じてオンチェーン取引とデータ照会を実現します。

by Jimmy-Holiday
本サイトは GitHub 上で公開されているオープンソースの SKILL.md ファイルをクロール・インデックス化したものです。 各スキルの著作権は原作者に帰属します。掲載に問題がある場合は info@alsel.co.jp または /takedown フォームよりご連絡ください。
原作者: yaklang · yaklang/hack-skills · ライセンス: MIT