Beyond the Wall: Bypassing OTP, WAF, and 403 for exploiting a SQL Injection から学ぶ

ソース:

medium.com

脆弱性:OTP、WAF、Blind SQL

 

訳:

サブドメインを 1 つずつ開いた後、「legacypanel.redacted.com」というサブドメインを見つけました。
しかし、最初に遭遇したのは「403 - アクセスが拒否されました」でした。
いつものように、ダミー パスを入力して、これがすべてのパスでの頑固な 403 なのか、それともメイン ドメインのみでののかをテストしました。 

 

legacypanel.redacted.com/dummypath

 

ダミー パスを入力すると、コードが 403 から 404 に変化しました。
これは、403 制限がメインドメインにのみ適用され、他のパスには適用されなかったことを示しています。
次のステップでは、私のプライベート ワードリストを使用して、ターゲットに対してディレクトリ ブルート フォースを実行します。
ffuf によるファジング プロセスの後、/dashboard パスの存在を発見しました。

ダッシュボードにアクセスすると、登録ページが表示されました。
登録を進めたところ、Web アプリケーションから OTP が送信されたことが通知されましたが、残念ながら OTP は私に送信されませんでした。

 

それで、私はすでに 403 をバイパスし、ファジングを実行していましたが、Web アプリケーションが私の電子メールに OTP を送信しなかったからといって降伏する必要がありますか? おそらく答えは推測できるでしょう :) そうですね、答えは YES です。
お腹も空いて疲れたので諦めました。 30分の休憩の後、仕事に戻りました。

OTP をバイパスするにはいくつかの方法があり、私は次のことを試しました。

  • OTP コードにブルート フォース攻撃を試みましたが、レート制限があったため失敗しました。
  • 私は魔法の OTP を実験しましたが、ご想像のとおり、失敗しました。
  • OTP で競合状態をテストしましたが、やはり失敗しました。

しかし、ついに OTP をバイパスする方法を見つけました。
OTP が応答で戻ってきており、応答を確認することだけが必要なときに、さまざまなバイパスを試みるのに 30 ~ 45 分を費やしました。
そこで、OTP に入り、Web アプリケーションに飛び込みました。

 

Web アプリケーションのユーザー ダッシュボードには便利な検索ボックスが備えられており、ユーザーは注文やチケットを監視できるようになりました。
私の最初の実験では、SQL インジェクションペイロード、具体的には 1234' の入力が行われ、これが Web アプリケーションの動作に顕著な変化を引き起こしました。
この変更により私の疑惑が高まり、SQL インジェクションの可能性を検討するように。 状況がさらなる調査を必要としているように見えたので、私は問題をより徹底的に調査する必要があることに気づきました。

一重引用符を挿入した後、次のペイロードを試しました: 1234'+and+ sleep(5)
出力を推測できますか? WAF が私をブロックしました。
ここで、WAF をバイパスする方法が必要になりました。
ペイロードを次のように変更しました:   1234'/**/and/**/sleep(5) —
機能しませんでした。
次に、ペイロード内の単語を大文字にし始めました: 1234' // AND // slEEp(5)
そして再びブロックされました。
ペイロードを次のように変更しました:
1234' %2F%2A%2A%2FAnd%2F%2A%2A%2Fsleep(5) –

 

WAF によってブロックされたと思っているなら、その通りです。
再びブロックされました。
厄介な部分はスペースやコメントではありませんでした。
それは sleep() 関数の閉じ括弧であることが判明しました。
検索エンジンを調べ、いくつかのサブレディットを読んだ後、あるアイデアが私の心に浮かびました。 

ソリューション? ペイロードと URL エンコードされた Entered を組み合わせることで、ペイロードを微調整して、新たに発見した洞察を組み込みました。 

 

1234'%2F%2A%2A%2FAnd%2F%2A%2A%2F%0Asleep(5) —

 

そしてWAFがまた私をブロックしました:(

 

次に、ペイロードを次のように変更しました。

 

1234'%2F%2A%2A%2FAnd%2F%2A%2A%2F%0Asleep(5%29—

 

そして、最終ペイロードを実装した後、成功しました。

 

ほなほな。