关注公众号“中科天齐软件安全中心”(id:woocoom),一起涨知识!
该栏目为中科天齐全新规划的悟空云课堂,每周五下午18:00准时上线,旨在科普软件安全相关知识,助力企业有效防范软件安全漏洞,提升网络安全防护能力。
【悟空云课堂】第十五期:跨站脚本漏洞(CWE-79: Improper Neutralization of Input During Web Page Generation (‘Cross-site Scripting’))
什么是跨站脚本漏洞?
从用户控制的输入到输出之前软件没有对其进行过滤或没有正确过滤,这些输出用作向其他用户提供服务的网页。
跨站脚本(XSS)漏洞通常在以下情况发生:
(1)不可信数据进入网络应用程序,通常通过网页请求;
(2)网络应用程序动态地生成一个带有不可信数据的网页;
(3)在网页生成期间,应用程序不会阻止Web浏览器可执行的内容数据,例如JavaScript,HTML标签,HTML属性、鼠标事件、Flash、ActiveX等;
(4)受害者通过浏览器访问的网页包含带有不可信数据的恶意脚本;
(5)由于脚本来自于通过web服务器发送的网页,因此受害者的web浏览器会在web服务器域的上下文中执行恶意脚本;
(6)违反web浏览器的同源策略,同源策略是一个域中的脚本不能访问或运行其他域中的资源或代码。
跨站脚本漏洞的构成条件有哪些?
满足以下条件,就构成了一个该类型的安全漏洞:
1、数据从不可靠来源(包括但不局限于不可靠用户的输入信息或是不可靠用户可能更改的文件)进入应用程序;
2、该数据未经过滤或不正确地过滤特殊字符后,直接使用;
跨站脚本漏洞会造成哪些后果?
关键词:执行未经授权的代码或命令;旁路保护机制;读取应用程序数据;
1、盗取各类用户帐号,如机器登录帐号、用户网银帐号、各类管理员帐号。
2、控制企业数据,包括读取、篡改、添加、删除企业敏感数据的能力。
3、盗窃企业重要的具有商业价值的资料。
4、非法转账。
5、强制发送电子邮件。
6、网站挂马。
7、控制受害者机器向其它网站发起攻击。
跨站脚本漏洞的防范和修补方法有哪些?
- 输入验证:对输入的信息进行验证。仔细检查每个输入参数,以确定允许的特定字符和格式。
- 输出编码:使用并指定下游组件可处理的输出编码格式。常用编码包括ISO-8859-1,UTF-7和UTF-8。
跨站脚本漏洞样例:
public class Persist_XSS