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”頭