• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      防御漏洞 強化Web服務器安全

      2020-12-30 11:59:05河南劉建臣
      網(wǎng)絡安全和信息化 2020年4期
      關鍵詞:配置文件后綴黑客

      ■ 河南 劉建臣

      防范Apache的常見漏洞

      Apache可謂是最常見的Web服務器軟件之一,它可以高效運行在幾乎所有的主機平臺上,可以安全可靠的將Perl/Python等解釋器編譯到服務器中。但Apache本身并非無懈可擊,其依然存在可能被黑客惡意利用的漏洞。

      例如,當訪問諸如“https://www.xxx.com/hello.jpg.qqq”等網(wǎng)址時,在數(shù)據(jù)包的Headers頭中的“Content-Type”欄中會顯示“image/jepg”信息,即Apache會根據(jù)訪問文件的后綴來查找對應的MIME進行解析。

      Apache可以識別很多MIME類型,但它終究無法識別所有類型的文件,因此在Apache底層代碼中定義了默認的規(guī)則,允許文件可以存在以點號分隔的多個后綴,當右邊的后綴無法識別時,可以繼續(xù)向左側(cè)識別,直到能夠找到可以識別的后綴為止。

      例 如,請 求“getdata.php.ttt”文件時,對于“.ttt”后綴是無法識別的,而向左則可以識別“.php”的后綴,因此該文件就會被Apache當做PHP腳本來執(zhí)行。

      有些開發(fā)人員可能不知曉該問題,在設計程序時雖然對文件后綴進行上傳限制,不允許上傳諸如“.php”“asp”之類的文件,來防止黑客入侵。

      但是黑客可能會上傳“opendoor.php.xxx”之 類的文件,來避開上述限制。由于Apache不知道后綴為“xxx”文件的類型,就會向左進行識別,將其識別為“.php”文件來執(zhí)行。

      解決的方法很簡單,打開Apache的配置文件,在其中如果發(fā)現(xiàn)“AddHandler application/x-httpd-php.php”行,這表示PHP添加了處理器,就會導致該漏洞的發(fā)生,因此將其刪除即可杜絕該漏洞。

      一些Apache服務器可能存在目錄遍歷漏洞,即對用戶輸入的文件名稱沒有進行完善的安全性驗證,使其可以利用一些特殊字符來避開服務器的安全性檢測,進而訪問任意的文件,甚至可以執(zhí)行各種系統(tǒng)命令。

      默認的Apache配置文件是存在該問題的。例如,安裝好Apache之后,直接在瀏覽器訪問其根目錄,是可以查看其中所有文件。為了防止該漏洞,可以打開“http.conf”文件,找到“Options+Indexes+FollowSymLinks+ExecCGI”行,將其修 改為“Options-Indexes+FollowSymLinks+ExecCGI”,就可以修改該漏洞。

      防范Tomcat遠程執(zhí)行漏洞

      Tomcat是一個輕量級的免費開放源代碼的Web應用服務器,在中小型系統(tǒng)和并發(fā)訪問較小的場景中應用較為廣泛。Tomcat雖然是Apache服務器的擴展組件,但其實際作為一個與Apache獨立的進程單獨運行的。對于Tomcat 7.0.0-7.0.79(以及7.0.81)等版本來說,如果其運行在Windows主機上,并且啟用了HTTP PUT請求方法,那么惡意用戶就可通過構造請求信息,向服務器上傳包含任意代碼的JSP文件,造成任意代碼執(zhí)行,危害十分嚴重。

      例如,打開Tomcat安裝目錄下的“confweb.xml”文件,其中“org.apache.catalina.servlets.DefaultServlet”欄中如果存在“readonly”和“false”行,說明開啟了HTTP PUT方法,黑客可能遠程上傳木馬文件對服務器進行非法控制。處理的方法是將Tomacat升級到最新版本,并清除上述配置項目,禁用HTTP PUT方法。

      防御Tomcat的WAR部署漏洞

      War包一般是在進行Web開發(fā)時,通常作為一個網(wǎng)站Project下所有源碼的集合,里面包含前臺HTML/CSS/JS的代碼,也包含Java的代碼。當遠程部署WAR包時,可以采用多種方法實現(xiàn)。例如,使用XFTP工具遠程復制,使用Apache Ant自動部署等。

      另外,可以使用Tomcat提供的Manager來部署War包。當進入Tomcat的后臺管理界面,可以顯示Tomcat的應用程序列表,允許對目標項目進行管理、開啟、關閉、重新加載等操作,這樣在每次部署項目時無需重啟Tomcat。

      在項目列表下部選擇“WAR file to deploy”項,選擇合適的WAR文件,將其上傳部署到Tomcat的項目列表中。使用該方法雖然有利于項目的使用,不過也帶來了一定的安全隱患,如果登錄密碼過于簡單,黑客就很容易登錄進來,并將JSP木馬打包成WAR文件,利用上述部署方式將其上傳到服務器中,來對服務器進行滲透攻擊。

      為了避免上述問題,可以針對Tomcat創(chuàng)建低權限的用戶,并禁止其遠程登錄。

      例如,執(zhí)行“useradd tomcat_user”,創(chuàng)建名 為“tomcat_user”的用戶,它就會在“/home”目錄下生成一個“tomcat_user”的用戶目錄,并生成一個名為“tomcat_userr”的用戶組。執(zhí)行“passwd tomcat_user”命令,可以設置密碼。而執(zhí)行“chown test_tomcat var/tomcat/default”命令,可以將Tomcat擁有者更改為“tomcat_user”。

      執(zhí)行“chgrp-R test_tomcat var/tomcat/default”命令,更改Tomcat的用戶組為“test_tomcat”。執(zhí)行“chmod -R g+w var/tomcat/default”命令,為目錄所屬組添加寫的權限。

      此外,還可以增加對于本地和基于證書的身份驗證,部署賬戶鎖定機制,并在“CATALINA_HOMEconfweb.xml”文件中設置鎖定機制和時間超時限制。針對manager-gui/managerstatus/manager-script等目錄頁面設置最小權限訪問限制。對于后臺管理頁面,可以設置復雜的密碼來防止黑客輕易破解。

      防御Nginx的文件解析漏洞

      利用Nginx這款Web服務器軟件,可以作為HTTP代理服務器和反向代理服務器,支持通過緩存加速訪問,可以完成簡單的負載均衡和容錯,支持包過濾功能、支持SSL,可以進行自定義配置,支持虛擬主機等功能。Nginx同樣存在不可忽視的文件解析漏洞,這其實是在Nginx解析文件后綴時,由于內(nèi)部機制導致的問題。

      例如,當訪問諸如“http://www.xxx.com/fp.jpg/t.php”網(wǎng)址時,Nginx對提交的文件信息進行分析,發(fā)現(xiàn)存在PHP文件,就將其轉(zhuǎn)交給PHP模塊進行處理,PHP模塊識別“fp.jpg/t.php”文件并不存在,便會刪除其中的“t.php”,發(fā)現(xiàn)“fp.jpg”存在,就將其作為執(zhí)行的文件,但這并不是PHP文件,就會返回“Access denied”的提示信息。對于“php.ini”配置文件來說,其中的“cgi.fix_pathinfo”的默認值為1,該參數(shù)用來設置CGI模式下是否為PHP設置絕對路徑或者“PATH_PATH”信息,該值為1表示絕對路徑“PATH_TRANSLATED”的值為“SCRIPT_FILENAME”,并且設置“PATH_INFO”信息。

      這樣,PHP模塊就會根據(jù)提交的文件路徑,按照上述方式進行分析。PHP5-FRM的配置文件新增了名為“security.limit_extensions”的參數(shù),可以用來限制可執(zhí)行的文件后綴。

      執(zhí)行“sudo find/ -name php-frm.conf”命令,來查找該配置文件,如果在其中的“security.limit_extensions”行中添 加“.jpg”等的話,那么PHP就會認為JGP也是合法的文件。當訪問“http://www.xxx.com/fp.jpg/t.php”地址時,就會順利通過。為了防御上述可能存在的解析漏洞,可以將“php.ini”文件中的“cgi.fix_pathinfo”的值設置為0,禁止PHP獲取“PATH_INFO”的信息。

      將“php-frm.conf”文件中的“security.limit_extensions=”欄中只保存“.php .php3 .php4 .php5.php7”等信息,讓PHP只能解析指定的文件擴展名。圖片最好保存到圖片服務器上,使其和業(yè)務服務器分隔開。即使不能分隔,在處理上傳的圖片時,則僅僅對圖片進行處理而不要保存。也不要提供對原圖的訪問,所有圖片在處理時都要經(jīng)過程序處理,避免黑客利用圖片后綴執(zhí)行非法操作。

      某些版本的Nginx會將諸如“http://www.xxx.com/1.jpg/w.php”“http://www.xxx.com/1.jpg%00w.php”之類的請求解析為PHP文件執(zhí)行。處理方法是將Nginx的版本號隱藏起來,打開“nginx.conf”配置文件,將其中的“server_tokens”的值設置為“off”即可。

      防范Nginx的CRLF漏洞

      在HTTP數(shù)據(jù)包中存在回車和換行符,如果黑客加以惡意利用,就會變成CRLF注入漏洞攻擊。CRLF就是“回車+換 行”(即“ ”)的簡稱,其十六進制編碼分別為0x0d和0x0a。在HTTP協(xié)議中,HTTP header與HTTP Body是使用兩個CRLF分隔的,瀏覽器根據(jù)這兩個CRLF來提取對應的HTTP內(nèi)容并加以顯示。因此黑客如果能夠控制HTTP消息頭中的字符,并在其中注入一些惡意的換行,就可以注入惡意的會話Cookie或HTML代碼。

      CRLF漏洞常出現(xiàn)在Location與Set-cookie消息頭中。例如,有些網(wǎng)站會在HTTP消息頭中的“Location”欄中添加“http://www.xxx.com”之類的地址,來實現(xiàn)頁面重定向跳轉(zhuǎn)操作。但如果在其中利用“%0a”字符添加了換行符,那么就會給訪問者設置了一個SESSION,造成一個固定會話漏洞。

      更為嚴重的是,如果同時注入兩個CRLF就會造成反射型XSS攻擊。例如,對于“http://www.xxx.com/?url=xxx”,如果黑客利用該方法構造成特殊語句,就可以形成在HTTP消息頭中嵌入非法的語句,當通過瀏覽器進行提交時,就會造成XSS攻擊。

      防御CRLF漏洞的方法并不復雜,只需在設計網(wǎng)站程序時,對用戶提交的數(shù)據(jù)進行過濾,將“" "”“" "”之類的特殊字符進行清理即可。

      防御Nginx的其他漏洞

      Nginx同樣可能存在目錄遍歷漏洞,究其原因是配置不當所導致的。它的產(chǎn)生和配置文件“nginx.conf”中的“autoindex”參數(shù)設置相關,其默認值為“off”,即目錄瀏覽功能處于關閉狀態(tài),進入“/etc/nginx/sitesavailable/defauot”目錄,打開“nginx.conf”文件,如果發(fā)現(xiàn)其中的“autoindex”為“on”,就說明存在該漏洞,解決方法很簡單,將其值設置為“off”即可。

      因為Nginx可以作為反向代理使用,對于動態(tài)數(shù)據(jù)會被“proxy_pass”傳遞給后端端口,靜態(tài)數(shù)據(jù)存儲在“/home”目錄下,該目錄在URL中的名稱為“files”,這樣就需要設置目錄的別名。例如在配置文件中存在“l(fā)ocation/files {”“alias/home/;”“}”等內(nèi)容。當訪問諸如“http://www.xxx.com/files/welcome.txt”之類的網(wǎng)址時,就可以獲取“/home/welcome.txt”文 件。但是URL中的“/files”沒有添加“/”的后綴,在“alias”中的設置的“/home/”是存在該后綴的,這樣就導致了訪問者可以從“/home”跳轉(zhuǎn)到其上層目錄,造成可以下載任意文件漏洞。解決方法是在“l(fā)ocation”和“alias”中的值都不要添加“/”后綴,或者都添加該后綴即可。

      SSRF(Server-Side Request Forgery,服務器端請求偽造)是一種由攻擊者構造形成由服務端發(fā)起請求的安全漏洞,一般情況下,SSRF攻擊的目標是從外網(wǎng)無法訪問的內(nèi)部系統(tǒng)。它是利用存在缺陷的Web應用作為代理的遠程和本地的服務器,來進行滲透操作。代理服務器常常遭到此類攻擊,往往是利用服務器端發(fā)起。因此可以請求到與其相連而與外網(wǎng)隔絕的內(nèi)部系統(tǒng)。

      例如,Nginx配置文件中就存在“proxy_pass http://IP”之類的信息,使其可以作為代理服務器使用。如果攻擊者可以操控該IP,并將其修改成內(nèi)網(wǎng)IP地址,即可造成服務端請求偽造漏洞。例如,對外網(wǎng)、內(nèi)網(wǎng)、本地進行端口掃描,某些情況下端口的描述信息會顯示出來,攻擊者就可以借機對內(nèi)網(wǎng)進行滲透。應對此類攻擊的方法是對返回信息進行過濾,驗證遠程服務器對請求的響應是比較容易的方法。

      如果Web應用是去獲取某一種類型的文件,那么就必須在把返回結果展示給用戶之前,對其進行驗證處理,檢測其是否符合標準。另外,對相關的錯誤信息進行統(tǒng)一化處理,避免攻擊者根據(jù)錯誤信息來判斷遠端服務器的端口狀態(tài)。對用戶訪問的端口進行限制,例如限制請求的端口為HTTP常用端口等。啟用內(nèi)網(wǎng)IP黑名單功能,避免Web應用被用來非法獲取內(nèi)網(wǎng)數(shù)據(jù)。禁用不需要的網(wǎng)絡協(xié)議,例如僅僅允許HTTP和HTTPS請求,盡量降低安全風險。

      在Nginx的Range Filter中存在整數(shù)溢出漏洞,攻擊者可以通過帶有特殊構造的Range的HTTP頭的惡意請求引發(fā)這個整數(shù)溢出漏洞,并導致敏感信息泄露。HTTP的Range允許客戶端分批次請求資源的一部分,如果服務端資源較大,可以通過Range來并發(fā)下載。如果訪問資源時網(wǎng)絡中斷,可以斷點續(xù)傳。Range設置在HTTP請求頭中。

      該漏洞原理上其實就是對整數(shù)溢出漏洞的惡意利用,從Cache文件中獲取Cache頭的信息。在某些配置的情況下,Cache頭中會存在IP地址信息,造成信息泄露。Nginx模塊及常用的第三方模塊本身無法通過這個整數(shù)溢出來對內(nèi)存進行操作或遠程執(zhí)行。防御該漏洞的方法是升級Nginx版本,如果不能升級,可在Nginx配置文件中添加“max_ranges 1”行,禁用Multipart Range功能。

      猜你喜歡
      配置文件后綴黑客
      歡樂英雄
      多少個屁能把布克崩起來?
      提示用戶配置文件錯誤 這樣解決
      網(wǎng)絡黑客比核武器更可怕
      搭建簡單的Kubernetes集群
      互不干涉混用Chromium Edge
      忘記ESXi主機root密碼怎么辦
      河北霸州方言后綴“乎”的研究
      TalKaholic話癆
      說“迪烈子”——關于遼金元時期族名后綴問題
      友谊县| 和林格尔县| 沅江市| 武冈市| 和林格尔县| 奉节县| 抚宁县| 彰化市| 泉州市| 枝江市| 吕梁市| 十堰市| 仪征市| 大厂| 周口市| 永宁县| 安陆市| 诏安县| 临高县| 江门市| 南丹县| 哈尔滨市| 张家口市| 岚皋县| 太仆寺旗| 萍乡市| 田东县| 靖边县| 仲巴县| 托克托县| 太康县| 麻城市| 宜川县| 永康市| 洞头县| 息烽县| 泊头市| 灵石县| 容城县| 陆川县| 时尚|