Exploiting Blind SQL Injection manually [mod_waf bypass ] から学ぶ

ソース:

0xinfosec.medium.com

脆弱性SQLインジェクション

 

訳:

paramspiderとwaybackurlsでアプリケーションをファジングしたところ、以下のパラメータが見つかりました。

 

 

逆カンマを入力しましたが、予想どおりエラーは表示されませんでしたが、プロファイル セクションが消えました。
これは SQLI の強力な兆候であり、クエリのバランスが取れたらクエリのバランスを開始しました。
さらに、 Order by query を使用して列数の分析を開始しました。 

 

 

列の数は 18 でしたので、Union select クエリを使用して脆弱な列を見つける必要がありますが、Web アプリケーションには mod_waf というファイアウォールが適用されており、union select のクエリを実行するたびにエラー 406 が発生します。

 

 

*/*12345/**/ を使用した過去の SQL インジェクションでいつも行っていたように、さまざまな戦術を使用してこの WAF をバイパスしましたが、運悪く出力が得られませんでした。 

 

 

頭を抱えてチートシートに記載されている他のペイロードを試してみましたが、それでもうまくいきませんでした。オンライン記事を何度も読み返しました。

 

github.com

SQLI で and と 0 のキーワードを見つけました。
これによりクエリは false になりますが、SQLI クエリが実行され、出力が表示されました。 

 

 

多くの列が脆弱でした。

脆弱な列をすべて取得したので、DIOS(Dump In One Shoot) クエリを展開するときが来たので、データベース全体を 1 回のショットでダンプしました 。

 

 

管理者パスワードのログイン ページで別の SQLI を見つけましたが、今回は SQLmap を使用してそれを悪用しました。
POST リクエストをインターセプトし、リクエストを .txt ファイルに保存して SQLmap にフィードし、残りはツールに任せました。 

 

 

はい、もう一度 SQLmap を使ってデータベース全体をダンプしました。

 

ほなほな。