ペネトレーションしのべくん

さようなら、すべてのセキュリティエンジニア

SQL injection attack, listing the database contents on non-Oracle databases

はじめに

SQL injection attack, listing the database contents on non-Oracle databases」のWriteupです。

portswigger.net

Summary

  • Oracleを除くデータベースでは、全テーブルやそれらの列に関する情報が information_schema というデータベースに集約されている
  • SQLインジェクションを使ってこのデータベースを覗くことで、本来の目的達成に必要な情報を得られる

Writeup

今回の目的は、administratorとしてサイトにログインすることです。これまではテーブル名やカラム名が事前に提示されていましたが、今回それがありませんでした。 information_schema テーブルを覗く必要があるのだろうと推測できます。

列数確認。3でエラーが出たので2列です。

f:id:befs_anne:20210425015058p:plain

各列の型確認。どちちらも文字列のようです。

f:id:befs_anne:20210425015125p:plain

information_schema.tablestable_name を確認します。

f:id:befs_anne:20210425015009p:plain

users_ejvktj というテーブルがあることが分かりました。

f:id:befs_anne:20210425015158p:plain

次はカラム名を確認するために、 information_schema.columns を確認します。 username_idkdewpassword_cfrdue というカラムがあることが分かりました。

f:id:befs_anne:20210425015238p:plain f:id:befs_anne:20210425015256p:plain

あとはそれぞれのカラムの値を users_ejvktj テーブルから取得すればOKです。

f:id:befs_anne:20210425015325p:plain

ログインできました。

f:id:befs_anne:20210425015350p:plain