对 ASP 文件上传控件的注入攻击

问题描述

我使用 Checkmarx 来扫描源代码并识别代码中的安全漏洞,例如 sql 注入、XSS 等。

我无法摆脱 checkmarx 在 ASP FileUpload 控件上检测到的漏洞。 以下是检测到的漏洞示例:

<asp:FileUpload ID="fuXlsWorkflow" runat="server" EnableViewState="true" />
<asp:RegularExpressionValidator ID="RegularExpressionValidator1" runat="server" ErrorMessage="<%$ Resources:Message,ERR_FORMAT%>" ValidationExpression="^([a-zA-Z]|\x20|\x2E|:|\\|[0-9])*\.(xls|xlsx)$" ControlTovalidate="fuXlsWorkflow" />

Aspx.vb:

Dim fullFileName As String = Antixss.AntixssEncoder.HtmlEncode(fuXlsWorkflow.FileName,False)

即使使用 HtmlEncode 函数,checkmarx 也会检测到 fuXlsWorkflow.FileName 上的漏洞

攻击者可以通过用户输入注入连接字符串, 文件名,由应用程序在 btnImport_Click 中检索 方法,在...的第 114 行

我也尝试过这样做:

Dim invalids As Char() = System.IO.Path.GetInvalidFileNameChars()
Dim newName = String.Join("_",fuXlsWorkflow.FileName.Split(invalids,StringSplitOptions.RemoveEmptyEntries)).TrimEnd("."c)
xlsFileTempPath = Env.TempFolder & " " & Antixss.AntixssEncoder.HtmlEncode(newName,False)

没有任何成功。 有谁知道如何摆脱这个警告? 预先感谢您的帮助!

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)