xxx系统存在应用程序未容错漏洞
漏洞名称 |
应用程序未容错漏洞 |
漏洞地址 |
|
漏洞等级 |
低危 |
漏洞描述 |
Web 服务器未能正确处理异常请求导致 Web 服务器版本信息泄露,攻击者收集到服务器信息后可进行进一步针对性攻击。 检测到服务器返回的页面信息中包含数据库错误信息。通过数据库错误信息可以得知后台数据库类型,甚至数据库结构。为进一步 SQL 注入攻击提供有利信息。 |
漏洞成因 |
应用程序未屏蔽执行过程中的错误信息,直接抛出了异常。 一般情况下是Web应用程序接收用户输入的信息后,未捕获异常,如:数据类型错误、空值、非法字符造成程序不能继续执行,导致抛出错误信息。 |
漏洞危害 |
攻击者收集到服务器信息后可进行进一步针对性攻击,检测到服务器返回的页面信息中包含数据库错误信息。通过数据库错误信息可以得知后台数据库类型,甚至数据库结构。为进一步 SQL 注入攻击提供有利信息。 |
修复方案 |
针对 PHP 的修复方案: 在页面中添加: error_reporting(0); 或更改php.ini display_errors的默认值为On,代表显示错误提示,如果设置为Off,就会关闭所有的错误提示。 针对 Tomcat 中间件的修复方案: 修改 web.xml,加入如下代码:
针对 IIS 服务器的修复方案: “网站属性”->“主目录”->“应用程序配置”->调试,选择“向客户端发送下列文本信息” 针对 JSP 的修复方案: 1.检查程序中的所有变量,以了解所有预期的参数和值是否存在。当参数缺失导致程序错误时,程序应转向统一的错误页面,不应该抛出未经处理的异常。 2.应用程序应验证其输入是否由有效字符组成(解码后)。例如,应拒绝包含空字节(编码为 %00)、单引号、引号等的输入值。 3.确保值符合预期范围和类型。如果应用程序预期特定参数具有特定集合中的值,那么该应用程序应确保其接收的值确实属于该集合。例如,如果应用程序预期值在 10-99 范围内,那么就该确保该值确实是数字,且在 10-99 范围内。 4.验证数据是否属于提供给客户端的集合。 5.请勿在生产环境中输出调试错误消息和异常。 |
测试过程 |
向Web应用提交一些恶意字符: %df %27 %20 ' } ; ) -
../../ 一般情况下是Web应用程序接收用户输入的信息后,未捕获异常,如:数据类型错误、空值、非法字符造成程序不能继续执行,导致抛出错误信息。 |
复测情况 |
未修复 |
测试人员 |
测试人员1 测试人员2 |
原文始发于微信公众号(利刃信安):【每天一个漏洞报告09】应用程序未容错漏洞
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论