描述
如果攻击者通过伪造包含非应用程序预期的参数或参数值的请求,来探测应用程序,那么应用程序可能会进入易受攻击的未定义状态。攻击者可以从应用程序对该请求的响应中获取有用的信息,且可利用该信息,以找出应用程序的弱点。
错误消息中泄露重要信息的另一个原因,是脚本编译引擎,web服务器或数据库配置错误。
以下是一些不同的变体:
(1)去掉参数。
(2)去掉参数值。
(3)将参数值设置为空。
(4)将参数值设置为数字溢出。
(5)将参数值设置为危险字符。
(6)将某字符串附加到数字参数值。
解决方法:
1.检查请求,以了解所有预期的参数和值是否存在。当参数缺失时,发出适当的错误消息,或使用缺省值。
2.应用程序应验证其输入是否由有效字符组成(解码后)。例如 ,应拒绝包含空字节(编码为%00)、单引号、引号等的输入值 。
3.确保值符合预期范围和类型。
4.验证数据属于提供给客户端的集合。
5.请勿在生产环境中输出调试错误消息和异常。
最后欢迎大家访问我的个人网站:1024s