恶意输入攻击瞄准应用不能充分解析的值。不充分的解析可能是由于不加区分地接受用户提供的数据、依赖客户端校验过滤器或者不会使用非表单数据的预期。一旦攻击者找到了一个目标,接着就可能有更严重的攻击。基于拙劣的输入校验的攻击包括缓冲区溢出、任意文件访问、社会工程攻击、SQL注入和命令注入。输入校验例程决非小事,忽略了它将会造成应用的极大风险。下面是发现不足的输入过滤器的一些目标:
·GET请求的每个参数
·POST请求的每个参数
·表单(电子邮件地址、家庭地址、姓名、注释)
·搜索域
·cookie值
·浏览器环境值(用户代理、IP地址、操作系统等)
此外,表6-5列出了常常代表恶意载荷或者代表某种生成错误或者执行命令的字符和URL编码。这些字符并不一定攻击应用,也不总是无效的;但是,在应用不期望这些字符出现的地方,往往保持一点耐心就能使它们成为一次攻击。
表6-5 测试输入校验的流行字符