【每天一个漏洞报告09】应用程序未容错漏洞

admin 2022年3月4日15:28:41评论165 views字数 1031阅读3分26秒阅读模式

xxx系统存在应用程序未容错漏洞

漏洞名称

应用程序未容错漏洞

漏洞地址


漏洞等级

低危

漏洞描述

Web 服务器未能正确处理异常请求导致 Web 服务器版本信息泄露,攻击者收集到服务器信息后可进行进一步针对性攻击。

检测到服务器返回的页面信息中包含数据库错误信息。通过数据库错误信息可以得知后台数据库类型,甚至数据库结构。为进一步 SQL 注入攻击提供有利信息。

漏洞成因

应用程序未屏蔽执行过程中的错误信息,直接抛出了异常。

一般情况下是Web应用程序接收用户输入的信息后,未捕获异常,如:数据类型错误、空值、非法字符造成程序不能继续执行,导致抛出错误信息。

漏洞危害

攻击者收集到服务器信息后可进行进一步针对性攻击检测到服务器返回的页面信息中包含数据库错误信息。通过数据库错误信息可以得知后台数据库类型,甚至数据库结构。为进一步 SQL 注入攻击提供有利信息

修复方案

针对 PHP 的修复方案:

在页面中添加:

error_reporting(0);

或更改php.ini

display_errors的默认值为On,代表显示错误提示,如果设置为Off,就会关闭所有的错误提示。


针对 Tomcat 中间件的修复方案:

修改 web.xml,加入如下代码:

  500 

  /error.jsp 


针对 IIS 服务器的修复方案:

“网站属性”->“主目录”->“应用程序配置”->调试,选择“向客户端发送下列文本信息”


针对 JSP 的修复方案:

1.检查程序中的所有变量,以了解所有预期的参数和值是否存在。当参数缺失导致程序错误时,程序应转向统一的错误页面,不应该抛出未经处理的异常。

2.应用程序应验证其输入是否由有效字符组成(解码后)。例如,应拒绝包含空字节(编码为 %00)、单引号、引号等的输入值。

3.确保值符合预期范围和类型。如果应用程序预期特定参数具有特定集合中的值,那么该应用程序应确保其接收的值确实属于该集合。例如,如果应用程序预期值在 10-99 范围内,那么就该确保该值确实是数字,且在 10-99 范围内。

4.验证数据是否属于提供给客户端的集合。

5.请勿在生产环境中输出调试错误消息和异常。

测试过程

向Web应用提交一些恶意字符:

%df

%27

%20

'

}

;

)

-

   

../../

一般情况下是Web应用程序接收用户输入的信息后,未捕获异常,如:数据类型错误、空值、非法字符造成程序不能继续执行,导致抛出错误信息。

复测情况

未修复

测试人员

测试人员1 测试人员2


原文始发于微信公众号(利刃信安):【每天一个漏洞报告09】应用程序未容错漏洞

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年3月4日15:28:41
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   【每天一个漏洞报告09】应用程序未容错漏洞https://cn-sec.com/archives/666656.html

发表评论

匿名网友 填写信息