原创日志

windows下iis在配合使用urlscan的时候,TRACE和OPTIONS直接返回403而不是200和404的方法

[ 2025-04-30 14:35:57 | 作者: admin ]
字号: | |
p.s. windows下面用urlscan可以方便的拦截 TRACE,OPTIONS,PUT等敏感method,只保留get和post。但是默认情况下回返回200状态再给一个404页面,这不友好,我们需要直接返回一个403状态。

一、打开urlscan.ini,指定出现拦截时候的跳转文件 RejectResponseUrl
RejectResponseUrl=/403

然后在根目录建立403目录,下面建立一个网站语言匹配的默认文件 index.php index.aspx 等等,访问就能返回403了
<?php
header("HTTP/1.1 403 Forbidden");
exit;
?>

使用curl做TRACE 验证
-v 或 --verbose:详细模式,显示请求和响应的详细信息,包括请求头、响应头和数据传输过程。
-X 或 --request:指定 HTTP 请求方法,例如 GET、POST、PUT、DELETE 等。
curl.exe -v -X GET http://test1.xg98.com
curl.exe -v -X TRACE http://test1.xg98.com
curl.exe -v -X OPTIONS http://test1.xg98.com

attachments/202504/30_144841_wechat_20250430_144825_305.jpg


参考资料如下:
RejectResponseUrl=(默认情况下不指定)

此选项指定在 URLScan 禁止请求时运行的文件的虚拟路径。这允许您自定义针对被禁止的请求发送给客户机的响应。必须将 RejectResponseUrl 指定为相应文件的虚拟路径,如/Path/To/RejectResponseHandler.asp。可以指定 URLScan 通常禁止的文件,如 Active Server Pages (ASP)页。还可以从该页指定以下服务器变量:

o HTTP_URLSCAN_STATUS_HEADER:此变量指定请求被禁止的原因。

o HTTP_URLSCAN_ORIGINAL_VERB:此变量指定被禁止的请求中的原始谓词(例如GET、POST、HEAD 或 DEBUG)。

o HTTP_URLSCAN_ORIGINAL_URL:此变量指定被禁止的请求中的原始 URL。

如果将 RejectResponseUrl 设置为特殊值 /~*,则 URLScan 使用“仅日志记录”模式。这允许 IIS 为所有请求提供服务,但它会在 URLScan 日志中为所有通常被禁止的请求添加相应的项。这在需要测试 URLScan.ini 文件时很有用。

如果没有指定 RejectResponseUrl 的值,则 URLScan 使用默认值 /。

UseFastPathReject=0

默认情况下,此选项设置为 0。如果将此选项设置为 1,则 URLScan 忽略 RejectResponseUrl 设置并立即向浏览器返回 404 错误信息。这比处理 RejectResponseUrl 要快,但它允许的日志记录选项没有那么多。如果将此选项设置为 0,则 URLScan 使用 RejectResponseUrl 设置来处理请求。
[最后修改由 admin, 于 2025-04-30 14:53:57]
评论Feed 评论Feed: http://blog.xg98.com/feed.asp?q=comment&id=2997

这篇日志没有评论。

此日志不可发表评论。