IBM AppScan安全漏洞问题修复(.net)

Gretel ·
更新时间:2024-11-14
· 635 次阅读

  按问题类型分类的问题   1、使用 SQL 注入的认证旁路2   2、已解密的登录请求3   3、登录错误消息凭证枚举1   4、会话标识未更新2   5、跨站点请求伪造1   6、Missing "Content-Security-Policy" header 9   7、Missing "X-Content-Type-Options" header 9   8、Missing "X-XSS-Protection" header 9   9、查询中接受的主体参数1   10、启用了 Microsoft ASP.NET 调试2   11、缺少跨帧脚本编制防御1   12、已解密的 __VIEWSTATE 参数1   13、检测到应用程序测试脚本1   14、应用程序错误9   15、整数溢出3   问题修复   1.使用 SQL 注入的认证旁路   答: 登录、注册页面输入信息,过滤sql关键字或关键字符;   提交表单页面、查询页面的输入项,过滤sql关键字或关键字符。   // 关键字   string StrKeyWord = @"select|insert|delete|from|count(|drop table|update|truncate|asc(|mid(|char(|xp_cmdshell|exec master|netlocalgroup administrators|:|net user|""|or|and";   //关键字符   string StrRegex = @"[-|;|,|/|(|)|[|]|}|{|%|@|*|!|']";   佳的解决方法是 参数化查询,防止sql注入漏洞攻击。   2.已解密的登录请求   答:一种说法是使用SSL证书,暂时没有解决。   3.登录错误消息凭证枚举   答:用户登录时,如果输入错误的用户信息,好提示同一个错误消息提醒,比如:你的用户名或密码输入错误。提供枚举提示,容易被暴力破解。   4.会话标识未更新   答:登录之后更改会话标识符,主要用于登录页面。   参考方案: http://www.2cto.com/Article/201302/190228.html 测试没有效果   http://blog.itpub.net/12639172/viewspace-441971/ 测试ok   在登录页面,添加红线加粗部分   protected void Page_Load(object sender, EventArgs e)   {   if (!IsPostBack)   {   Session.Abandon();   //清除SessionId   Response.Cookies.Add(new HttpCookie("ASP.NET_SessionId", ""));   txt_Fileld1.Focus();   }   }   5.跨站点请求伪造   答:每个页面请求时,判断主机和端口与配置文件信息是否一致。   网上参考方法:   1,利用referer判断,   但是用户有可能设置浏览器使其在发送请求时不提供 Referer,这样的用户也将不能访问网站。   2,在请求中添加 token 并验证   关键在于在请求中放入黑客所不能伪造的信息,并且该信息不存在于 cookie 之中,   可以在服务器端生成一个随机码,然后放在form的hidden元素中,form提交的时候在服务器端检查。   6.Missing "Content-Security-Policy" header   答: 在web.config 配置文件中添加如下响应头   <system.webServer>   <httpProtocol>   <customHeaders>   <add name="X-Content-Type-Options" value="nosniff"/>   <add name="X-XSS-Protection" value="1;mode=block"/>   <add name="X-Frame-Options" value="SAMEORIGIN"/>   <add name="Content-Security-Policy" value="default-src 'self'"/>   </customHeaders>   </httpProtocol>   </system.webServer>   7.Missing "X-Content-Type-Options" header   答: 在web.config 配置文件中添加如下响应头,添加节点见 第6 个问题   <add name="X-Content-Type-Options" value="nosniff"/>   8.Missing "X-XSS-Protection" header   答: 在web.config 配置文件中添加如下响应头,添加节点见 第6 个问题   <add name="X-XSS-Protection" value="1;mode=block"/>   9.查询中接受的主体参数   答:未解决   10.启用了 Microsoft ASP.NET 调试   答:应用程序发布后,修改配置文件节点compilation 的属性 debug为 false。   <compilation debug="false" targetFramework="4.0"/>   11.缺少跨帧脚本编制防御   答:在web.config 配置文件中添加如下响应头,添加节点见 第6 个问题   <add name="Content-Security-Policy" value="default-src 'self'"/>   注意,添加之后,可能会出现不同浏览器,出现兼容性问题,会有不同的反应。比如,极速模式会出现页面内部css无效。   12.已解密的 __VIEWSTATE 参数   答:在web.config 配置文件中添加 pages 的属性viewStateEncryptionMode 为Always。   <pages controlRenderingCompatibilityVersion="3.5" clientIDMode="AutoID" viewStateEncryptionMode="Always" />   13.检测到应用程序测试脚本   答: 在系统开发过程中,添加的测试页面,在程序发布前需要“从项目中排除”后再发布。   14.应用程序错误   答:出现应用程序错误页面。   如 :Server Error in '/' Application.   一是解决属于开发人员的应用程序错误问题,二是在配置文件添加默认出错页面   <customErrors mode="On" defaultRedirect="~/error.html" />   15.整数溢出   答:情况一:针对请求的url中的参数, 检查其数据类型及边界范围。   如 /ApplyShow.aspx?id=99999999999999999999   情况二:登录页面按钮参数,在请求正文里,未找到原因???   http://localhost:83/login.aspx 实体: ImgbtnDl.y (Parameter)   16.WebResource.axd   WebResources.axd?d=xyz。   WebResource.axd有一个特点,便是会对错误的密文(即d=xyz中的xyz)产生500错误,而对正确的密文产生404错误,这便形成了足够的提示   参考资料:   http://www.2cto.com/Article/201009/75162.html   http://pan.baidu.com/share/link?shareid=3851057069&uk=2164275402   http://www.cnblogs.com/JeffreyZhao/archive/2010/09/25/things-about-padding-oracle-vulnerability-in-asp-net.html   http://www.cnblogs.com/shanyou/archive/2010/09/25/1834889.html Padding Oracle Attack 检测工具



.NET net APPScan ibm 漏洞

需要 登录 后方可回复, 如果你还没有账号请 注册新账号