购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

1.10 实验#10:testasp网站有XSS攻击风险

缺陷标题 testasp网站首页→search页面→search posts框中存在XSS攻击风险。

测试平台与浏览器 Windows 7(64 bit)+IE 11。

测试步骤

(1)打开testasp网站http://testasp.vulnweb.com。

(2)单击导航条上的search链接。

(3)在search posts左侧文本框中输入 cript alert("test") /script ,单击search posts按钮查找。

期望结果 不存在XSS攻击风险。

实际结果 存在XSS攻击风险,弹出XSS攻击成功对话框,如图1-21所示。

图1-21 XSS攻击成功对话框

专家点评

现在的网站大多包含大量的动态内容以提升用户体验,Web应用程序能够显示与用户输入相应的内容。例如,有人喜欢写博客,有人喜欢在论坛中回帖,有人喜欢聊天……动态站点会受到一种名为“跨站脚本攻击”[Cross Site Scripting,安全专家们通常将其缩写成XSS,原本应当是CSS,但为了和层叠样式表(Cascading Style Sheet, CSS)有所区分,故称XSS]的威胁;静态站点因为只能看,不能修改,所以完全不受其影响。

动态网站网页文件的扩展名一般为ASP、JSP、PHP等,要运行动态网页还需要配套的服务器环境;静态网页的扩展名一般为HTML、SHTML等,只要用普通的浏览器打开就能解析执行。

(1)从网站开发者角度,如何防护XSS攻击。

来自OWASP的建议,对XSS最佳的防护应该结合两种方法:验证所有输入数据,有效检测攻击;对所有输出数据进行适当的编码,以防止任何已成功注入的脚本在浏览器端运行。具体如下。

输入验证:某个数据被接受为可被显示或存储之前,使用标准输入验证机制,验证所有输入数据的长度、类型、语法以及业务规则。

输出编码:数据输出前,确保用户提交的数据已被正确进行entity编码,建议对所有字符进行编码而不仅局限于某个子集。

明确指定输出的编码方式:不要允许攻击者为用户选择编码方式(如ISO 8859-1或UTF 8)。

注意黑名单验证方式的局限性:仅仅查找或替换一些字符(如" "" "或类似"script"的关键字),很容易被XSS变种攻击绕过验证机制。

警惕规范化错误:验证输入之前,必须进行解码及规范化,以符合应用程序当前的内部表示方法。请确定应用程序对同一输入不做两次解码。

(2)从网站用户角度,如何防护XSS攻击。

当打开一封E-mail或附件、浏览论坛帖子时,恶意脚本可能会自动执行,因此在做这些操作时一定要特别谨慎。建议在浏览器设置中关闭JavaScript。如果使用IE浏览器,建议将安全级别设置为“高”。 wTkWMPQosO7BvALQkx6msu+90rvvA7Sr42rowQF32/IdOqzCaTxCPHjKe5TcdlLW

点击中间区域
呼出菜单
上一章
目录
下一章
×