是否有人使用Fortify的360与传统的ASP?页眉操纵漏洞故事
-
20-09-2019 - |
题
我在一个短期合同的演出,试图修补漏洞的一些在他们的遗留代码。我工作的应用是传统的ASP(VBScript)的和.NET 2.0(C#)的组合。一个他们所购买的工具是Fortify的360
下面是应用程序中的当前传统的ASP页:
<%@ Language=VBScript %>
<%
Dim var
var = Request.QueryString("var")
' do stuff
Response.Redirect "nextpage.asp?var=" & var
%>
我知道,我知道,短和很危险的。
所以我们写了一些(EN / DE)编码器和审定/核查程序:
<%@ Language=VBScript %>
<%
Dim var
var = Decode(Request.QueryString("var"))
' do stuff
if isValid(var) then
Response.Redirect "nextpage.asp?var=" & Encode(var)
else
'throw error page
end if
%>
和仍然Fortify的其标记为易受处理标头来。 Fortify的是如何或究竟找谁?
我怀疑Fortify的是寻找特定关键字的原因是对事物.NET方面,我可以包括微软AntiXss组装和通话功能,如GetSafeHtmlFragment
和UrlEncode
和Fortify的是幸福的。
任何意见?
解决方案
贾勒特R为右;你将需要使用规则生成器来创建一个数据流净化规则;指定函数名作为小写和语言如“VB”。
您规则应该是这个样子:
<DataflowCleanseRule formatVersion="3.10" language="vb">
<RuleID>12345-67890-BABE-CAFE</RuleID>
<TaintFlags>-XSS,+VALIDATED_CROSS_SITE_SCRIPTING</TaintFlags>
<FunctionIdentifier>
<NamespaceName>
<Pattern/>
</NamespaceName>
<ClassName>
<Pattern/>
</ClassName>
<FunctionName>
<Pattern CaseInsensitive="true">(?i)decode</Pattern>
</FunctionName>
<ApplyTo implements="true" overrides="true" extends="true"/>
</FunctionIdentifier>
<OutArguments>return</OutArguments>
</DataflowCleanseRule>
其他提示
如果编码方法是你自己(或一个Fortify的不承认),你将不得不编写自定义规则,告诉它,一旦它通过运行脏字段(VAR在这种情况下)是干净的编码方法。
有不满意XDR(跨站点重定向)的电位和潜在的HTTP响应分裂。 Fortify的可能不知道你的编码程序做什么,因此它的标志是(用户控制变量在重定向使用)。 顺便说一句,Cat.Net做同样的事情。 我认为你是对的AntiXSS将使它高兴。
不隶属于 StackOverflow