针对目前日趋复杂化的web应用,web的安全问题逐渐暴露了出来。在绝大多数黑客成功攻击案例中,xss漏洞是应用最广泛、作用最关键的web安全漏洞之一。
xss漏洞的全称是:跨站脚本攻击(cross site scripting)。从首写字母命名的方式来看,应该取名css,但是这样就和层叠样式表的扩展名重名了,故取名为xss。而实际上,就连“跨站脚本攻击”这个名字本身也另有来历,仅仅是因为当时第一次演示这个漏洞的黑客是通过“跨站”的方式植入脚本进行攻击的。由于现代浏览器的“同源策略”已经让运行在浏览器中的javascript代码很难对外站进行访问了,所以,这个漏洞的名称可能存在一定的误导性,让很多初学者看了很多次都不能理解这个漏洞的原理。
xss漏洞的原理
主要是依靠一切可能的手段,将浏览器中可以执行的脚本(javascript)植入到页面代码中,从而对用户客户端实施攻击。这才是我认为在目前这个“大前端时代”xss攻击的定义。
实际上黑客攻击这种行为从本质上讲,就是想尽一切手段在别人的代码环境中执行自己的代码。
这件事情又可以分为两部分进行研究,一是如何把代码植入到对方的系统中去,二是植入进去的代码能不能被对方的系统执行。
xss漏洞是对web客户端(浏览器)的攻击,所以说植入的代码基本上以javascript和html标签(有时也有结合css样式的xss向量)为主。
xss的脚本植入方式
从web开发者的视角来看,这实际上是通过一个post接口将xss代码作为参数传入,由于这套B/S系统中刚好存在“前台接收数据存入数据库,在渲染页面时从数据库中读取相应信息”这样的逻辑,于是我们的xss代码成功植入到了这个页面中。
在现实生产环境中,我们同样可以通过get接口或是其他http接口、甚至tcp、socket等其他协议的接口将xss代码传入,然后观察其对页面内容的影响。有时,可能在A页面上面发现的某个看似简单的get接口,却可以把数据传入到B页面,C页面,甚至传到一个外网环境无法访问的“后台页”,这就是所谓的“xss盲打后台”。
xss的类型
可以分为很多种,网上的很多有关xss的资料将其划分出了很多种不同的类型。实际上,我认为xss主要可以分为:持久型xss和非持久型xss。
持久型xss就是将对客户端攻击的脚本植入到服务器上,从而导致每个正常访问页面的用户都会遭到这段xss脚本的攻击。
非持久型xss是对一个页面的url中的某个参数做文章,把精心构造的恶意脚本包装到url参数中,再将这个url散布到网上,骗取用户访问这个url,从而对其进行攻击。
散布的方式通常伴有一些美女图片、游戏外挂或是其他的一些强诱惑力的内容,而其真实目的则是为了骗取用户访问这个url。非持久型xss的安全威胁较小,因为只要服务端调整业务代码进行过滤,黑客精心构造的这段url就瞬间失效了。
而相比之下,持久型xss的攻击影响力很大,有时候服务端需要删好几张表,查询很多库,才能将带有恶意代码的数据全部清除。
通过xss能做的事情
有很多,绝大多数的网络攻击行为都是把xss作为漏洞链中的第一环。通过xss,黑客可以得到的最直接的利益就是拿到用户浏览器(或者一些类浏览器app)的cookie。由于目前web系统中实现session的办法主要是cookie,所以一旦黑客拿到了用户的cookie,就可以劫持用户的session,从而变相达到盗取用户账号的目的。
xss也使黑客可以以受害用户的ip地址向其他站点发起web攻击,因为一切的攻击脚本都可以借受害用户的浏览器执行。
以这样的方式,将xss配合起csrf、sql注入等漏洞可以在短时间内对一个服务器发起大量攻击,并且服务端无法将攻击ip封死,因为ip是成百上千的xss受害者的ip。
2015年github遭遇的大规模DDOS,实际上就是黑客以某种方式把而已脚本植入到“熊场”的广告联盟iframe中,从而对github的某些接口实施攻击,最终达到DDOS的效果。
另外,持久性xss的传播性极强,由于web的特点是轻量级、灵活性高,每个用户每天都可能访问很多web站点,每个web站点每天都有成千上万的来访。所以将xss攻击配合起一些系统内核级的漏洞,完全可能在几个小时之内击垮几百万台智能设备。
如今的xss
相比网上很多资料中,在技术上已经发生了很大变化。由于各大网站加强了对于js脚本、html标签等关键信息的过滤,单纯依靠植入javascript代码很难实施攻击。
PC端页面,一些视频类、页游网站存在大量的flash内嵌在页面中,可以尝试将flash代码植入,往往可以规避网站安全过滤。移动端页面,可以植入native代码(android系统植入java,ios系统植入oc)。
相关推荐
XSS防护:XSS攻击原理与类型.docx
XSS攻击原理涉及Web应用程序如何处理用户输入的问题。在不经过适当过滤的情况下,用户输入的数据可能会被当作代码执行。比如,当一个Web表单用于收集用户信息,并将这些信息显示在页面上,如果开发者没有对这些信息...
XSS攻击常识及常见的XSS攻击脚本汇总
8. **员工安全培训**:提高开发团队的安全意识,定期进行安全训练,理解XSS攻击原理,避免在代码实现中引入漏洞。 综上所述,处理SpringBoot项目的XSS攻击需要从多角度出发,结合输入验证、CSP策略、HTTPOnly ...
在本实例"XSS攻击实例1"中,我们将探讨这种攻击的原理、类型以及如何在Asp.net框架下预防。 XSS攻击主要分为三类:反射型XSS、存储型XSS和DOM型XSS。反射型XSS是通过诱使用户点击含有恶意参数的链接,将脚本插入到...
- 培训开发团队了解XSS攻击原理和防范措施,提高安全意识。 - 实施代码审查制度,确保所有涉及用户输入的地方都进行了适当的防御处理。 8. **测试与监控**: - 定期进行安全审计和渗透测试,发现并修复潜在的XSS...
一、XSS攻击原理 XSS攻击通常分为三种类型:存储型XSS、反射型XSS和DOM型XSS。 1. 存储型XSS:攻击者将恶意脚本插入到服务器端,例如在论坛发帖或评论中。当其他用户查看这些内容时,恶意脚本将在他们的浏览器中...
**一、反射型XSS攻击原理** 1. **攻击过程**:攻击者构造一个包含了恶意脚本的URL,并通过电子邮件、聊天工具或论坛等途径诱骗用户点击。当用户点击这个链接时,浏览器会向服务器发送包含恶意脚本的请求,服务器未...
#### 二、XSS攻击原理与分类 - **原理**:XSS攻击的核心在于攻击者能够将恶意脚本注入到网站页面中,这些脚本会被受害者的浏览器解析并执行,从而导致恶意行为的发生。由于现代Web页面中包含了大量动态内容(如...
#### XSS攻击原理与分类 XSS(Cross-Site Scripting)跨站脚本攻击是一种常见的安全威胁,它利用Web应用程序的安全漏洞,将恶意脚本注入到合法的网页中,进而攻击最终用户。XSS攻击主要分为以下两种类型: 1. **...
二、XSS攻击原理与步骤 1. 攻击者找到可注入恶意脚本的网站漏洞。 2. 制造含有恶意脚本的链接或表单提交。 3. 引诱受害者点击或访问含有恶意脚本的页面。 4. 恶意脚本在受害者浏览器中执行,可能窃取cookies、会话...
理解XSS攻击的原理和类型,结合实际应用,选择合适的防护策略,是保障Web应用安全的关键。通过Web.xml配置过滤器是其中一种简单实用的方法,但全面的安全措施应包括多个方面,以确保用户的浏览体验不受威胁。
了解这些基础知识对于理解XSS攻击原理和实施防护措施很有帮助。 9. 法律责任:文件最后提到了违反网络安全法的相关法律后果,强调了个人信息保护的重要性。这提醒安全人员在进行安全测试和防护时,必须在法律框架内...
#### XSS攻击原理 XSS攻击的核心在于利用Web应用的漏洞将恶意脚本注入到用户的浏览器中执行。通常情况下,Web应用在接收和显示用户提供的数据时,如果没有进行足够的过滤和转义处理,就可能成为XSS攻击的目标。攻击...
XSS攻击主要有三种类型:反射型XSS、存储型XSS和DOM型XSS。 1. **反射型XSS** 反射型XSS也称为非持久性XSS,是通过诱使用户点击包含恶意脚本的链接来触发的。攻击者通常会构造一个带有恶意脚本的URL,并通过电子...
### XSS跨站脚本攻击...通过对XSS攻击原理及其编码技巧的深入理解,开发者可以更好地识别潜在的风险,并采取有效的防御措施来保护Web应用的安全。此外,持续关注最新的安全趋势和技术也是预防XSS攻击的重要手段之一。
二、XSS攻击原理 XSS攻击的核心是利用网站的信任,将恶意脚本插入到用户可见的网页内容中。例如,一个评论系统如果没有对用户输入进行适当的过滤或编码,攻击者可以发布包含JavaScript代码的评论,当其他用户查看这...
**XSS攻击原理** XSS攻击通常通过诱使用户点击含有恶意脚本的链接,或者提交包含恶意脚本的表单来实现。一旦脚本执行,攻击者可以获取用户的会话cookie、执行JavaScript代码、重定向用户到其他网站等。 **游戏/...
3. **实战演练**:11个模块涵盖了XSS攻击的常见场景,如反射型XSS、存储型XSS、DOM型XSS等,开发者可以通过实践操作,加深对XSS攻击原理和防范措施的理解。 4. **学习资源**:平台可能还包含了相关的学习资料和教程...