目录
Task2: 上网搜索一份XSS 的fuzz字典或字典生成工具
Task1: 总结反射型、存储型、DOM型XSS特点和区别
1.反射型 XSS (Reflected XSS)
特点:
- 注入点:攻击者通过伪造请求,将恶意脚本注入到 HTTP 请求中,恶意代码通常作为 URL 参数或表单数据传递到服务器。
- 触发机制:当用户点击恶意链接时,服务器将用户的输入内容原样反射回浏览器,并在页面上执行恶意脚本。
- 攻击流程:攻击者诱使用户访问包含恶意代码的链接。服务器将这些代码“反射”到响应页面中,从而在用户的浏览器上执行。
区别:
- 反射型 XSS 主要依赖于攻击者诱导用户访问恶意链接。它不需要存储恶意代码在服务器上,只需要服务器返回用户提供的恶意数据。
2. 存储型 XSS (Stored XSS)
特点:
- 注入点:攻击者将恶意代码直接注入到服务器的数据库或其他持久性存储中,例如评论区、论坛帖子、用户配置文件等。
- 触发机制:当其他用户访问存储了恶意代码的页面或资源时,这些恶意代码会被从存储中取出并执行。
- 攻击流程:恶意代码存储在服务器上,一旦存储,所有访问该内容的用户都可能受到攻击。
区别:
- 存储型 XSS 的恶意代码在服务器端持久存储,因此它可以影响到所有访问该页面的用户,不仅仅是点击特定链接的用户。攻击者不需要直接诱导用户访问特定链接,只需注入恶意代码到服务器上即可。
3. DOM 型 XSS (DOM-based XSS)
特点:
- 注入点:恶意代码通过修改浏览器端的 DOM 结构来注入。这种类型的 XSS 攻击不依赖于服务器端的响应,而是通过客户端脚本处理数据时注入。
- 触发机制:当客户端 JavaScript 处理用户输入或其他数据时,恶意脚本被插入到 DOM 中并执行。
- 攻击流程:攻击者操控客户端 JavaScript 代码处理和操作 DOM 结构,将恶意代码注入到页面中。这种攻击通常通过修改 URL 或 Web 应用程序的客户端代码来实现。
区别:
- DOM 型 XSS 完全在客户端进行,不涉及服务器的响应过程。攻击者利用客户端脚本对 DOM 的操作来注入和执行恶意代码。这种攻击类型强调客户端脚本的处理和数据操作,而不是服务器的反射或存储行为。
4. 总结对比
- 反射型 XSS:依赖服务器反射用户输入,通常通过恶意链接诱导用户触发。
- 存储型 XSS:恶意代码存储在服务器上,影响所有访问该内容的用户。
- DOM 型 XSS:恶意代码通过客户端脚本注入和执行,攻击不依赖于服务器响应。
Task2: 上网搜索一份XSS 的fuzz字典或字典生成工具
https://www.cnblogs.com/CVE-Lemon/p/16187971.html
lotusirous/DistributedXSSFuzz (github.com)
oldboot/FuzzDicts: FuzzDicts 字典,一个就够了。 (github.com)
Task3: 挑战XSS靶场
靶场地址:欢迎来到XSS挑战 (tesla-space.com)
1.level1
在test=后插入<script>alert('1')</script>即可通关
2.level2
尝试输入<script>alert('1')</script>,发现无法注入
右击检查输入框源码,发现输入被转义为字符串。
输入"><script>alert('1')</script>提前闭合转义,完成注入
3.level3
尝试输入"><script>alert('1')</script>,发现不能注入
检查源码发现搜索处在value变量的地方,输入的用于闭合的双引号被实体化了,同时>也被实义化了
既然这样,我们只能考虑不使用>进行闭合,而是在input标签内进行XSS。输入'οnclick='alert(1)
成功通关
4.level4
尝试输入<script>alert('1')</script>,发现<>被过滤
尝试输入'οnclick='alert(1),发现被”“转义
尝试将单引号改为双引号,输入"οnclick="alert(1)
成功通关
5.level5
尝试输入'οnclick='alert(1),alert加了双引号,变成字符串了,后面尝试onclick也被修改。
发现不让使用script,尝试使用用a标签搭配javascript:alert,输入"><a href="javascript:alert(1)">
完成通过。