Java 禁止使用IIS 403,URL中有%2F
我让IIS(Microsoft IIS/7.5)返回一个403禁止,我不知道为什么。我已经把它缩小到Java 禁止使用IIS 403,URL中有%2F,java,iis,coldfusion,url-rewriting,http-status-code-403,Java,Iis,Coldfusion,Url Rewriting,Http Status Code 403,我让IIS(Microsoft IIS/7.5)返回一个403禁止,我不知道为什么。我已经把它缩小到%2F,但只有在前面有一个字母的时候。你知道这是什么原因吗 这些工作 但是,如果您在%2F前面放置任何一个字母,它将以403失败 这些失败了 谢谢 更新:我排除了ColdFusion,因为它给出了相同的403: 更新: Top Level IIs: Checked: Allow unlisted file name extensions Allow unli
%2F
,但只有在前面有一个字母的时候。你知道这是什么原因吗
这些工作
%2F
前面放置任何一个字母,它将以403失败
这些失败了
Top Level IIs:
Checked:
Allow unlisted file name extensions
Allow unlisted verbs
Allow high-bit characters
Unchecked:
Allow double escaping
Request Limits:
Maximum allowed content length (Bytes): 30000000 Maximum URL length (Bytes):
4096 Maximum query string (Bytes): 2048
Sites
mySite123:
Checked:
Allow unlisted verbs
Allow high-bit characters
Unchecked:
Allow unlisted file name extensions
Allow double escaping
Request Limits:
Maximum allowed content length (Bytes): 2147483647
Maximum URL length (Bytes): 4096
Maximum query string (Bytes): 2048
Deny URL
/CFIDE/Administrator
/CFIDE/adminapi
更新:如果我更改正在访问的目录,我可以将403更改为404。例如:
这将按预期返回404:
这将返回403:
那么,假设403问题与“mySite123”虚拟目录设置有关是否安全呢?我敢肯定,您将得到403禁止响应作为IIS的一项安全功能。这是已知的攻击向量。字符序列
%2F
只是/
(正斜杠)字符的URL编码表示。显然,这对浏览器和互联网有着特殊的意义。它用于目录遍历。在URL中编码特殊字符是一种绕过一些基本安全措施的黑客伎俩。请参阅OWASP。从(大约在该页的一半以下)开始:
第10章攻击后端组件575
劈开台阶
正斜杠-%2f
反斜杠-%5c
正斜杠-%u22l5
反斜杠-%u22l6
正斜杠-%252f
反斜杠-%255c
正斜杠-%cO%af、%e0%80%af、%c0%2f等
反斜杠-%c0%5c、%c0%80%5c等
http://example.com/index.cfm?x=a%2Fblah
使用
然后在服务器上,您知道在x
变量中需要-
(破折号)字符,因此在服务器上用/
(正斜杠)字符替换它。或者需要什么样的性格
冷若冰霜
<cfset x = Replace(URL.x,"-","/","ALL") />
请确保使用该字符串中不存在的唯一字符始终记得清理服务器上所有用户提供的输入。
以下是我发现的一些关于%2f
字符序列在URL中易受攻击的参考:
请注意,上面的一些引用与IIS以外的web服务器相关,但它们表明存在该漏洞
您可以尝试的其他方法是双重转义序列。因此,您使用的不是
%2f
,而是%252F
(%25
是百分号)。但您也需要在IIS中进行更改以支持此功能。参考-。但我认为这是最后的选择 与我一起工作的服务器管理员表示:
“在对JAVA进行更新后,问题停止了
我安装了Java1.7的最新安全更新(更新25-
(64位)星期六
重新启动web服务器后,问题现在消失。”
更新:我几天前接受了这个答案,但现在这个问题似乎又回来了
更新(2015年8月31日):已解决。这与其他答案提到的无关。数据中心防火墙人员有一些无效的设置/规则。我不能再详细说明了。调整防火墙规则是解决办法。为了给这个线程添加一些细节,
%2f
(正如前面所说,它只是/
的一个编码版本)让Microsoft有一段时间受到目录遍历漏洞的困扰,允许黑客访问web目录以外的文件。流行的入侵防御系统(如)有规则阻止这种行为。以及攻击字符串和安全警告的历史示例。%2f
编码多年来给web服务器管理员、安全管理员带来了巨大的痛苦(直到今天,仍然可以看到各种攻击被积极利用)。总之,我正在绞尽脑汁解决SharePoint上的TermStoreManager故障,并且
在查看
使用Get-SPTaxonomySession获取TaxonomySession内容
但是,由于某些原因,“术语库管理器”页面未显示任何术语集
问题恰好是termsto的javascript的URL
<cfset x = Replace(URL.x,"-","/","ALL") />