Day 4作业

目录

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

(1)反射型XSS(Reflected XSS)

(2).存储型XSS(Stored XSS)

(3)DOM型XSS(DOM-based XSS)

区别:

二、到XSS挑战靶场打靶。

第一关(URL传参):

第二关(输入框注入):

第三关:事件注入

第四关:引号类型

第五关:a标签注入

三、 总结浏览器解析机制。


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

XSS(跨站脚本攻击,Cross Site Scripting)是一种常见的网络安全攻击方式,主要分为反射型、存储型和DOM型三种。以下是这三种XSS攻击的特点和区别:

(1)反射型XSS(Reflected XSS)

特点:

  1. 非持久性:反射型XSS的攻击载荷(payload)不会存储在目标服务器上,而是通过URL参数、表单字段或HTTP头等方式传送到受害者的浏览器并执行。
  2. 特定目标:攻击者通常通过诱骗用户点击一个包含恶意脚本的链接来发起攻击,因此被攻击对象是特定的。
  3. 前端执行:恶意脚本在用户的浏览器中执行,不涉及服务器端的代码执行。

危害:

1.窃取用户敏感信息,如cookie、会话令牌等。

2.冒充用户身份进行非法操作。

(2).存储型XSS(Stored XSS)

特点:

  1. 持久性:攻击者将恶意脚本存储在目标服务器的数据库或文件中,这些脚本将随着页面的加载而自动执行。
  2. 广泛影响:由于恶意脚本存储在服务器上,所有访问该页面的用户都可能成为受害者,因此危害面更广。
  3. 隐蔽性高:由于恶意脚本存储在服务器上,攻击者可以很容易地修改和更新这些脚本,而不易被用户或管理员发现。

危害:

  1. 除了反射型XSS的所有危害外,还可能使网站成为传播恶意软件或进行钓鱼攻击的平台。
  2. 可能导致网站被用作DDoS攻击的肉鸡。

(3)DOM型XSS(DOM-based XSS)

特点:

  1. 客户端执行:DOM型XSS完全在客户端执行,不涉及服务器端的任何改变。恶意脚本通过修改客户端的DOM结构来触发执行。
  2. 隐蔽性强:由于攻击发生在客户端,服务器端的日志可能不会记录任何异常,这使得检测和追踪变得更加困难。
  3. 动态内容相关:攻击通常与网页的动态生成内容有关,如JavaScript生成的内容。

危害:

  1. 窃取用户的敏感信息、修改页面内容或进行其他恶意活动。
  2. 由于不涉及服务器端的代码执行,因此传统的Web安全防御措施(如防火墙、入侵检测系统等)可能无法有效防御DOM型XSS攻击。

区别:

总结来说,反射型、存储型和DOM型XSS在持久性、存储位置、攻击方式和影响范围等方面存在显著差异。了解这些特点和区别对于制定有效的防御策略至关重要。

二、到XSS挑战靶场打靶。

要求通过5关以上,通关越多,加分越多。(https://xss.tesla-space.com/)

第一关(URL传参):

分析URL中的参数有个name,根据XSS原理,注入恶意脚本,尝试注入payload:

name=<script>alert()</script>

回车后成功:

第二关(输入框注入):

1.尝试注入payload,输入<script>alert()</script>

2.查看源码,输入的语句被转义了,但是可以尝试嵌套一个反标签符号

Payload:

"><script>alert()</script><"

第三关:事件注入

  1. 依然先尝试<script>alert()</script>

2. 查看页面源码发现input文本框的值也被实体化了,注意这一关使用的是单引号。这时候该是考虑为协议的时候到了,onclick当点击按钮时执行一段 JavaScript

3.在输入框输入' οnfοcus=javascript:alert() '

4.点一下搜索之后,再点一下空白的输入框,触发onfocus事件

第四关:引号类型

1.尝试输入上一关内容:' οnfοcus=javascript:alert() ',失败之后查看源代码

2.发现外围是双引号,双包单了,不符合javascript 的onfocus事件绑定,只要切换payload为双引号即可:" οnfοcus=javascript:alert() "

3.提交payload后,照旧点击input框,触发onfocus事件

第五关:a标签注入

1.尝试使用上一关办法,输入οnfοcus=javascript:alert(),事件名称被强制转换

2.这里就要用到a标签的href属性了,尝试注入<a href=”javascript:alert()

3.分析源码,并无异常转换,只是少了个"> 和 <",构造payload:

"><a href="javascript:alert();">xx</a><"

4.点击搜索框后的蓝色字符

三、 总结浏览器解析机制。

浏览器解析机制是一个复杂的过程,涉及从用户输入URL到最终页面渲染在屏幕上的多个步骤。以下是浏览器解析机制的一个简洁总结:

1.URL解析与缓存检查:

浏览器首先解析输入的URL,识别出协议、域名、端口(如有)、路径等信息。

检查浏览器缓存和系统缓存,看是否有该资源的副本且未过期。如果找到,直接从缓存中加载,避免网络请求。

2.DNS查询:

如果缓存中没有找到资源,浏览器会进行DNS查询,将域名转换为IP地址。这涉及到向DNS服务器发送请求并接收响应。

3.建立连接:

使用TCP协议(对于HTTPS,还包括TLS握手过程)与服务器建立连接。

4.发送HTTP请求:

浏览器构建HTTP请求报文,并通过建立的连接发送给服务器。请求报文包括请求行、请求头和可能的请求体。

5.服务器响应:

服务器接收请求后,处理请求并返回HTTP响应报文。响应报文包括状态码、响应头和响应体(通常是HTML、CSS、JavaScript等资源)。

6.页面渲染:

解析HTML:浏览器使用HTML解析器将HTML文档转换为DOM树。

构建CSSOM:同时,CSS文件被解析并构建成CSSOM(CSS对象模型)。

构建渲染树:将DOM树和CSSOM合并成渲染树(Render Tree),它包含了所有用于显示的内容及其样式信息。

布局(Reflow/Relayout):计算渲染树中每个节点的位置和大小,确定其在页面上的布局。

绘制(Repaint):根据渲染树和布局信息,浏览器绘制页面上的每个元素。

7.JavaScript执行:

如果HTML中包含JavaScript代码,浏览器会暂停HTML解析,等待JavaScript引擎执行这些代码。JavaScript可以修改DOM树和CSSOM,从而触发回流和重绘。

8.资源加载:

在解析HTML的过程中,浏览器还会加载图片、字体、视频等外部资源,这些资源也会影响页面的渲染。

9.页面完成:

当HTML文档被完全加载和解析,所有资源都已加载完毕,并且所有脚本都已执行完毕后,页面渲染完成,用户可以看到完整的页面。

浏览器解析机制是一个高度优化的过程,旨在快速且准确地呈现用户请求的网页内容。通过缓存、并行加载、异步执行等技术,浏览器能够减少网络请求次数、提高页面加载速度,并提升用户体验。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值