WEB常见安全漏洞分析
Web常见安全漏洞简析
1 会话标识未更新 ........................................................................................................................... 2
1.1 原因简析............................................................................................................................ 2 1.2 解决方案............................................................................................................................ 2 2 登录错误消息凭证枚举 ............................................................................................................... 2
2.1 原因简析............................................................................................................................ 2 2.2 解决方案............................................................................................................................ 2 3 已解密的登录请求 ....................................................................................................................... 3
3.1 原因简析............................................................................................................................ 3 3.2 解决方案............................................................................................................................ 3 4 启用了不安全的HTTP方法 ........................................................................................................ 3
4.1 原因简析............................................................................................................................ 3 4.2 解决方案............................................................................................................................ 3 5 禁止页面缓存 ............................................................................................................................... 4
5.1 原因简析............................................................................................................................ 4 5.2 解决方案............................................................................................................................ 4 6 数据库错误模式 ........................................................................................................................... 4
6.1 原因简析............................................................................................................................ 4 6.2 解决方案............................................................................................................................ 5 7 SQL注入 ........................................................................................................................................ 5
7.1 原因简析............................................................................................................................ 5 7.2 解决方案............................................................................................................................ 5 8 使用SQL注入的认证旁路漏洞 .................................................................................................. 5
8.1 原因简析............................................................................................................................ 5 8.2 解决方案............................................................................................................................ 5 9 XSS跨站点脚本编制漏洞 ............................................................................................................. 6
9.1 原因简析............................................................................................................................ 6 9.2 解决方案............................................................................................................................ 6 10 XSRF跨站点请求伪造漏洞 ......................................................................................................... 6
10.1 原因简析.......................................................................................................................... 6 10.2 解决方案.......................................................................................................................... 6 11 HTML注释敏感信息泄漏漏洞 ................................................................................................... 6
11.1 原因简析.......................................................................................................................... 6 11.2 解决方案.......................................................................................................................... 7 13 潜在的文件上载漏洞 ................................................................................................................. 7
13.1 原因简析.......................................................................................................................... 7 13.2 解决方案.......................................................................................................................... 7 14应用程序错误漏洞 ...................................................................................................................... 7
14.1 原因简析.......................................................................................................................... 7 14.2 解决方案.......................................................................................................................... 7
WEB常见安全漏洞分析
1 会话标识未更新
1.1 原因简析
在用户进入登录页面,还未登录时,就已经产生了一个session,用户输入信息,登录以后,session的id不会改变,也就是说还是以前的那个session(事实上session也确实不会改变,因为没有建立新session,原来的session也没有被销毁)。
1.2 解决方案
始终生成新的会话,供用户成功认证时登录。
如果只是让会话注销是没有用的(),因为invalidate方法并没有真正的将session销毁,只是将session中的内容清空,所以再新建session时并不是新的,只是将之前的session重新启用了,所以session的id不会改变。只有cookie失效掉,才能换成新的sessiol id。
可以在登录页面上加上一段代码:
在登陆页面上加的这段代码的作用就是,将用户进入登陆页面时所产生的session清空,然后让跟踪这个会话的cookie过期,这样服务器就不再掌握有关这个会话的任何信息了。要想与服务器继续通信,就要产生一个新的会话才行,于是会话标识就更新了。
注意:会话失效后,不要在代码前面使用session保存数据。
2 登录错误消息凭证枚举
2.1 原因简析
当用户输入无效的用户名和无效的密码时,应用程序会分别生成不同的错误消息。利用该行为的攻击者可以通过反复试验加暴力破解来发现应用程序的有效用户名、再继续尝试发现相关联的密码。
2.2 解决方案
不论用户名或密码出现问题,都提示同样的错误,且同时加上登录失败次数达到规定次数,则执行账户锁定功能。
WEB常见安全漏洞分析
3 已解密的登录请求
3.1 原因简析
Appscan识别到了不是通过SSL发送的密码参数。
3.2 解决方案
Step1:采用基于SSL的HTTPS传输协议; Step2:对敏感信息加密并绕过扫描(仅加密而不采用SSL协议无法通过appscan扫描)。
4 启用了不安全的HTTP方法
4.1 原因简析
除标准的GET和POST方法外,HTTP请求还使用了其他各种方法,这些方法主要用于完成不常见的和特殊的任务。如果低权限用户可以访问这些方法,就能够以此向应用程序实施有效的攻击。以下是一些值得注意的方法:
PUT:向指定的目录上传附加文件; DELETE:删除指定的资源;
COPY:将指定的资源复制到Destination消息头指定的位置; MOVE:将指定的资源移动到Destination消息头指定的位置; SEARCH:在一个目录路径中搜索资源;
PROPFIND:获取与指定资源有关的信息,如作者、大小和内容类型等; TRACE:在响应中返回服务器收到的原始请求。
4.2 解决方案
禁止DELETE、PUT、HEAD、OPTIONS、TRACE等协议访问应用程序。 参考方案:
Step1:修改应用程序的web.xml文件的协议
Step2:
WEB常见安全漏洞分析
5 禁止页面缓存
5.1 原因简析
能够访问到缓存的脱机数据导致泄密。
5.2 解决方案
建议在Web管理后台程序的过滤器里增加如下代码:
6 数据库错误模式
6.1 原因简析
通过提交特殊构造的字符,程序会暴露一些数据库信息,容易引起SQL注入攻击。
WEB常见安全漏洞分析
6.2 解决方案
Step1:加强输入数据的有效性验证; Step2:规范代码错误捕获及日志打印。
7 SQL注入
7.1 原因简析
本质是因为对用户输入验证不充分,导致数据库将用户提交的非法数据当做SQL语句的一部分执行。
7.2 解决方案
程序方面,常见有以下几种解决方案:
1、 采用参数化查询方法;
2、 严格限定参数类型,明确参数检验边界,在服务器端执行校验; 3、 内置过滤系统。
数据库自身,进行安全加固的方式:
1、 最小权限原则,禁止将任何高权限角色(例如sa,dba等)赋于应用程序数据
库账号。更安全的方法是单独为应用创建有限访问帐户; 2、 拒绝用户访问敏感的系统存储过程; 3、 用户所能够访问的数据库表。
8 使用SQL注入的认证旁路漏洞
8.1 原因简析
对用户输入没有进行充分的验证,导致输入内容可以构造SQL注入语句,绕过系统的认证程序。
8.2 解决方案
对用户输入进行清理,验证输入内容未包含危险字符。
WEB常见安全漏洞分析
9 XSS跨站点脚本编制漏洞
9.1 原因简析
攻击者往Web页面里插入恶意的HTML代码,当用户浏览该页面时,嵌入其中的HTML代码就会被执行,从而达到恶意用户的特殊目的。
9.2 解决方案
对输入内容进行过滤或者转义,建议采用转义方式。
10 XSRF跨站点请求伪造漏洞
10.1 原因简析
类似于XSS攻击,不同的是XSRF是通过构造一个提交来让其他人访问,利用应用程序对这些人的信任来进行一些恶意的操作。实质是应用程序认证方法不充分。
10.2 解决方案
可供参考的解决方案:
方案一:验证cookie的到期时间;
方案二:执行重要业务前,要求用户提交额外的验证信息; 方案三:使用无法预测的验证符号; 方案四:使用定制的HTTP报头; 方案五:检查访问源的报头。
11 HTML注释敏感信息泄漏漏洞
11.1 原因简析
页面源代码使用了容易导致信息泄漏的注释方式。
WEB常见安全漏洞分析
11.2 解决方案
将HTML中有关密码之类的敏感注释去掉或者采用<%-- -%>隐式注释。
13 潜在的文件上载漏洞
13.1 原因简析
通常是因为对文件上传路径变量过滤不严和对上传文件类型不严造成的。
13.2 解决方案
应用程序:
确保上传操作只能控制上传文件的文件名和位置,同时不允许上传脚本文件和可执行文件。
服务器:
将服务器上相关的文件目录设置为不允许执行。
14应用程序错误漏洞
14.1 原因简析
未执行验证,可能输入参数数据类型不匹配。
14.2 解决方案
实行严格的数据类型验证。
Web常见安全漏洞简析