2015-04-18 52 views
0

我有几个在aspnet中开发的web应用程序,最近我们的安全办公室使用ibm security appscan进行扫描,唯一发现的东西是来自登录页面的盲注SQL。我一直在使用所有应用程序中的参数化查询。我从登录中使用两层认证,一个是活动目录,然后是数据库。我很肯定他们是错误的,但是有没有办法摆脱错误信息?aspnet应用程序与IBM appcan之间的SQL注入漏洞

如果没有全面扫描,安全办公室将不会打开端口。我想知道你们是否遇到过这种情况。这太令人沮丧了!

谢谢!好的,谢谢你的回复。 我有标准的HTML用户名和密码文本框,和一个btnSubmit按钮,他们在contentplace持有人。 这里是后面的代码。首先对活动目录进行身份验证,如果成功,则再次验证数据库。这是数据库部分:

DatabaseProviderFactory factory=new DatabaseProviderFactory(); 
        Database db =factory.CreateDefault(); 

        DbCommand cmd = db.GetSqlStringCommand("SELECT count(*) FROM [dbo].[tbl_Admins] where [email protected] and active='Y'"); 
        db.AddInParameter(cmd, "Username", DbType.String,HttpUtility.HtmlEncode(txtUsername.Text.Trim())); 

int thisAdmin = Convert.ToInt32(db.ExecuteScalar(cmd)); 

// cmd.Dispose();

如果(thisAdmin> 0){

Response.Redirect("default.aspx"); 

} ...从扫描


错误消息: 严重性:高 CVSS分数:9.7 URL: 实体:ctl00 $ ContentPlaceHolder1 $ btnSubmit(参数) 风险:可以查看,修改或删除数据库条目和表格 原因:在用户输入上未正确执行危险字符的卫生

+1

您将不得不提供更多信息。你需要提供一些代码或一个非常具体的问题。对于调试技术,请尝试遵循登录页面的请求并查看命中数据库的内容。 – ircmaxell

+0

这是一个AppScan问题,而不是一个asp.net问题。有足够的信息可以识别发生的特定AppScan问题。应该从问题中移除标志。 – BranLakes

+1

@BranLakes否,因为没有显示代码,所以不可能知道是否真的存在SQLi漏洞。所以不可能判断它是否是假阳性。使用准备好的语句不是一个银子弹... – ircmaxell

回答

1

AppScan中bSQLi的常见问题。 This article显示如何验证误报并更改阈值。简短的回答:

有可用的隐藏选项,以做到这一点:

  • 在作业属性去“高级选项”。
  • 将URL添加到浏览器的地址栏中& advancedadmin = 1。
  • 在Generic Developer选项下,找到选项BODY_SIMILARITY_THRESHOLD。设置为0时,它使用默认值 95%。输入一个百分比来覆盖默认值,然后单击应用。
+0

谢谢你,会尝试 – xman123