《Web安全测试学习手册》- 应用程序未容错

0x00 应用程序未容错

1)什么是应用程序未容错

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

2)应用程序未容错的特点

  • 产生异常

0x01 应用程序未容错 - 风险等级

0x02 应用程序未容错 - 原理

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

0x03 应用程序未容错 - 常见场景

  • 查询功能
  • 上传文件功能
  • 访问不存在的页面

0x04 测试方案

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

  • %df
  • %27
  • %20
  • }
  • ;
  • )
  • -
  • ../../
  • ….(省略)

应用程序未容错

上面这个场景是由于id值将要被带入数据库查询,而我们没有提交id,id也没有默认值,导致经过toInt方法时报错。

PS:toInt无法将空值转换成数字。

0x05 修复方案

PHP

在页面中添加:

error_reporting(0);

或更改php.ini

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

Tomcat

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

<error-page> 
  <error-code>500</error-code> 
  <location>/error.jsp</location> 
</error-page> 

IIS

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

应用程序未容错