web項目中常見漏洞及解決方案

1.X-Frame-Options劫持

漏洞類型:內容欺騙

描述:

點擊劫持(ClickJacking)是一種視覺上的欺騙手段。攻擊者使用一個透明的、不可見
的iframe,覆蓋在一個網頁上,然後誘使用戶在該網頁上進行操作,此時用戶將在不知
情的情況下點擊透明的iframe頁面。通過調整iframe頁面的位置,可以誘使用戶恰好點
擊在iframe頁面的一些功能性按鈕上。
HTTP 響應頭信息中的X-Frame-Options,可以指示瀏覽器是否應該加載一個 iframe
中的頁面。如果服務器響應頭信息中沒有X-Frame-Options,則該網站存在
ClickJacking攻擊風險。網站可以通過設置 X-Frame-Options 阻止站點內的頁面被其他
頁面嵌入從而防止點擊劫持。

解決方案: 

方案1.

修改web服務器配置,添加X-Frame-Options響應頭。賦值有如下三種:
1、DENY:不能被嵌入到任何iframe或者frame中。
2、SAMEORIGIN:頁面只能被本站頁面嵌入到iframe或者frame中。
3、ALLOW-FROM uri:只能被嵌入到指定域名的框架中。
例如:
apache可配置http.conf如下:
<IfModule headers_module> 
Header always append X-Frame-Options "DENY" 
</IfModule> 

方案2.

修改web.xml

<filter>
    <filter-name>httpHeaderSecurity</filter-name>
    <filter-class>org.apache.catalina.filters.HttpHeaderSecurityFilter</filter-class>
    <init-param>
        <param-name>antiClickJackingEnabled</param-name>
        <param-value>true</param-value>
    </init-param>
    <init-param>
        <param-name>antiClickJackingOption</param-name>
        <param-value>sameorigin</param-value>
    </init-param>
    <init-param>
        <param-name>antiClickJackingUri</param-name>
        <param-value>https://baidu.com/</param-value>
    </init-param>
    <async-supported>true</async-supported>
</filter>

<filter-mapping>
    <filter-name>httpHeaderSecurity</filter-name>
    <url-pattern>/*</url-pattern>
    <dispatcher>REQUEST</dispatcher>
</filter-mapping>

2.通過HTTP獲取遠端WWW服務信息

漏洞詳情 Server is running 
Version: 
[Apache-Coyote/1.1] 
漏洞類型:遠程信息泄露
詳細描述:本插件檢測遠端HTTP Server信息。這可能使得攻擊者瞭解遠程系統類型以便進行下一
步的攻擊。
解決方案:tomcat服務器修改config/server.xml文件

3.檢測到目標URL存在http host頭攻擊漏洞

命令執行類型:系統命令執行
詳細描述:爲了方便的獲得網站域名,開發人員一般依賴於HTTP Host header。例如,在php裏用
_SERVER["HTTP_HOST"]。但是這個header是不可信賴的,如果應用程序沒有對host
header值進行處理,就有可能造成惡意代碼的傳入。
解決方案:web應用程序應該使用SERVER_NAME而不是host header。
在Apache和Nginx裏可以通過設置一個虛擬機來記錄所有的非法host header。在
Nginx裏還可以通過指定一個SERVER_NAME名單,Apache也可以通過指定一個
SERVER_NAME名單並開啓UseCanonicalName選項。

tomcat將Host裏的name修改爲靜態的域名,如下:

name將localhost改爲靜態ip

4.缺少“X-Content-Type-Options” 頭、缺少“X-XSS-Protection” 頭

《1.》TTP X-XSS-Protection響應標頭是Internet Explorer,Chrome和Safari的一項功能,可在檢測到反映的跨站點腳本(XSS)攻擊時阻止頁面加載。雖然這些保護在現代瀏覽器中很大程度上是不必要的,當站點實現Content-Security-Policy禁用內聯JavaScript('unsafe-inline')的強大功能時,它們仍然可以爲尚未支持CPS的舊版Web瀏覽器的用戶提供保護。

語法:

X-XSS-Protection: 0
X-XSS-Protection: 1
X-XSS-Protection: 1; mode=block
X-XSS-Protection: 1; report=<reporting-uri>

解決方案:Apache

<IfModule mod_headers.c> 
  Header set X-XSS-Protection "1; mode=block" 
</IfModule>

《2.》描述:X-Content-Type-Options 響應首部相當於一個提示標誌,被服務器用來提示客戶端一定要遵循在 Content-Type 首部中對MIME類型的設定,而不能對其進行修改。這就禁用了客戶端的 MIME類型嗅探行爲,換句話說,也就是意味着網站管理員確定自己的設置沒有問題。

這個消息首部最初是由微軟在 IE 8 瀏覽器中引入的,提供給網站管理員用作禁用內容嗅探的手段,內容嗅探技術可能會把不可執行的 MIME 類型轉變爲可執行的 MIME 類型。在此之後,其他瀏覽器也相繼引入了這個首部,儘管它們的 MIME 嗅探算法沒有那麼有侵略性。

nosniff 只應用於 "script" 和 "style" 兩種類型。事實證明,將其應用於圖片類型的文件會導致與現有站點衝突。

Header type: Response header

Forbidden header name:no

語法:X-Content-Type-Options: nosniff

指令:nosniff

下面兩種情況的請求將被阻止:

  • 請求類型是"style" 但是 MIME 類型不是 "text/css",
  • 請求類型是"script" 但是 MIME 類型不是 JavaScript MIME類型。

tomcat配置“X-Content-Type-Options” 頭解決方案:

  打開tomcat/conf/web.xml添加如下代碼(低版本tomcat有可能缺少HttpHeaderSecurityFilter.class文件,可以下載高本版tomcat在catalina.jar中):

<filter>
        <filter-name>httpHeaderSecurity</filter-name>
        <filter-class>org.apache.catalina.filters.HttpHeaderSecurityFilter</filter-class>
        <init-param>
            <param-name>antiClickJackingOption</param-name>
            <param-value>SAMEORIGIN</param-value>
        </init-param>
        <async-supported>true</async-supported>
    </filter>
    
    <filter-mapping>
        <filter-name>httpHeaderSecurity</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>


描述缺少“X-Content-Type-Options”頭

 

算-Content-Type-Options”頭缺少“X-Content-Type-Options”頭缺少“X-Content-Type-Options”頭

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章