XSS几种类型 二(dom xss)

1.Dom型xss

就是封成url可点击的,可能放在href,可能放在onclick,这个就自己试一下

此处示例1:

试试加一串onclick="alert('xss')",然后点击”有些费尽心机……" 弹框报错xss

示例2:试试加一个方法:onmouseover事件会在鼠标指针移动到指定的对象上时触发事件发生。

onmouseover="alert('ccc')

也可以直接看pikachu对应vuln下面的注释解析

2.DOM-xss-x

跟domx-xss类似只要改一下onclick里具体的值;或者加个鼠标方法

解析也可直接参考

XSS(跨站脚本攻击)是一种常见的安全漏洞,主要出现在Web应用程序中。根据其特点和触发机制,XSS可以分为三种主要类型:反射XSS、存储XSS以及DOMXSS。 ### 反射XSS 反射XSS是最简单的一种形式,通常涉及将恶意脚本嵌入到URL参数中。当用户点击包含恶意代码的链接时,该脚本会在用户的浏览器上执行。这种类型XSS是非持久性的,因为它不涉及服务器端的数据存储。 **示例演示** 假设有一个搜索功能的网站,它通过URL参数接收用户的查询词,并直接将其显示在页面上而没有进行适当的过滤或转义。如果一个攻击者构造了一个特殊的查询字符串,例如: ``` http://example.com/search?q=<script>alert('XSS')</script> ``` 当受害者点击这个链接时,他们的浏览器会弹出一个警告框,显示“XSS”,这表明存在潜在的安全风险。 ### 存储XSS 存储XSS发生在用户输入的内容被保存在服务器上(如数据库、消息论坛等),然后在没有适当处理的情况下返回给其他用户浏览。这种类型XSS是持久性的,因为一旦恶意内容被存储,它可以影响所有访问受影响页面的用户。 **示例演示** 考虑一个在线留言板应用,允许访客发布评论。如果应用不对用户提交的内容做任何检查就直接存入数据库,并且在展示留言时也不做任何清理工作,那么攻击者就可以提交如下内容作为留言: ```html <script> // 这里是一段恶意JavaScript代码 alert('您的个人信息已被窃取!'); </script> ``` 每当有用户查看这条留言时,这段脚本就会在其浏览器上执行,可能导致敏感信息泄露或其他不良后果。 ### DOMXSS DOMXSS不同于前两种类型,因为它完全是在客户端发生的。这类攻击利用了网页中的文档对象模(Document Object Model, DOM)来注入恶意代码。在这种情况下,即使服务器端对数据进行了正确处理,但如果前端JavaScript以不安全的方式操作DOM,则仍可能存在漏洞。 **示例演示** 假设有这样一个HTML文件,其中有一段JavaScript代码用来动态更新页面内容: ```html <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>DOM Based XSS Demo</title> <script> function updateContent() { var userInput = document.getElementById("userInput").value; document.getElementById("output").innerHTML = userInput; } </script> </head> <body> <input type="text" id="userInput" oninput="updateContent()"> <div id="output"></div> </body> </html> ``` 在这个例子中,如果用户输入了类似`<img src=x onerror=alert('XSS')>`的内容,由于使用了`innerHTML`属性来设置`<div>`的内容,所以当图片加载失败时,`onerror`事件处理器会被触发并执行恶意脚本。 为了防止这些类型XSS攻击,开发者应该采取一系列防御措施,比如对所有用户提供的内容进行验证和清理,在输出之前对特殊字符进行HTML实体编码,采用CSP(Content Security Policy)策略限制只信任特定来源的脚本等等 [^4]。
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值