1.5 Testfire网站有HTML注入风险

缺陷标题:国外网站AltoroMutual出现登录失败后页面文字显示异常的错误。

测试平台与浏览器:Windows 7+Google浏览器+Firefox浏览器。

测试步骤

1)打开国外网站:http://demo.testfire.net。

2)单击“Sign In”。

3)在Username输入框输入“<script>alert("TEST")</script>”,在Password输入框输入任意字符(如图1-9所示),单击“Login”按钮。

图1-9 用户名输入XSS攻击代码段

期望结果:出现提示登录失败的正常页面。

实际结果:Username输入框后出现其他字符(如图1-10所示)。

[攻击分析]:

如果程序员对用户输入不做合法性校验,就容易导致数据库注入、XSS攻击、HTML注入攻击,导致网页结构被破坏、网站被框架等一系列意想不到的结果。

如果程序员对从数据库中取得的数据在显示展出时,不做适当的编码,直接输出到网页中,也会出现各种意想不到的效果,可能导致XSS攻击、网页结构被破坏、网站被框架等。

图1-10 网页结构被破坏,部分源代码显示出来

所以输入有效性验证和输出使用适当的编码是程序员需要考虑的事,这也是一个系统是否健壮的衡量指标。

本例由于程序员没有做输入有效性检查,同时输出时也没有做适当的编码输出,导致网页结构被破坏、部分源代码被展示出来。