安全檢測80端口Web服務攻擊痕跡(上)

  • web站點默認80爲服務端口,關於它的各種安全問題不斷的發佈出來,這些漏洞中一些甚至允許攻擊者獲得系統管理員的權限進入站點內部,以下是Zenomorph對一些80端口攻擊方式的痕跡的研究,和告訴你怎樣從日誌記錄中發現問題。  
    [詳細描述]  
    下面部分通過一些列子,展示對web服務器和其上的應用程序普遍的攻擊,和其留下的痕跡,這些列子僅僅是代表了主要的攻擊方式,並沒有列出所有的攻擊形式,這部分將詳細描述每種攻擊的作用,和其怎樣利用這些漏洞進行攻擊。  
    (1)"." ".." 和 "..." 請求  
    這些攻擊痕跡是非常普遍的用於web應用程序和web服務器,它用於允許攻擊者或者蠕蟲病毒程序改變web服務器的路徑,獲得訪問非公開的區域。大多數的CGI程序漏洞含有這些".."請求。  
    Example:  
    http://host/cgi-bin/lame.cgi?file=../../../../etc/motd  
    這個列子展示了攻擊者請求mosd這個文件,如果攻擊者有能力突破web服務器根目錄,那麼可以獲得更多的信息,並進一步的獲得特權。  
    (2)"%20" 請求  
    %20是表示空格的16進制數值,雖然這個並不代表你能夠利用什麼,但是在你瀏覽日誌的時候會發現它,一些web服務器上運行的應用程序中這個字符可能會被有效的執行,所以,你應該仔細的查看日誌。另一方面,這個請求有時可以幫助執行一些命令。  
    Example:  
    http://host/cgi-bin/lame.cgi?page=ls%20-al|  
    這個列子展示了攻擊者執行了一個unix的命令,列出請求的整個目錄的文件,導致攻擊者訪問你係統中重要的文件,幫助他進一步取得特權提供條件。  
    (3)"%00" 請求  
    %00表示16進制的空字節,他能夠用於愚弄web應用程序,並請求不同類型的文件。  
    Examples:  
    http://host/cgi-bin/lame.cgi?page=index.html  
    這可能是個有效的請求在這個機子上,如果攻擊者注意到這個請求動作成功,他會進一步尋找這個cgi程序的問題。  
    http://host/cgi-bin/lame.cgi?page=../../../../etc/motd  
    也許這個cgi程序不接受這個請求,原因在於它要檢查這個請求文件的後綴名,如:html.shtml或者其他類型的文件。大多數的程序會告訴你所請求的文件類型無效,這個時候它會告訴攻擊者請求的文件必須是一某個字符後綴的文件類型,這樣,攻擊者可以獲得系統的路徑,文件名,導致在你的系統獲得更多的敏感信息  
    http://host/cgi-bin/lame.cgi?page=../../../../etc/motd%00html  
    注意這個請求,它將騙取cgi程序認爲這個文件是個確定的可接受的文件類型,一些應用程序由於愚蠢的檢查有效的請求文件,這是攻擊者常用的方法。  
    (4)"|" 請求  
    這是個管道字符,在unix系統用於幫助在一個請求中同時執行多個系統命令。  
    Example:  
    # cat access_log| grep -i ".."  
    (這個命令將顯示日誌中的“..“請求,常用於發現攻擊者和蠕蟲攻擊)  
    常可以看到有很多web應用程序用這個字符,這也導致IDS日誌中錯誤的報警。  
    在你的程序仔細的檢查中,這樣是有好處的,可以降低錯誤的警報在入侵檢測系統中。  
    下面給出一些列子:  
    http://host/cgi-bin/lame.cgi?page=../../../../bin/ls|  
    這個請求命令執行,下面是一些變化的列子  
    http://host/cgi-bin/lame.cgi?page=../../../../bin/ls%20-al%20/etc|  
    這個請求在unix系統中列出/etc目錄的所有文件  
    http://host/cgi-bin/lame.cgi?page=cat%20access_log|grep%20-i%20"lame"  
    這個請求cat命令的執行並且grep命令也將執行,查詢出”lame"  
    (5)";" 請求  
    在unix系統,這個字符允許多個命令在一行執行  
    Example:  
    # id;uname -a  
    (執行id命令後,緊跟着執行uname命令)  
    一些web程序用這個字符,可能導致在你的IDS日誌中失敗的警告,你應該仔細的檢查你的web程序,讓你的IDS警報失敗的機率降低。  
    (6)"<" 和 ">" 請求  
    應該檢查你的日誌記錄中這兩個字符,衆多的原因中,首要的一個是這個字符表明了添加數據在文件中  
    Example 1:  
    # echo "your hax0red h0 h0" >> /etc/motd (請求寫信息在motd這個文件中)  
    一個攻擊者可以容易的用象上面的這個請求篡改你的web頁面。比如著名的RDS exploit常被攻擊者用於更改web主頁面。  
    Example 2:  
    http://host/something.php=<b>Hi%20mom%20Im%20Bold!</b>  
    你會注意到這裏html語言的標誌,他同樣用了“〈”,“〉”字符,這種攻擊不能導致攻擊者對系統進行訪問,它迷惑人們認爲這是個合法的信息在web站點中(導致人們在訪問這個聯結的時候訪問到攻擊者設定的地址,這種請求可能會被轉變成16進制的編碼字符形式,使攻擊的痕跡不那麼明顯)  
    (7)"!"請求  
    這種字符請求常用語對SS(Server Side Include) I進行攻擊,如果攻擊者迷惑用戶點擊被攻擊者設定的聯結,和上面的一樣。  
    Example:  
    http://host1/something.php=<!%20--#include%20virtual="http://host2/fake-article.html"-->  
    這個列子是攻擊者可能會做的,它讓一個host2站點上的文件看起來是來自於 host1上面的(當然,需要訪問者訪問這個被攻擊者設定的聯結。這種請求可能被轉化成16進制的編碼僞裝,不易發現)  
    同時,這種方式也可以以web站點的權限執行命令  
    Example:  
    http://host/something.php=<!%20#<!--#exec%20cmd="id"-->  
    這個列子在遠程的系統上執行“id"的命令,它將顯示這個web站點用戶的id,通常是”nobody"或者“www"  
    這種形式也允許包含隱藏文件。  
    Example:  
    http://host/something.php=<!%20--#include%20virtual=".htpasswd"-->  
    這個隱藏文件.htpasswd不會被顯示出來,Apache建立的規則會拒絕這種以.ht 形式的請求,而SSI標誌會繞過這種限制,並導致安全問題  
    (8)"<?" 請求  
    這種攻擊用於試圖在遠程的web應用程序中插入PHP程序,它可能允許執行命令,這取決於服務器的設置,和其他起作用的一些因素(比如php設置爲安全模式)  
    Example: http://host/something.php=<? passthru("id");?>  
    在某些簡單的php應用程序中,它可能會在遠程系統上以web站點用戶的權限執行本地命令  
    (9)"`" 請求  
    這種字符後面常用在perl中執行命令,這個字符在web應用程序中不是經常的使用,所以,如果看到它在你的日誌中,應該非常小心  
    Example:  
    http://host/something.cgi=`id`  
    一個perl寫的有問題的cgi程序,會導致執行id命令  
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章