目標URL存在http host的頭攻擊漏洞,解決方案和驗證

原文鏈接:https://blog.csdn.net/qq_35127419/article/details/80433183

綠盟對上線項目進行掃描,目標URL存在http host的頭攻擊漏洞,解決方案和驗證

2018年05月24日 13:33:12 John_mountain 閱讀數 9027

版權聲明:本文爲博主原創文章,遵循 CC 4.0 by-sa 版權協議,轉載請附上原文出處鏈接和本聲明。

本文鏈接:https://blog.csdn.net/qq_35127419/article/details/80433183

近期在使用綠盟對線上項目進行安全掃描時,發現系統存在host頭攻擊漏洞。在此記錄解決的過程以便後期回顧

上述問題出現的原因爲在項目中使用了 request.getServerName 導致漏洞的出現 

不要使用request中的serverName,也就是說host header可能會在攻擊時被篡改,依賴request的方法是不可靠的,形如JSP頭部中的:

String path = request.getContextPath();

String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";

這樣的使用方法就會被漏洞檢測工具查出來,認定有頭攻擊漏洞。

 

修復方案:

【基於tomcat的修復方案】

打開tomcat的conf目錄中的server.xml文件,在<Host>節點做如下配置:

 

  1. <Host name="localhost"  appBase="webapps"  
  2.             unpackWARs="true" autoDeploy="true"  
  3.             xmlValidation="false" xmlNamespaceAware="false"> 
  4.           <Alias>10.1.8.158</Alias><!--10.1.8.158 本地局域網-->  
  5.    <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"  
  6.               prefix="localhost_access_log." suffix=".txt"  resolveHosts="false"  
  7.               pattern="%a %A %b %B %h %H %l %m %p %s %S %t %u %U %v %D %T" />  
  8. </Host>

此種方式僅支持Tomcat6.0.x以上版本的修復、網上有基於Filter的修復方式,試了幾個都沒起用。

 

漏洞驗證

修改完server.xml後需要重啓Tomcat服務,使用vim命令查看文件內容 確認是否已修改

所需工具:burpsuite、360

漏洞修復的步驟:

1.需要安裝burpsuite工具 burpsuite 爲滲透測試工具 具體介紹自行百度

2.設置360的代理,爲後續抓包使用

3.在Proxy頁面訪問漏洞鏈接時使用burp抓包,右鍵將抓到的數據包發送到repeater,切換到repeater選項卡點擊go,查看返回的內容

4.在Proxy頁面將抓到的數據包再次右鍵發送到repeater,修改host的值,點擊go,查看返回結果

判斷:若是修改host值後,返回的結果不一樣,則存在host頭攻擊漏洞,反之一樣則不存在。

修改host baidu.com後,如果響應包返回400 則是不存在的

 

具體驗證步驟:

1.設置360瀏覽器代理:

 

360瀏覽器:工具->代理服務器->代理服務器設置

 

設置好代理:127.0.0.1:8080 -> 確定

 

2. Burpsuite下載:

http://www.vuln.cn/8847   

 

3.開始抓包驗證漏洞

抓包方法參照http://www.vuln.cn/8847 介紹

未修改server.xml前驗證結果:

抓包:

 

將抓包結果發送至repeater,進行響應結果的查看  返回200

 

 

再次將抓包結果發送至repeater,修改其Host後進行響應結果的查看: 依然成功

 

修改server.xml之後再次進行漏洞測試:

抓包:

 

將抓包結果發送至repeater,進行響應結果的查看:返回200

再次將抓包結果發送至repeater,修改其Host後進行響應結果的查看: 返回400

結果:修改其host請求頭之後,響應失敗。

修改host後請求結果爲400     host請求攻擊驗證通過

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