1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

DVWAでブラインドSQLインジェクション(SQLMAP)

Posted at

前提

目標

  • 直接的なsqlインジェクションを用いてDB情報を確認できない環境でもadminのパスワードを奪取する

手順概要

  • 通常sqlインジェクションができるか確認する
  • sqlmapを使うために必要なurlとcookie情報を取得する
  • sqlmapにcookieを当てて、脆弱性があるか確認する
  • DB~columnの情報を取得する
  • パスワードを奪取する

内容

ブラインドSQLインジェクションとは

  • SQLインジェクションはできるが、返答のデータは固定コメントで詳細が把握できない。この場合、sql命令をいくら送っても情報を集めることはできない。
  • しかし、各命令における反応の違いはキャッチできるので、反応の違いから脆弱性をみつけ攻撃することができる。
  • このように直接ではなく裏でこそこそする感じ(sqlmapの中身が分からないのでイメージ)

前準備

  • DVWAにログインする
  • セキュリティレベルを下げる。
    • メニュー下にあるDVWA securityへアクセス
    • デフォルトがimpossibleなので、このままではハッキングできない。なのでlowに変更する
# ファイルへのアクセス許可する
root@kali:~# service apache2 start
# DB_createできるようにする
root@kali:~# service mysql start 

image.png

  • SQL Injection(Blind)にアクセスする(左メニューにある)

image.png

インジェクション開始

  • まずは、ログインフォームが機能するか確認
    • 取り合えず「1」を入力しsubmitすると反応はあるが、ユーザーが存在するかどうかしか分からないので、これでは情報を盗めそうにない。
    • そこでsqlmapを用いて、命令文を流しまくって脆弱性をみつけたい

image.png

  • sqlmapを機能させるためにcookie情報を取得する。
    • 前提としてsqlmapにて命令文を流すためには、ページにアクセスできる状態である必要がある。つまり今回の場合、login_sessionを保持しているcookieが必要である。これを持っていれば、ログインしている状態となり、sqlmapからも本ページへアクセスできる。
    • 取り合えずsubmit押していれば、networkにはデータが入り、そこからcookieを確認できる。

image.png

  • sqlmapを用いて脆弱性を見つける
    • 必要なのはsubmit時のクエリ込みのurlとcookie
    • あとはsqlmap側でクエリを良しなに変更し試し打ちしてくれる。
    • sqlmapを実行した結果、脆弱性が少なくとも2つあることが分かった。
# -u:url --cookie:cokie
root@kali:~# sqlmap -u "http://localhost/DVWA-master/vulnerabilities/sqli_blind/?id=1&Submit=Submit#" --cookie="security=low; PHPSESSID=s7bf59ci7d39cbeheki8k0j3e3"
# 以降もこのコードを使うが助長なので、"SQLMAP-BASE"と略す

image.png

  • DB~columnの情報を取得する
    • 以下コマンドを実行すると以下画像のような結果になる
      • DB
        • image.png
      • table
        • image.png
      • column
        • image.png
      • user/pw
        • image.png
# DB取得
"SQLMAP-BASE" --dbs
# DB:dvwa内のテーブル
"SQLMAP-BASE" -D dvwa --tables
# DB:dvwa内のtable:usersのカラム
"SQLMAP-BASE" -D dvwa -T users --column
  • user/passwordを奪取する
    • 以下コマンドを実行する。
# DB:dvwa内のtable:usersのcolumn:passwordを解析する
"SQLMAP-BASE" -D dvwa -T users -C user,password --dump

image.png

おわり

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?