Closed2
SQLインジェクションを試す。
目的
Tryhackmeを実施し、SQLインジェクションを試みる。
SQLインジェクションとは
SQLの実行方法についてセキュリティ上の不備がある場合に発生する脆弱性。
SQLインジェクションにより、下記の脅威が発生しうる。
- データベースに蓄積された情報の奪取
- 認証のバイパス
- データベースに蓄積された情報の改ざん
- ストアドプロシージャ等を利用したOSコマンドの実行
参考資料
-
IPA "安全なウェブサイトの作り方 - 1.1 SQLインジェクション"
https://www.ipa.go.jp/security/vuln/websecurity-HTML-1_1.html -
Tryhackme "Game Zone"
https://tryhackme.com/room/gamezone#
sqlmap
SQLインジェクションのペネトレーションテストツール。
インプットとしたHTTPリクエストをベースとしてリクエストを細工し、SQLインジェクションを試みる。
sqlmapはKali Linuxにデフォルトでインストールされている模様。
使用例
-
BurpSuiteを用いてリクエストをInterceptする。
-
InterceptしたHTTPリクエストをファイルに保存する。(ここではrequest.txt)
-
Kali Linuxで下記を実行する。
sqlmap -r request.txt --dbms=mysql --dump
-r
リクエストファイル名
--dbms
DBMS名
--dump
SQLインジェクション結果をダンプ
他にも下記のlevel
やrisk
の値を大きくすることで、より多くのpayloadを実行することが可能。
--level
SQLインジェクションpayloadのタイプを指定。(1-3まで指定可能。デフォルト値は1)
--risk
SQLインジェクションpayloadの種類数を指定。(1-5まで指定可能。デフォルト値は1)
- あとはよろしくやってくれる。
Tryhackmeで実行したところ、いくつかのSQLインジェクションに成功したようだ。
そして、情報も奪取。
SHA256でハッシュ化したパスワードとそれに対応するユーザ名も奪取。(これがTryhackmeでの回答となった)
このスクラップは2022/10/22にクローズされました