重邮校内实习day4

1. 总结反射型、存储型、DOM型XSS特点和区别

反射型 XSS (Reflected XSS)
特点
攻击者通过构造特定的 URL,将恶意脚本作为参数传递给服务器。
服务器将该脚本反射回用户的浏览器,用户在点击链接后执行。
通常依赖于用户的交互,例如点击链接或提交表单。


存储型 XSS (Stored XSS)
特点
恶意脚本被永久存储在服务器上(如数据库、留言板等)。
当用户访问存储了恶意脚本的页面时,脚本会自动执行。
对用户的影响更大,因为只需一次注入,所有访问该页面的用户都会受到影响。


DOM型 XSS (DOM-based XSS)
特点
攻击发生在客户端,恶意脚本通过修改 DOM 结构来执行。
不依赖于服务器的响应,完全在用户的浏览器中进行。
攻击者可以通过操控 URL 的 hash 或 query 参数来注入脚本。

区别


| 特点             |          反射型 XSS          |          存储型 XSS         |         DOM型 XSS      |
|------------------|--------------------------------|--------------------------------|------------------------------|
| 执行时机      | 用户点击链接时            |       用户访问页面时       |        用户操作时          |
| 存储方式      |             不存储              |      存储在服务器上        | 不存储(客户端执行)|
| 影响范围      | 仅限于点击链接的用户 | 所有访问该页面的用户  | 仅限于受影响的用户   |
| 依赖交互      |       需要用户交互          |       不需要用户交互      |      需要用户交互         |

2.XSS 的fuzz字典链接

easyXssPayload/easyXssPayload.txt at master · TheKingOfDuck/easyXssPayload · GitHubXssPayload List . Usage:. Contribute to TheKingOfDuck/easyXssPayload development by creating an account on GitHub.icon-default.png?t=N7T8https://github.com/TheKingOfDuck/easyXssPayload/blob/master/easyXssPayload.txt

3.XSS挑战靶场打靶

1.反射型xss(get)

首先在对话框输入payload: <script>alert('xss')</script> ,发现对话限制长度,无法全部输入

f12打开工具台选择对话框,将原本20的长度改长即可输入完整内容

2.反射型xss(post)

这关我们输入第一天破解的管理员账户与密码即可

3.存储型XSS

再次在对话框输入payload

我们发现点击其他页面后,再切回存储型xss的页面后还是会弹出xss弹窗

4.DOM型xss

首先我们再次尝试输入之前的payload,发现无法成功攻击

再次使用f12打开工具台找到刚才输入的内容,发现原内容多出一个单引号,所以我们需要构造新的payload

再次在对话框输入新的payload: ' οnclick=alert('xss')> 后,点击“what do you see?”即可

5.DOM型XSS-X

这关同上关一样

6.xss之盲打

本关盲打指我们在前端并不能看到我们的代码,无法判断xss是否成功

在两个对话框都写入payload并提交后,根据提示登录进入后台即可看到xss攻击成功

4. 总结浏览器解析机制

1.文本解析:浏览器首先会解析HTML和XML文档结构,这一步是HTML解析器来完成的。解析器会根据文档类型定义(DTD)或HTML5的规范来构建DOM(文档对象模型)树。

2.DOM构建:在HTML解析的同时,浏览器会开始构建DOM树。DOM树是一个结构化的文档表示,用以展示HTML文档的结构。

3.CSS解析:浏览器接着会解析页面中的CSS样式代码。这一步是为了理解页面元素应该如何布局和显示。

4.渲染树构建:在DOM和CSS规则都解析完成之后,浏览器会产生一个渲染树(Rendering Tree)。渲染树包含用于显示的可见元素,与DOM树的元素相对应,但不包括Display: none的元素和表单的隐藏字段。

5.布局计算:浏览器将为渲染树中的每个元素计算确切的位置和大小,这一步称为布局(Layout)。

6.绘制:浏览器按照布局结果对渲染树中的元素进行绘制,完成整个页面的渲染。

7.事件处理:用户与页面交互时,浏览器会触发事件,例如点击、滚动或输入等,然后通过JavaScript执行相应的处理函数。

  • 19
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值