本帖最后由 young_1003 于 2020-8-8 12:12 编辑
XSS是什么?对我们有什么样的危害?
本期分享XSS攻击原理及分类;
一、XSS攻击原理
1、跨站脚本攻击(XSS)是由于web开发者在编写应用程序时没有对用户提交的语句和变量 中进行过滤或限制,XSS是一种常见于Web 应用中的计算机安全漏洞,恶意攻击者通过web页面向数据库或HTML页面中提交恶意的客户端脚本(常用的有JS脚本),当用户浏览此网页时,脚本就会在用户的浏览器上执行,进而达到攻击者的目的;
这段脚本执行的结果是会弹出一个对话框显示用户的cookie信息。攻击者在向目标服务器的某个页面进行数据输入的过程中,通过正常的输入方式来夹带进这段脚本,在没有任何识别拦截的情况下,就可以实现XSS攻击;
3、从下图可以看出, HTML通过将一些字符特殊地对待,来区别文本和标记,例如,小于符号(<)被看作是HTML标签的开始,<html>与</html>之间的字符是页面的标题等等。当动态页面中插入的内容含有这些特殊字符(如<)时,用户浏览器会将其误认为是插入了HTML标签,当这些HTML标签引入了一段JavaScript脚本时,这些脚本程序就将会在用户浏览器中执行。所以,当这些特殊字符不能被动态页面检查出问题时,就将会产生XSS漏洞。XSS也可以注入其他任意功能的脚本代码,而这些脚本代码也将能够在受害的浏览器上得到执行;
二、XSS分类
1、反射型XSS
1.1、反射型XSS,用户在页面输入框中输入数据,通过get 或者post 方法向服务器端传递数据,输入的数据一般是放在URL 的query string 中,或者是form 表单中,如果服务端没有对这些数据进行过滤、验证或者编码,直接将用户输入的数据呈现出来,就可能会造成反射型XSS;
1.3、反射型XSS完成XSS攻击应具备的两个条件:
1.3.1、向web页面注入恶意代码 1.3.2、恶意代码能够被浏览器成功的执行 1.4、反射型攻击,恶意代码并没有保存在目标网站,而是通过引诱用户点击一个链接到 目标网站的恶意链接来实施攻击的。也就是说,反射型的xss经过了后端,但没有经过数据库;
2、存储型XSS 2.1、存储型XSS,它和反射型XSS最大的不同就是,攻击脚本将被永久地存放在目标服务器的数据库和文件中。通常是因为服务器端将用户输入的恶意脚本没有经过验证就存储在数据库中,并且通过调用数据库的方式,将数据呈现在浏览器上; 2.2、这种攻击多见于论坛,攻击者在发帖的过程中,将恶意脚本连同正常信息一起注入到帖子的内容之中。随着帖子被论坛服务器存储下来,恶意脚本也永久地被存放在论坛服务器的数据库中。当其它用户浏览这个被注入了恶意脚本的帖子的时,恶意脚本则会在他们的浏览器中得到执行,从而受到了攻击;
2.3、比如,受害者在论坛上访问了携带以下链接的帖子:
XSS攻击的主要危害:
1、 盗取各类用户帐号:机器登录帐号、用户网银帐号、各类管理员帐号; 2、 控制企业数据:包括读取、篡改、添加、删除企业敏感数据的能力; 3、 盗窃企业重要的具有商业价值的资料; 4、 非法转账、强制发送电子邮件、网站挂马; 5、 控制受害者机器向其它网站发起攻击; 6、劫持用户cookie是最常见的跨站攻击形式,通过在网页中写入并执行脚本执行文件(多数情况下是JavaScript脚本代码),劫持用户浏览器,将用户当前使用的sessionID信息发送至攻击者控制的网站或服务器中;
|