IBM AppScan 安全漏洞问题修复(.net)
按问题类型分类的问题
- 使用 SQL 注入的认证旁路2
- 已解密的登录请求3
- 登录错误消息凭证枚举1
- 会话标识未更新2
- 跨站点请求伪造1
- Missing "Content-Security-Policy" header 9
- Missing "X-Content-Type-Options" header 9
- Missing "X-XSS-Protection" header 9
- 查询中接受的主体参数1
- 启用了 Microsoft ASP.NET 调试2
- 缺少跨帧脚本编制防御1
- 已解密的 __VIEWSTATE 参数1
- 检测到应用程序测试脚本1
- 应用程序错误9
- 整数溢出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)相关推荐
- 如何应对安全漏洞的修复
在大多数企业和公司,并没有专门的信息安全部和安全工程师,所以安全漏洞的修复责任就落到了运维部门的工程师头上,那么当你拿到了一份安全评估报告后,该如何应对安全漏洞的修复呢? 首先明确风险的类型和确定等级 ...
- IBM AppScan 安全扫描报告中部分问题的解决办法
IBM AppScan 安全扫描:加密会话(SSL)Cookie 中缺少 Secure 属性处理办法 原因分析: 服务器开启了Https时,cookie的Secure属性应设为true: 解决办法: ...
- CoreOS Linux Alpha的重大漏洞已修复
CoreOS Linux Alpha中的一个重大漏洞已修复,安全团队称此问题只影响该Linux发行版的104x.0.0版. \\ 在博客文章<CoreOS Linux Alpha中远程SSH存在 ...
- intel服务器修复两个漏洞,英特尔处理器漏洞怎么修复 Intelcpu漏洞修复方法
英特尔处理器漏洞怎么修复?这一次由Intel服务器CPU产品诱发的安全事故现在规模正式扩大,不少玩家朋友们都非常担忧,下面我们就来分享一下Intelcpu漏洞修复方法一览,希望对各位有所参考和帮助. ...
- Git Submodule新漏洞已修复
Git社区披露了一个影响clone和submodule命令的安全漏洞,当存在漏洞的机器访问恶意库时,这些命令可以远程执行代码.这个由Mitre分配了编号CVE-2018-17456的漏洞已在Git 2 ...
- 老旧漏洞不修复,西部数据存储设备数据遭擦除
聚焦源代码安全,网罗国内外最新资讯! 编译:奇安信代码卫士 My Book Live 和 My Book Live Duo 网络存储器 (NAS) 的很多所有人称自己的文件遭擦除,似乎是由某老旧漏洞 ...
- Pwn2Own 2020 曝出的Linux 内核漏洞已修复
聚焦源代码安全,网罗国内外最新资讯! 编译:奇安信代码卫士团队 周二,ZDI 发布安全公告称, Pwn2Own 2020 黑客大赛上被用于在 Ubuntu Desktop上将权限提升至 root 的 ...
- THINKPHP网站漏洞怎么修复解决
THINKPHP漏洞修复,官方于近日,对现有的thinkphp5.0到5.1所有版本进行了升级,以及补丁更新,这次更新主要是进行了一些漏洞修复,最严重的就是之前存在的SQL注入漏洞,以及远程代码执行查 ...
- phpcms2008网站漏洞如何修复 远程代码写入缓存漏洞利用
SINE安全公司在对phpcms2008网站代码进行安全检测与审计的时候发现该phpcms存在远程代码写入缓存文件的一个SQL注入漏洞,该phpcms漏洞危害较大,可以导致网站被黑,以及服务器遭受黑客 ...
最新文章
- 比较一个对象,如是这个对象的某一个属性不为空,把他copy到另一个有这个属性的bean中...
- boost::hana::make_map用法的测试程序
- 全国软考数据库系统工程师教程(第2版)目录
- MySql数据库SQL语言基础知识点—Navicat
- 现在股市里人人都在赚钱!!到底谁在亏钱?我讲一个故事来告诉大家谁亏钱了...
- 英语学习过程中的几点体会(2)
- 玩游戏用固态硬盘还是机械硬盘
- 使用glob()查找文件
- chromebook开发php,玩转chromebook
- html之meta标签
- 嵌入式系——软件管理工程
- 转Win 7 快捷键
- 几种实现ListView顶部悬浮效果
- 智能优化算法:蝙蝠算法-附代码
- linux下编写脚本文件 .sh
- vue面试五之vue修饰符中 .lazy 等用法、Vue v2.4中新增的$attrs及$listeners属性的使用、v-once 的使用场景、vue组件里的定时器该如何销毁、vue海量数据优化等
- 百度账号更换绑定的手机号
- win10强制关闭飞行模式_win10笔记本突然连不上wifi怎么办?
- RabbitMQ-尚硅谷
- 设计模式-->结构型模式-->代理模式
热门文章
- 面试题13. 机器人的运动范围
- Windows下创建并运行.sh文件
- celery 停止_celery 停止执行中 task
- Fiddler抓包详解
- 萌新的Python练习实例100例(一)四个数字组成互不相同且无重复的三位数
- 2 | Spatial-based GNN/convolution 概念
- Centre Consortium 发布了USDC 智能合约 2.1 版本
- Cover Protocol官方提醒用户警惕诈骗网站
- SAP License:SAP S/4HANA Cloud介绍
- SAP自学指南:案例公司的需求分析