网安实习第四天作业(23组)

XSS(跨站脚本攻击)的主要类别和区别

一、反射型 XSS

特点
  1. 非持久性攻击:攻击脚本是通过用户请求的参数带入服务器,服务器解析后响应给客户端,从而在客户端触发攻击。
  2. 通常需要诱骗用户点击恶意链接或提交特定表单才能触发攻击。
  3. 攻击的影响范围相对较小,主要取决于用户是否点击恶意链接或提交恶意表单。
举例

攻击者构造一个恶意链接,其中包含恶意脚本,当用户点击这个链接时,服务器接收请求并将恶意脚本包含在响应中返回给用户浏览器执行。

二、存储型 XSS

特点
  1. 持久性攻击:攻击者将恶意脚本存储到目标服务器上,如存储在数据库、文件系统或其他可持久存储的地方。
  2. 一旦恶意脚本被存储,任何访问受影响页面的用户都可能受到攻击,无需用户进行特定操作来触发攻击。
  3. 攻击的危害较大,因为恶意脚本会持续存在并影响多个用户。
举例

攻击者在论坛上发布一篇带有恶意脚本的帖子,当其他用户浏览该帖子时,服务器将恶意脚本包含在页面中返回给用户,导致用户浏览器执行恶意脚本。

三、DOM 型 XSS

特点
  1. 通过修改页面的 DOM(文档对象模型)结构来执行恶意脚本,攻击代码不经过服务器。
  2. 通常是由于客户端 JavaScript 代码对用户输入处理不当导致的。
  3. 攻击的触发取决于客户端的操作和页面的逻辑,与服务器的交互相对较少。
举例

网页中的 JavaScript 代码从 URL 参数中获取数据并直接插入到页面中,如果没有对用户输入进行适当的过滤和转义,攻击者可以构造恶意的 URL 参数来触发 DOM 型 XSS 攻击。

三者区别

  1. 存储方式:反射型 XSS 攻击脚本不存储在服务器上;存储型 XSS 攻击脚本存储在服务器上;DOM 型 XSS 攻击脚本不经过服务器存储,而是通过修改客户端 DOM 结构触发。
  2. 触发方式:反射型 XSS 需要诱骗用户点击恶意链接或提交恶意表单;存储型 XSS 无需用户特定操作,只要访问受影响页面即可触发;DOM 型 XSS 取决于客户端页面的逻辑和操作。
  3. 危害程度:存储型 XSS 通常危害较大,因为它可以影响多个用户且持续存在;反射型 XSS 和 DOM 型 XSS 的危害相对较小,但也可能造成严重后果,具体取决于攻击场景。

XSS 的fuzz字典或字典生成工具

同学推荐的一份字典

fuzzDicts/easyXssPayload/easyXssPayload.txt at master · TheKingOfDuck/fuzzDicts · GitHub

XSS靶场打靶

第一关

整个界面只有name像是变量,发现可以更改,故进行payload注入

轻松通关

第二关

开发者模式查看源码发现输入框内输入的值是一个value值,故使标签闭合即可

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

闭合前面的双引号和<>

第三关

和上一关一样的思路,但发现网页对括号进行了转义

构建payload:

' onfocus='alert(123)'

第四关

和上一关一摸一样的思路

payload:

" onmouseover=alert(9) "

第五关

和上一关一样的思路常识,发现被加了下划线

多试几个payload

发现a标签的herf可以绕过检测

'"><a href='javascript:alert(123);'>点击我</a>

第六关

还是和上一关一样的思路

发现可以使用大小写混合绕过

'"><a HREF='javascript:alert(123);'>点击我</a>

总结浏览器解析机制

浏览器解析机制总结

一、HTML 解析
  1. 词法分析:浏览器首先将接收到的 HTML 文档进行词法分析,将文档分解成一个个的标记(token),如标签、属性名、属性值、文本内容等。
  2. 语法分析:对这些标记进行语法分析,构建成一棵 DOM(文档对象模型)树。DOM 树以树状结构表示 HTML 文档的内容,每个节点对应一个 HTML 元素。
  3. 错误处理:在解析过程中,如果遇到语法错误,浏览器会尽量进行错误恢复,以确保页面能够部分显示。但严重的错误可能导致页面显示不正常。
二、CSS 解析
  1. 下载 CSS 文件:浏览器在解析 HTML 文档的同时,会识别并下载页面中引用的 CSS 文件。
  2. 解析 CSS 规则:对 CSS 文件进行解析,将其分解成一个个的 CSS 规则。每个规则由选择器和声明块组成,声明块包含多个属性和值。
  3. 构建 CSSOM(CSS 对象模型)树:根据解析后的 CSS 规则构建 CSSOM 树,该树与 DOM 树相对应,描述了每个 HTML 元素的样式信息。
三、JavaScript 解析和执行
  1. 下载 JavaScript 文件:当浏览器遇到 <script> 标签时,会下载相应的 JavaScript 文件。
  2. 解析和编译:对 JavaScript 代码进行解析和编译,将其转换为可执行的机器代码。
  3. 执行代码:按照代码的顺序依次执行 JavaScript 代码。JavaScript 可以操作 DOM 树和 CSSOM 树,改变页面的结构和样式。
四、页面渲染
  1. 构建渲染树:结合 DOM 树和 CSSOM 树构建渲染树,渲染树只包含需要显示在页面上的元素和它们的样式信息。
  2. 布局计算:计算每个元素在页面上的位置和大小,确定它们的布局。
  3. 绘制:根据布局信息,将元素绘制到屏幕上,形成最终的页面显示。
五、资源加载和异步处理
  1. 资源加载:浏览器在解析页面的过程中,会同时加载图片、视频、音频等其他资源。这些资源的加载不会阻塞页面的解析和渲染,可以提高页面的加载速度。
  2. 异步处理:JavaScript 可以使用异步编程技术,如回调函数、Promise、async/await 等,来处理耗时的操作,避免阻塞页面的渲染。例如,在加载数据时,可以使用异步请求,让页面在等待数据的同时继续渲染其他部分。

成功与不成功的原因分析(5条)

1. 例1
 <a href="%6a%61%76%61%73%63%72%69%70%74:%61%6c%65%72%74%28%31%29"></a>
    • 不执行
    • 先进行html解码,但是未进行html编码,所以不解码。
    • 然后进行url解码,但是不对协议解码,所以无法识别协议,所以无法执行。
2. 例4
<div>&#60;img src=x onerror=alert(4)&#62;</div>
    • 不执行
    • html解码不对"("")"进行解码
3. 例8
 <button onclick="confirm('8\u0027);">Button</button>
    • 不执行
    • ' "作为边界符时候,javascript解码不对 '"、进行解码。
4. 例12
<script>\u0061\u006c\u0065\u0072\u0074(\u0031\u0032)</script>
    • 不执行
    • 全都可以解码,确实没错。
    • 但是解码之后变成了alert(12)12是字符串但是外面没有引号,语法错误
5. 例5
 <textarea>&#60;script&#62;alert(5)&#60;/script&#62;</textarea>
    • 不执行
    • <textarea> </textarea>标签内只能是字符串,都不会执行。
GitHub是一个基于Web的代码托管平台,它提供了版本控制和协作功能,让开发者可以方便地共享和管理代码。在GitHub上,有很多与网安相关的项目,这些项目致力于保护网络安全、防止黑客攻击和提高系统的安全性。以下是一些常见的GitHub网安项目: 1. OWASP(开放式Web应用程序安全项目):OWASP是一个致力于提高Web应用程序安全性的国际织。他们在GitHub上维护了一系列开源项目,包括安全工具、漏洞测试和安全指南等。 2. Metasploit:Metasploit是一个广泛使用的渗透测试框架,它提供了一系列工具和资源,帮助安全专家评估和增强系统的安全性。Metasploit在GitHub上有一个官方仓库,开发者可以在这里获取最新的代码和贡献自己的改进。 3. Snort:Snort是一个开源的入侵检测系统(IDS),它可以监测网络流量并检测潜在的攻击行为。Snort的代码托管在GitHub上,开发者可以参与到项目中,改进和定制自己的IDS规则。 4. Nmap:Nmap是一个网络扫描和主机发现工具,它可以帮助安全专家评估网络的安全性。Nmap的源代码也在GitHub上开放,用户可以自由地访问和贡献代码。 5. Security Shepherd:Security Shepherd是一个教育性的Web应用程序,旨在帮助开发者学习和理解常见的Web安全漏洞。它提供了一系列的挑战和实验,供用户测试和提高自己的安全技能。Security Shepherd的代码也在GitHub上开源。 这些项目只是GitHub上众多网安项目的一小部分,你可以通过在GitHub上搜索关键词来找到更多与网安相关的项目。希望这些信息对你有帮助!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值