新聞中心
這篇文章將為大家詳細講解有關(guān)如何分析用戶利用.htaccess的原理篡改配置導致的安全問題,文章內(nèi)容質(zhì)量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關(guān)知識有一定的了解。
創(chuàng)新互聯(lián)成立與2013年,先為汪清等服務建站,汪清等地企業(yè),進行企業(yè)商務咨詢服務。為汪清企業(yè)網(wǎng)站制作PC+手機+微官網(wǎng)三網(wǎng)同步一站式服務解決您的所有建站問題。
前言
搞過ctf的師傅們大多都了解到,文件上傳的時候經(jīng)常使用.htaccess進行攻擊;但是只了解那淺層的概念在很多時候是行不通的,比如下面這個題;我先把源碼貼出來;借這個實例,深入理解.htaccess;走進htaccess世界;
先來審計代碼,代碼邏輯不是很難;但是如果對.htaccess理解不夠透徹的話。做出這個題還是有點難度的;這個題是一道好題; 我們通過.htaccess文件可以做到的有:網(wǎng)頁301重定向,自定義404錯誤頁面,改變文件拓展名,禁止目錄列表等等;;這里來拿改變文件拓展名來說一下;一般的新手文件上傳問題;可以上傳.htaccess的;我們可以在.htaccess中寫入如下的內(nèi)容; 1.文件包含;php_value auto_prepend_file +文件絕對路徑(默認是當前上傳的目錄);看代碼故名思意是預先包含我們的那個指定的文件;進階一下::如果我們預先包含了.htaccess文件;那么造成的效果就是我們插入的惡意代碼就會被任意包含;那么會有怎樣的效果?我們可以構(gòu)造如下的代碼php_value auto_prepend_file ".htaccess"%0a#直接在我們的.htaccess中寫入惡意代碼,直接包含;我們本地測試一下;拿著上面的那道題來測試一下;傳入;?filename=.htaccess&content=php_value%20auto_prepend_fi\%0ale%20".htaccess"%0a%23 \我們看看回顯;當我們第一次傳入的時候,發(fā)現(xiàn)沒有觸發(fā)phpinfo。那么服務器做了什么?我們本地打開相應的文件夾看看; 原來是第一步生成了.htaccess;還沒有預加載,這里我們刷新一下頁面,成功利用;我們反觀一下.htaccess看看里面生成了什么; 這里我們可以清晰的看到里面的內(nèi)容;試想,我們?nèi)绻鎸Φ氖巧蟼鞯膯栴}。并且上傳了這樣的內(nèi)容,那么也就可以不用傳入其他的文件,就可以直接生成后門(本地測試過,成功);我們利用這個直接寫入一句話木馬,那么可以直接利用;這里直接包含了.htaccess導致了所有文件都包含了木馬; 兩張圖片證明利用成功;dir可以列出很多敏感信息;打碼打碼~~~~;buu的環(huán)境,用這種方法直接打穿;;附圖如下: 2..htaccess造成的xss; 這種情況就比較有意思;我們在我們的.htaccess中加入這樣的代碼;php_value highlight.html '">'然后訪問index.php.這里發(fā)現(xiàn)成功彈窗; 這里只能彈一次,因為我們的index.php中有一個unlink函數(shù),這個函數(shù)可以刪除我們該目錄之下的非index.php文件,所以我們的.htaccess也就被刪除了; 下面檢測很多都可以進行xss; (還有一個highlight.string 也可以進行彈窗,這里隨后才加的,就沒有復現(xiàn);師傅們可以復現(xiàn)試試;) 經(jīng)過測試,如上的都可以進行彈窗進行xss; 3.htaccess篡改引擎導致源碼泄露; 實驗一下,我刪除這個題中的高亮顯示的代碼;這樣就不會顯示源碼,這里我們通過篡改服務器解析引擎,來進行顯示源碼,這里其實我們只需要將解析引擎關(guān)掉就可;在.htaccess中鍵入如下的代碼; 實驗看到這里代碼已經(jīng)顯示出來了;我們刪除了箭頭指向的地方;那里原本是highlight_file(__FILE__)現(xiàn)在刪除了之后還可以顯示代碼,是因為我們關(guān)閉了php的處理引擎,使其不能工作,所以這里就顯示了源碼;這里代碼里還有個unlink函數(shù),但是刷新多遍代碼依然沒有執(zhí)行,是因為.htaccess依然存在,存在的原因就是我們代碼失去了工作引擎,導致不會被解析;也就不會刪除我們的.htaccess代碼;可見.htaccess是神兵利器;?。?! 4.htaccess重定義報錯文件和自定義包含路徑; 這種方法也是這道題的另外一種解法,是標準的解法; 先來探究一下自定義報錯文件的情況,看代碼里面是一定會有報錯出現(xiàn)的,因為沒有fl3g.php的存在;所以我們這里修改.htaccess為php_value error_log G:\phpstudy\tmp\fl3g.php這里刷新頁面,然后發(fā)現(xiàn)報錯; 我們看看效果;進到相關(guān)目錄之下,發(fā)現(xiàn)fl3g.php,打開發(fā)現(xiàn)確實是報錯的內(nèi)容; 我們現(xiàn)在想法基本有了,利用error_log自定義報錯記錄文件,寫入shell;那么怎么寫入呢?這里我們想到;因為沒有fl3g.php文件他會報錯,這里我們自定義一個包含的路徑,如果沒有的話,那么也會進行報錯,那么服務器也就會將兩個信息同時寫入到我們的報錯文件之中;我們實驗一下,發(fā)現(xiàn)確實是的;這里使用utf7進行編碼的原因是我們寫入報錯文件的內(nèi)容會經(jīng)過html編碼,所以這里用utf7進行編碼繞過去;避免其被編碼;設(shè)置報告級別為32767的原因是報告所有可能出現(xiàn)的錯誤,確保我們可以寫入木馬;; 現(xiàn)在我們已經(jīng)在服務器里留下了一句話木馬(如上圖),現(xiàn)在就是要觸發(fā)這個木馬了。那就開始我們的第二步;因為我們這里已經(jīng)有了fl3g.php而且不會被刪除,所以這里我們可以自定義包含路徑為我們fl3g.php的路徑,這里還有個問題,我們的木馬怎么被解析,所以這里我們就要首先檢驗文件是否具有unicode的內(nèi)容,然后就是自定義編碼方式了 php_value zend.script_encoding配置服務器的相關(guān)目錄文件內(nèi)容為utf7編碼,然后包含就會進行相應的識別解碼;最后就執(zhí)行了木馬; 所以整體的流程就是;首先自定義錯誤日志進行寫馬,這里為了全面的寫入,采用32767級別的報錯;然后繞過<過濾用utf7進行編碼繞過;避免被html加密; 接著就是包含木馬了,我們自定義包含路徑為相關(guān)的路徑,然后自定義編碼方式為utf7;檢查是否有unicode;這樣就完全的包含了木馬;測試一下; 成功利用; 關(guān)于如何分析用戶利用.htaccess的原理篡改配置導致的安全問題就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。.htaccess可以做什么
.htaccess進階研究
利用.htaccess構(gòu)成后門;
名稱欄目:如何分析用戶利用.htaccess的原理篡改配置導致的安全問題
當前地址:http://fisionsoft.com.cn/article/jhgigs.html