《Web安全测试学习手册》- 应用程序未容错
0x00 应用程序未容错
1)什么是应用程序未容错
应用程序未屏蔽执行过程中的错误信息,直接抛出了异常。
2)应用程序未容错的特点
- 产生异常
0x01 应用程序未容错 - 风险等级
低
0x02 应用程序未容错 - 原理
一般情况下是Web应用程序接收用户输入的信息后,未捕获异常,如:数据类型错误、空值、非法字符造成程序不能继续执行,导致抛出错误信息。
0x03 应用程序未容错 - 常见场景
- 查询功能
- 上传文件功能
- 访问不存在的页面
0x04 测试方案
向Web应用提交一些恶意字符:
- %df
- %27
- %20
- ’
- }
- ;
- )
- -
- ../../
- ….(省略)
上面这个场景是由于id值将要被带入数据库查询,而我们没有提交id,id也没有默认值,导致经过toInt
方法时报错。
PS:toInt无法将空值转换成数字。
0x05 修复方案
PHP
在页面中添加:
或更改php.ini
display_errors的默认值为On,代表显示错误提示,如果设置为Off,就会关闭所有的错误提示。
Tomcat
修改 web.xml,加入如下代码:
<error-page>
<error-code>500</error-code>
<location>/error.jsp</location>
</error-page>
IIS
“网站属性”->“主目录”->“应用程序配置”->调试,选择“向客户端发送下列文本信息”