# Web SQL injection Lab18
題目敘述可知這題是透過 SQL Injection 注入 payload,讓伺服器去幫我們對外發出請求(像是 DNS 查詢),我們就能知道注入成功。
利用 SQL injection 讓伺服器對 Burp Collaborator 提供的域名發出 DNS 查詢,成功即過關。
---
一樣先進入網站並攔截請求。


在這個網頁當中我嘗試瀏覽一下,沒有找到其他有趣的東西,但在網頁的下方,有個 Check stock,點擊後會出現 POST 請求。


而在本題中的關鍵就是在於查詢庫存的行為中,所以可以透過這個查詢的行為來嘗試竊取我們要的東西,所以我嘗試輸入 SQL 的查詢語法。
```
UNION SELECT NULL
```

但在這個網頁中,防火牆會擋下跟 SQL 有關的語法,所以我們要來嘗試繞過防火牆,因此我們用 Hackvertor 將 payload 轉成 hex entity(繞過 WAF)



這時防火牆確實沒有擋住我們,所以我們可以看到庫存數,而我們需要使用者帳號密碼,意味著我們需要兩個欄位,這裡加上第二個 NULL。

看來一次不能回傳多個欄位,但在前面的章節有學習到將兩筆資料串連起來,所以:
```
1 UNION SELECT username || '~' || password FROM users
```
將使用者帳密用~串聯起來一次輸出,所以我們再次察看結果。

獲得帳密,拿去登入:
`administrator:ivd1p8wj7e787rwxstrb`

---