Yo homies、。それでは始めよう

セカンドオーダーSQLインジェクションについて説明する前に、SQLインジェクションとは何かについて話さなければなりません

SQLインジェクションとは何ですか

SQLインジェクションは、悪意のあるSQLクエリをアプリケーションに注入する攻撃です

SELECT * FROM `users` WHERE `name`='Isuk4' AND `pass`='Isuk4';

しかし、もし攻撃者がこれにSQLクエリを挿入したらどうなるか

SELECT * FROM `users` WHERE `name`=' ' OR '1' AND `pass`=' ' OR '1';

だから、もうわかっていると思います。www

では、セカンドオーダーSQLインジェクションに深く入ってみましょう

セカンドオーダー攻撃とは何ですか

第1オーダー攻撃(つまり、どの第1オーダー攻撃でも)では、ペイロードは直ちに実行されますが、セカンドオーダー攻撃では異なります。セカンドオーダー攻撃では、ペイロードは格納され、その後に実行されます。🤢🤢

えーと、これをはっきり言わせてください。セカンドオーダー攻撃では、ペイロードが注入され、その後にアプリケーション内の他のページや他の機能で実行されます。

わかったと思います 😎

では、セカンドオーダーSQLインジェクションの例のページをダウンロードしました

以下はリンクです — https://github.com/riyazwalikar/sql-injection-training-app

OK、それをセットアップし、phpMyAdminに行ってみると、adminというユーザーがいることがわかりました。私の使命は、adminのパスワードを取得し、adminユーザーを取得することです(たとえば、phpMyAdminを使用してもできます)

では、セカンドオーダーの例のページに行きましょう

OK、今、このウェブサイトにセカンドオーダーのSQLインジェクションがあるかどうかを調べています(笑、これは例のアプリケーションです)

シングルクォートを入力に追加してテストしました

OK、このページには脆弱性がありません。しかし、「パスワードの変更」ページに行ったら、これが表示されました

えーと、脆弱性を見つけました。だから、私の目標を達成する必要があります

だから、そのためにペイロードを注入します

' or 1 in (select password from users where username='admin') -- //

うん、これで必要なのはMD5でこれを復号化するだけです

yeeeah baby

これでおしまいです。しかし、これは簡単な例です。実際のアプリケーションは異なり、脆弱性を見つけるのが難しいことを覚えておいてください:-

so Ima off

echo "GGS! Ima off"