Appscan漏洞之Authentication Bypass Using HTTP Verb Tampering


  本次針對 Appscan漏洞 Authentication Bypass Using HTTP Verb Tampering(HTTP動詞篡改導致的認證旁路)進行總結,如下:

1. Authentication Bypass Using HTTP Verb Tampering

1.1、攻擊原理

  不安全的HTTP方法PUT/DELETE/MOVE/COPY/TRACE/PROPFIND/PROPPATCH/MKCOL/LOCK/UNLOCK允許攻擊者修改web服務器文件、刪除web頁面、甚至上傳web shell獲取用戶的身份信息等,它們都有可能制造出嚴重的安全漏洞,開發人員需要對HTTP請求類型進行控制,防止服務器資源被非授權篡改。

1.2、案例分析

  APPSCAN用無意義的HTTP動詞bogus向服務端發起請求,系統正常返回,顯示此系統未對http請求類型進行判斷限制,存在HTTP動詞篡改漏洞。

BOGUS /fams/admin/j_security_check HTTP/1.1
Accept-Language: en-US
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Referer: http://xxx-core-stg1.paic.com.cn/fams/
Host: xxx-core-stg1.paic.com.cn
User-Agent: Mozilla/4.0 (compatible; MSIE 9.0; Win32) 
HTTP/1.1 200 OK
Server: Apache-Coyote/1.1
Content-Type: text/html;charset=utf-8
Content-Length: 477
Date: Wed, 14 Mar 2018 01:56:23 GMT

1.3、防御建議

  1. 限制http method,如僅允許GET、POST等類型

  2. 使用J2EE標准中提供的Filter方法進行請求類型過濾

  3. 檢查tomcat的web.xml,weblogic的weblogic.xml配置,對請求類型進行限制,如:

<security-constraint> 
  <web-resource-collection>
    <url-pattern>/*</url-pattern>
    <http-method>PUT</http-method>
    <http-method>DELETE</http-method>
    <http-method>HEAD</http-method>
    <http-method>OPTIONS</http-method>
    <http-method>TRACE</http-method>
  </web-resource-collection>
  <auth-constraint></auth-constraint>
</security-constraint> 
<login-config>
  <auth-method>BASIC</auth-method>
</login-config>

  4. Struts中使用request.getMethod方法添加請求攔截器,如:

if(method.equalsIgnoreCase("post")||method.equalsIgnoreCase("get")||method.equalsIgnoreCase("head")||method.equalsIgnoreCase("trace")||method.equalsIgnoreCase("connect")||method.equalsIgnoreCase("options")){}

  5. 禁用IIS的WebDAV功能,WebDAV基於 HTTP 1.1 的一個通信協議,它為 HTTP 1.1 添加了一些除GET,POST,HEAD之外的方法,使得應用程序可以直接將文件寫到 Web Server 上。

  6. apache的httpd.conf文件中進行如下限制

<Location />  
 <LimitExcept GET POST HEAD CONNECT OPTIONS> 
   Order Allow,Deny 
   Deny from all 
 </LimitExcept> 
 </Location> 

1.4、實際修復方案

  1、服務器可以分為Tomcat和WebSphere(WAS)兩種,本地為Tomcat,加下2的配置方式,下3的方式主要是針對WAS服務器的。

  2、在web.xml文件中加以上的 <security-constraint> 配置。

  3、 如果是請求的靜態資源,把下屬字段另存為文件.htaccess   放到靜態資源的文件夾下面。

  <LimitExcept GET POST >

  Order deny,allow

  Deny from all

  </LimitExcept>

 

  動態資源的話,需要在java 代碼里面實現。 

  參考下官網的limitexcept指令,IHS 就是基於apache,語法一樣的。

http://httpd.apache.org/docs/2.4/mod/core.html#limitexcept

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM