【AppScan深入淺出】修復漏洞:啟用不安全的HTTP方法 (中)


最近一直刷新AppScan的下限,對於Appscan報出的中危漏洞“啟用不安全的HTTP方法”。分析了其掃描機制,以及處理方法和繞開方法。如果不耐煩看分析過程,請直接跳到文章最后看處理方法。


0. 漏洞背景

“啟用了不安全的 HTTP 方法”屬於“中”危漏洞。漏洞描述是:根據APPSCAN的報告APPSCAN通過OPTIONS請求,當響應中發現DELETESEARCHCOPY等方法為允許方法時,則認為是漏洞。 詳見下圖:


1 

 

Web服務器(以IIS為例)在沒有任何設置是,使用OPTIONS命令,可以返回所有能夠響應的HTTP方法,如OPTIONS, TRACE, GET, HEAD, COPY, PROPFIND, SEARCH, LOCK, UNLOCK

發送OPTIONS請求:(使用telnet或者secureCRT等軟件):

2 

 

服務器響應可以使用的 HTTP 方法,見 Allow 部分。

3

 

1. 實驗環境

Web服務器環境:IIS6。站點結構如下,使用了主機頭myapp.com指向了我的測試應用app

 

 

配置只有讀取權限,還有執行權限設置為“純腳本”。

 


 

2. 實驗

實驗1:裸實驗

未啟用WebDav,OPTIONS命令的返回中,只顯示只有OPTION、TRACE、GET、HEAD和POST。

clip_image002clip_image002[7]

APPSCAN掃描結果也沒有掃描出“啟用了不安全的 HTTP 方法”這個漏洞。 

clip_image002[6]

 

 

實驗2:開啟WebDAV

啟用WebDAV后,OPTIONS命令的返回中,顯示多了很多新的HTTP方法,包括APPSCAN會認為是不安全的COPY、SEARCH、LOCK和UNLOCK等。

clip_image002[9]

 

APPSCAN的掃描結果如下,掃描到了“啟用了不安全的HTTP方法”這個漏洞。

clip_image002[11]

 

結論1:如果關閉WebDAV支持,APPSCAN則無法掃描出“啟用了不安全的 HTTP 方法”漏洞。

 

實驗3:URLScan正向實驗

安裝URLScan(URLScan是微軟提供給IIS6的路徑重定向工具,在這里下載),在URLScan.ini中配置,只允許GET、HEAD和POST這三個常用命令(UseAllowVerbs=1)。

clip_image002[13]

運行OPTIONS命令,則服務器返回響應失敗,無法列出所有的HTTP方法

clip_image002[15]

 

 

APPSCAN掃描結果顯示,禁用OPTIONS命令后無法掃描出“啟用了不安全的 HTTP 方法”這個漏洞。

clip_image002[17]

 

實驗4:URLScan正向實驗2

安裝URLScan,在URLScan.ini中配置,只允許GET、HEAD、POST和OPTIONS命令。

由於URLScan的模式,要么設置允許命令,要么設置禁止命令,不能同時設置。因此允許這4個命令,表示不能禁用其他命令,因此OPTIONS會顯示其他的可用命令。

clip_image002[19]

clip_image004

由於APPSCAN默認是以OPTIONS命令來看漏洞的,因此自然本次掃描會有漏洞。

clip_image006

 

實驗5:URLScan反向實驗

 

在URLSCAN中,采用禁止模式(UseAllowVerbs=0),只禁止OPTIONS命令。

clip_image002[21]

結果OPTIONS被禁用。

clip_image004[7]

當然此時其他不安全的HTTP方法,其實是沒有禁用的,如LOCK、UNLOCK等,只是是否可用要看服務器是否設置了對應的程序。

 

實驗5:URLScan反向實驗2

在URLSCAN中,采用禁止模式(UseAllowVerbs=0),禁止不安全HTTP方法- DELETE- SEARCH- COPY- MOVE- PROPFIND- PROPPATCH- MKCOL- LOCK- UNLOCK- PUT等。

clip_image002[23]

但是使用OPTIONS命令后,仍然顯示這些不安全的方法,即使這些方法實際已經被禁用了。

clip_image004[9]

見下圖,使用LOCK命令已經顯示無法訪問了,但APPSCAN實際也會說有漏洞,由於OPTIONS方法告訴它有這些HTTP方法。

clip_image006[6]

clip_image008

結論2:消除“啟用了不安全的 HTTP 方法”漏洞,關鍵在於是否能夠阻止OPTIONS命令。

3. URLScan參數討論

 

使用URLSCAN確實可以禁用掉無用的HTTP方法,但根據參數配置,有可能會產生副作用。因此需要了解每一個參數,以減少對現有系統的影響。

參數(默認值)

描述

建議值

UseAllowVerbs=1

; If 1, use [AllowVerbs] section, else use the [DenyVerbs] section.

0,使用禁用模式,禁用OPTIONS

UseAllowExtensions=0

; If 1, use [AllowExtensions] section, else use the [DenyExtensions] section.

0,使用禁用模式,並將禁用列表清空

NormalizeUrlBeforeScan=1

; If 1, canonicalize URL before processing.

0,不掃描

VerifyNormalization=1

; If 1, canonicalize URL twice and reject request if a change occurs.

0,不掃描

AllowHighBitCharacters=0

; If 1, allow high bit (ie. UTF8 or MBCS) characters in URL.

0,不啟用

AllowDotInPath=0

; If 1, allow dots that are not file extensions.

0,不啟用

RemoveServerHeader=0

; If 1, remove the 'Server' header from response.

0,不啟用

EnableLogging=1

; If 1, log UrlScan activity.

0,不啟用

PerProcessLogging=1

; If 1, the UrlScan.log filename will contain a PID (ie. UrlScan.123.log).

0,不啟用

AllowLateScanning=0

; If 1, then UrlScan will load as a low priority filter.

0,不啟用

PerDayLogging=1

; If 1, UrlScan will produce a new log each day with activity in the form 'UrlScan.010101.log'.

0,不啟用

UseFastPathReject=0

; If 1, then UrlScan will not use the RejectResponseUrl or allow IIS to log the request.

0,不啟用

LogLongUrls=0

; If 1, then up to 128K per request can be logged. If 0, then only 1k is allowed.

0,不啟用

MaxAllowedContentLength

=30000000

請求內容最大長度,默認為3G

不修改

MaxUrl=260

URL長度,默認260字符

不修改

MaxQueryString=2048

QueryString的最大長度,默認2048字符

不修改

RejectResponseUrl=

 

不修改

LoggingDirectory

 

不修改

AlternateServerName=

 

不修改


4.處理方法

回顧一下實驗過程中的結論:

消除“啟用了不安全的 HTTP 方法”漏洞,關鍵在於是否能夠阻止OPTIONS命令。

如果禁止OPTIONS命令,但沒有禁用其他危險命令如MOVE等,APPSCAN不會提示漏洞

如果禁止所有危險命令如MOVE等(實際調用出錯),但是OPTIONS命令沒有禁止並且顯示這些危險命令可以使用,APPSCAN提示漏洞。

如果關閉WebDAV支持,APPSCAN則無法掃描出“啟用了不安全的 HTTP 方法”漏洞。 

因為不開啟WebDAV,則不開啟OPTIONS命令。 

 

因此 

王道方法是:禁用所有危險命令以及OPTIONS(OPTIONS命令並不危險,但不禁用是不行的)

邪道方法是:只禁用OPTIONS命令,其他危險命令APPSCAN是不會主動掃描,留着也不會報漏洞。但實際是不是有,這個就要具體分析了。 

 

綜上:解決“啟用了不安全的 HTTP 方法”,可采用3種方法:

方法

描述

1

禁用WebDAV功能

根本解決。不引入新的不穩定因素URLSCAN

2

使用URLSCAN禁用OPTIONS

實際沒有真正禁用,但縮小了影響范圍。URLSCAN可能有副作用。

3

使用URLSCAN禁用OPTIONS和其他HTTP方法

或者只允許GET/POST/HEAD方法(自動禁用其他方法)

等效於取消WebDAV,但URLSCAN可能副作用。


免責聲明!

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



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