urlscan使用详解
Posted 专注于网络安全
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了urlscan使用详解相关的知识,希望对你有一定的参考价值。
0x01 简介与下载
URLScan是集成在IIS上的,可以制约的HTTP请求的安全工具。通过阻止特定的HTTP请求,URLScan安全工具有助于防止潜在的有害的请求到达服务器上的应用。
最新版URLScan 3.1,支持IIS 5.1,IIS 6和IIS 7在Windows Vista和Windows Server 2008。
下载地址:http://www.iis.net/downloads/microsoft/urlscan
32位安装程序:urlscan_v31_x86.msi
64位安装程序:urlscan_v31_x64.msi
0x02 安装与使用
看系统位数选择安装程序,和一般软件一样安装,但是,此软件不能选择安装路径,安装完成以后,我们可以在System32/InetSvr/URLScan目录下找到以下文件:
log:日志目录,开启日志记录功能,会在此目录下生成日志文件;
urlscan.dll:动态连接库文件;
urlscan.ini:软件配置文件,这个文件很只要,因为对URLScan的所有配置,均有这个文件来完成。
IIS管理--网站(右击属性)---ISAPI筛选器--点击添加--输入筛选器名称和可执行文件--点击确定即可。
0x03 使用技巧
1、以下两个选项需要设置为一,防止因编码、特殊文件夹导致的系统故障:
0x04 配置修改
URLScan 的所有配置都是通过 URLScan.ini 文件执行的,此文件位于System32\\Inetsrv\\URLscan 文件夹中。要配置 URLScan,请在文本编辑器(如记事本)中打开此文件,进行相应的更改,然后保存此文件。 注意:要使更改生效,必须重新启动 Internet 信息服务 (IIS)。一种快速的实现方法是在命令提示符处运行 IISRESET。
urlscan配置文件必须是标准ini文件结构,也就是由节,串和值组成
URLScan.ini 文件包含以下几节:
· [Options]:此节描述常规 URLScan 选项。
· [AllowVerbs] 和 [DenyVerbs]:此节定义 URLScan 允许的谓词(又称作 HTTP 方法)。
· [DenyHeaders]:此节列出 HTTP 请求中不允许的 HTTP 标头。如果 HTTP 请求中包含此节中列出的 HTTP 标头之一,URLScan 将拒绝该请求。
· [AllowExtensions] 和 [DenyExtensions]:此节定义 URLScan 允许的文件扩展名。
· [DenyURLSequences]:此节列出 HTTP 请求中不允许的字符串。URLScan 拒绝那些包含此节中出现的字符串的 HTTP 请求。
本文将更详细地介绍每一节。
[Options] 节
在 [Options] 节中,可以配置许多 URLScan 选项。此节中的每一行都具有以下格式:
OptionName=OptionValue
可用选项及其默认值如下所示:
· UseAllowVerbs=1
默认情况下,此选项设置为 1。如果将此选项设置为 1,则 URLScan 仅允许那些使用 [AllowVerbs] 节中列出的谓词的 HTTP 请求。URLScan 禁止任何不使用这些谓词的请求。如果将此选项设置为 0,则 URLScan忽略 [AllowVerbs] 节,相反仅禁止那些使用 [DenyVerbs] 节中列出的谓词的请求。
· UseAllowExtensions=0
默认情况下,此选项设置为 0。如果将此选项设置为 0,则 URLScan 禁止对 [DenyExtensions] 节中列出的文件扩展名的请求,但允许对任何其他文件扩展名的请求。如果将此选项设置为 1,则 URLScan 仅允许对带 [AllowExtensions] 节中列出的扩展名的文件的请求,而禁止对任何其他文件的请求。
· NormalizeUrlBeforeScan=1
IIS 收到用 URL 编码的请求。这表示某些字符可能被替换为百分号 (%) 后跟特定的数字。例如,%20 对应于一个空格,因此,对 http://myserver/My%20Dir/My%20File.htm 的请求与对 http://myserver/My Dir/My File.htm 的请求是相同的。标准化就是对 URL 编码请求进行解码的过程。默认情况下,此选项设置为 1。如果将 NormalizeUrlBeforeScan 选项设置为 1,则 URLScan 分析已解码的请求。如果将此选项设置为 0,则 URLScan 分析未解码的请求。将此选项设置为 0 会影响 URLScan 禁止某种攻击的能力。
· VerifyNormalization=1
由于百分号 (%) 本身可以是 URL 编码的,所以攻击者可以向服务器提交一个精心制作的、基本上是双重编码的请求。如果发生这种情况,IIS 可能会接受本应视作无效而拒绝的请求。默认情况下,此选项设置为1。如果将 VerifyNormalization选项设置为 1,则 URLScan 将对 URL 执行两次标准化。如果第一次标准化后的 URL 与第二次标准化后的 URL 不同,URLScan 将拒绝该请求。这样就可以防止那些依赖双重编码请求的攻击。
· AllowHighBitCharacters=0
默认情况下,此选项设置为 0。如果将此选项设置为 0,则 URLScan 拒绝任何包含非 ASCII 字符的请求。这样可以防止某些类型的攻击,但同时可能也会禁止对某些合法文件的请求,如带有非英文名的文件。
· AllowDotInPath=0
默认情况下,此选项设置为 0。如果将此选项设置为 0,则 URLScan 拒绝所有包含多个句点 (.) 的请求。这样可以防止通过将安全的文件扩展名放入 URL 的路径信息或查询字符串部分,以达到伪装请求中的危险文件扩展名的企图。例如,如果将此选项设置为 1,则 URLScan 可能允许对http://servername/BadFile.exe/SafeFile.htm 的请求,因为它认为这是对 html 页的请求,但实际上这是一个对可执行 (.exe) 文件的请求,而该文件的名称在 PATH_INFO 区域中显示为 HTML 页的名称。如果将此选项设置为 0,URLScan 可能还会拒绝对包含句点的目录的请求。
· RemoveServerHeader=0
默认情况下,Web 服务器返回一个标头,其中指出了 Web 服务器在所有响应中运行的 Web 服务器软件。这会增加服务器遭受攻击的可能性,因为攻击者可以确定服务器正在运行 IIS,于是便攻击已知的 IIS 问题,而不是试图使用为其他 Web 服务器设计的攻击手段来攻击 IIS 服务器。默认情况下,此选项设置为 0。如果将 RemoveServerHeader 选项设置为 1,可以防止您的服务器发送将其标识为 IIS 服务器的标头。如果将 RemoveServerHeader 设置为 0,则仍发送此标头。
· AlternateServerName=(默认情况下不指定)
如果将 RemoveServerHeader 设置为 0,可以在 AlternateServerName 选项中指定一个字符串以指定将在服务器标头中传回的内容。如果将 RemoveServerHeader 设置为 1,则此选项将被忽略。
· EnableLogging=1
默认情况下,URLScan 在 %WINDIR%\\System32\\Inetsrv\\URLScan 中保留所有被禁止的请求的完整日志。如果不希望保留此日志,可将 EnableLogging 设置为 0。
· PerProcessLogging=0
默认情况下,此选项设置为 0。如果将此选项设置为 1,URLScan 将为承载 URLScan.dll 的每个进程创建一个单独的日志。如果将此选项设置为 0,所有进程将记录到同一个文件中。
· PerDayLogging=1
默认情况下,此选项设置为 1。如果将该值设置为 1,则 URLScan 每天创建一个新的日志文件。每个日志文件的名称都是 Urlscan.MMDDYY.log,其中 MMDDYY 是日志文件的日期。如果将该值设置为 0,则所有日志记录都保存在同一个文件中,与日期无关。
· AllowLateScanning=0
默认情况下,此选项设置为 0。如果将此选项设置为 0,则 URLScan 作为高优先级筛选器运行,这表示它先于服务器上安装的所有其他 Internet 服务器应用程序编程接口 (ISAPI) 筛选器执行。如果将此选项设置为1,则 URLScan 作为低优先级筛选器运行,以便其他筛选器可以在 URLScan 进行任何分析之前修改URL。FrontPage Server Extensions (FPSE) 要求将此选项设置为 1。
· RejectResponseUrl=(默认情况下不指定)
此选项指定在 URLScan 禁止请求时运行的文件的虚拟路径。这允许您自定义针对被禁止的请求发送给客户机的响应。必须将 RejectResponseUrl 指定为相应文件的虚拟路径,如Nginx 反向代理工作原理简介与配置详解