按问题类型分类的问题

  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 = @"[-|;|,|/|\(|\)|\[|\]|}|{|%|\@|*|!|']";

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 检测工具

解决方法: http://www.cnblogs.com/shanyou/archive/2010/09/24/1833757.html  中文版http://weblogs.asp.net/scottgu/important-asp-net-security- vulnerability   英文版

1.添加配置节点

.net 3.5 及以前版本,添加配置节点

<customErrors mode="On" defaultRedirect="~/error.html" />

.net 3.5 SP1 或 .net 4.0添加如下配置节点,注意加粗部分必须

<customErrors mode="On" defaultRedirect="~/error.aspx" redirectMode="ResponseRewrite" />

2.添加默认错误页面

  1. <%@ Page Language="C#" AutoEventWireup="true" %>
  2. <%@ Import Namespace="System.Security.Cryptography" %>
  3. <%@ Import Namespace="System.Threading" %>
  4. <script runat="server">
  5. void Page_Load() {
  6. byte[] delay = new byte[1];
  7. RandomNumberGenerator prng = new RNGCryptoServiceProvider();
  8. prng.GetBytes(delay);
  9. Thread.Sleep((int)delay[0]);
  10. IDisposable disposable = prng as IDisposable;
  11. if (disposable != null) { disposable.Dispose(); }
  12. }
  13. </script>
  14. <html>
  15. <head runat="server">
  16. <title>Error</title>
  17. </head>
  18. <body>
  19. <div>
  20. An error occurred while processing your request.
  21. </div>
  22. </body>
  23. </html>

如果谁有更好的解决方法 ,谢谢提供!

转载自:http://www.tuicool.com/articles/Ajqa2uj

IBM AppScan 安全漏洞问题修复(.net)的更多相关文章

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

    原文:https://www.cnblogs.com/anngeiBKY/p/4952269.html 按问题类型分类的问题 使用 SQL 注入的认证旁路2 已解密的登录请求3 登录错误消息凭证枚举1 ...

  2. appscan 安全漏洞修复办法

    appscan 安全漏洞修复办法http://www.automationqa.com/forum.php?mod=viewthread&tid=3661&fromuid=21

  3. IBM appscan 9.0破解版分享

    简介:IBM AppScan该产品是一个领先的 Web 应用安全测试工具,曾以 Watchfire AppScan 的名称享誉业界.Rational AppScan 可自动化 Web 应用的安全漏洞评 ...

  4. 【阿里聚安全·安全周刊】 全美警局已普遍拥有破解 iPhone 的能力 | 女黑客破解任天堂Switch,称硬件漏洞无法修复

    本周的七个关键词: 破解 iPhone丨 女黑客破解任天堂丨假的身份证 丨 扫黄打非丨华盛顿特区发现手机间谍设备 丨 Telegram被俄罗斯监管机构告上法庭丨价值5万美金的Firefox浏览器漏洞 ...

  5. THINKPHP网站漏洞怎么修复解决

    THINKPHP漏洞修复,官方于近日,对现有的thinkphp5.0到5.1所有版本进行了升级,以及补丁更新,这次更新主要是进行了一些漏洞修复,最严重的就是之前存在的SQL注入漏洞,以及远程代码执行查 ...

  6. phpcms2008网站漏洞如何修复 远程代码写入缓存漏洞利用

    SINE安全公司在对phpcms2008网站代码进行安全检测与审计的时候发现该phpcms存在远程代码写入缓存文件的一个SQL注入漏洞,该phpcms漏洞危害较大,可以导致网站被黑,以及服务器遭受黑客 ...

  7. MetInfo最新网站漏洞如何修复以及网站安全防护

    metinfo漏洞于2018年10月20号被爆出存在sql注入漏洞,可以直接拿到网站管理员的权限,网站漏洞影响范围较广,包括目前最新的metinfo版本都会受到该漏洞的攻击,该metinfo漏洞产生的 ...

  8. ecshop 漏洞如何修复 补丁升级与安全修复详情

    目前ecshop漏洞大面积爆发,包括最新版的ecshop 3.0,ecshop 4.0,ecshop2.7.3全系列版本都存在着高危网站漏洞,导致网站被黑,被篡改,被挂马,许多商城系统深受其漏洞的攻击 ...

  9. Appscan安全漏洞扫描使用(转)

    这里主要分享如何使用AppScan对一大项目的部分功能进行安全扫描. ----------------------------------------------------------------- ...

随机推荐

  1. Thunder团队第六周 - Scrum会议1

    Scrum会议1 小组名称:Thunder 项目名称:i阅app Scrum Master:王航 工作照片: 参会成员: 王航(Master):http://www.cnblogs.com/wangh ...

  2. 策略模式,ASP.NET实现

    策略模式,ASP.NET实现 using System; using System.Collections.Generic; using System.Linq; using System.Web; ...

  3. laravel开发环境部署遇到的问题和个人感受

    >感受 用chrome浏览器 英语很重要 跟上更新的步伐 要不断学习 问问题要把问题描述清楚,先尝试解决,解决不了再问大佬 情绪要稳定,不能因为一个问题困扰两天就想放弃了 发现了 stack o ...

  4. Martin Fowler关于IOC和DI的文章(原版)

    Inversion of Control Containers and the Dependency Injection pattern In the Java community there's b ...

  5. python-网易云简单爬虫

    一.准备工作 1.使用python3.6和pycharm 2.使用的模块 tkinter .requests .beautifulSoup.getpass.os 3.网易云的榜单页面地址 https: ...

  6. SVM之对偶问题

    SVM之问题形式化 >>>SVM之对偶问题 SVM之核函数 SVM之解决线性不可分 写在SVM之前——凸优化与对偶问题 前一篇SVM之问题形式化中将最大间隔分类器形式化为以下优化问题 ...

  7. sql server 带输入输出参数的分页存储过程(效率最高)

    create procedure proc_page_withtopmax( @pageIndex int,--页索引 @pageSize int,--每页显示数 @pageCount int out ...

  8. Java多线程同步机制之同步块(方法)——synchronized

    在多线程访问的时候,同一时刻只能有一个线程能够用 synchronized 修饰的方法或者代码块,解决了资源共享.下面代码示意三个窗口购5张火车票: package com.jikexueyuan.t ...

  9. 用svmpredict输出的结果为空

    源程序:

  10. 【问题解决】Project facet Java version 1.7 (或者1.8)is not supported.

    在移植eclipse项目时,如果遇到 “Project facet Java version 1.7 is not supported.” 项目中的jdk1.7不支持.说明项目是其他版本jdk编译的, ...