按问题类型分类的问题

  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.添加默认错误页面

<%@ Page Language="C#" AutoEventWireup="true" %>
<%@ Import Namespace="System.Security.Cryptography" %>
<%@ Import Namespace="System.Threading" %>
<script runat="server"> void Page_Load() {  byte[] delay = new byte[1];  RandomNumberGenerator prng = new RNGCryptoServiceProvider();  prng.GetBytes(delay);  Thread.Sleep((int)delay[0]);  IDisposable disposable = prng as IDisposable;  if (disposable != null) { disposable.Dispose(); }  } </script> <html> <head runat="server">  <title>Error</title> </head> <body>  <div>   An error occurred while processing your request.  </div> </body> </html> 

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

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

转载于:https://www.cnblogs.com/toughlife/p/5469798.html

IBM AppScan 安全漏洞问题修复(.net)相关推荐

  1. 如何应对安全漏洞的修复

    在大多数企业和公司,并没有专门的信息安全部和安全工程师,所以安全漏洞的修复责任就落到了运维部门的工程师头上,那么当你拿到了一份安全评估报告后,该如何应对安全漏洞的修复呢? 首先明确风险的类型和确定等级 ...

  2. IBM AppScan 安全扫描报告中部分问题的解决办法

    IBM AppScan 安全扫描:加密会话(SSL)Cookie 中缺少 Secure 属性处理办法 原因分析: 服务器开启了Https时,cookie的Secure属性应设为true: 解决办法: ...

  3. CoreOS Linux Alpha的重大漏洞已修复

    CoreOS Linux Alpha中的一个重大漏洞已修复,安全团队称此问题只影响该Linux发行版的104x.0.0版. \\ 在博客文章<CoreOS Linux Alpha中远程SSH存在 ...

  4. intel服务器修复两个漏洞,英特尔处理器漏洞怎么修复 Intelcpu漏洞修复方法

    英特尔处理器漏洞怎么修复?这一次由Intel服务器CPU产品诱发的安全事故现在规模正式扩大,不少玩家朋友们都非常担忧,下面我们就来分享一下Intelcpu漏洞修复方法一览,希望对各位有所参考和帮助. ...

  5. Git Submodule新漏洞已修复

    Git社区披露了一个影响clone和submodule命令的安全漏洞,当存在漏洞的机器访问恶意库时,这些命令可以远程执行代码.这个由Mitre分配了编号CVE-2018-17456的漏洞已在Git 2 ...

  6. 老旧漏洞不修复,西部数据存储设备数据遭擦除

     聚焦源代码安全,网罗国内外最新资讯! 编译:奇安信代码卫士 My Book Live 和 My Book Live Duo 网络存储器 (NAS) 的很多所有人称自己的文件遭擦除,似乎是由某老旧漏洞 ...

  7. Pwn2Own 2020 曝出的Linux 内核漏洞已修复

     聚焦源代码安全,网罗国内外最新资讯! 编译:奇安信代码卫士团队 周二,ZDI 发布安全公告称, Pwn2Own 2020 黑客大赛上被用于在 Ubuntu Desktop上将权限提升至 root 的 ...

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

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

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

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

最新文章

  1. 比较一个对象,如是这个对象的某一个属性不为空,把他copy到另一个有这个属性的bean中...
  2. boost::hana::make_map用法的测试程序
  3. 全国软考数据库系统工程师教程(第2版)目录
  4. MySql数据库SQL语言基础知识点—Navicat
  5. 现在股市里人人都在赚钱!!到底谁在亏钱?我讲一个故事来告诉大家谁亏钱了...
  6. 英语学习过程中的几点体会(2)
  7. 玩游戏用固态硬盘还是机械硬盘
  8. 使用glob()查找文件
  9. chromebook开发php,玩转chromebook
  10. html之meta标签
  11. 嵌入式系——软件管理工程
  12. 转Win 7 快捷键
  13. 几种实现ListView顶部悬浮效果
  14. 智能优化算法:蝙蝠算法-附代码
  15. linux下编写脚本文件 .sh
  16. vue面试五之vue修饰符中 .lazy 等用法、Vue v2.4中新增的$attrs及$listeners属性的使用、v-once 的使用场景、vue组件里的定时器该如何销毁、vue海量数据优化等
  17. 百度账号更换绑定的手机号
  18. win10强制关闭飞行模式_win10笔记本突然连不上wifi怎么办?
  19. RabbitMQ-尚硅谷
  20. 设计模式-->结构型模式-->代理模式

热门文章

  1. 面试题13. 机器人的运动范围
  2. Windows下创建并运行.sh文件
  3. celery 停止_celery 停止执行中 task
  4. Fiddler抓包详解
  5. 萌新的Python练习实例100例(一)四个数字组成互不相同且无重复的三位数
  6. 2 | Spatial-based GNN/convolution 概念
  7. Centre Consortium 发布了USDC 智能合约 2.1 版本
  8. Cover Protocol官方提醒用户警惕诈骗网站
  9. SAP License:SAP S/4HANA Cloud介绍
  10. SAP自学指南:案例公司的需求分析