xss漏洞综述(代码片段)

dandh811 dandh811     2022-12-01     311

关键词:

在本节中,我们将解释什么是XSS漏洞,描述不同类型的XSS漏洞,并详细说明如何发现和防御XSS漏洞。

1. XSS概述

XSS(也称为跨站脚本攻击)是一个web安全漏洞,它允许攻击者破坏用户与易受攻击的应用程序的交互。它允许攻击者绕过隔离不同网站的同源策略。跨站点脚本漏洞通常允许攻击者伪装成受害用户,执行用户能够执行的任何操作,并访问用户的任何数据。如果受害用户在应用程序中拥有最高权限,那么攻击者就可能获得对所有应用程序功能和数据的完全控制。

2. XSS原理

XSS原理是操纵一个脆弱的网站,使其返回恶意的JavaScript给用户。当恶意代码在受害者的浏览器中执行时,攻击者可以完全破坏它们与应用程序的交互。

3. XSS攻击类型

XSS主要有三种攻击类型:

  • 反射型XSS,恶意脚本来自当前HTTP请求。
  • 存储型XSS,恶意脚本来自网站的数据库。
  • DOM型XSS,漏洞存在于客户端代码而不是服务器端代码中。

4. 反射型XSS

反射XSS是最简单的跨站点脚本。当应用程序在HTTP请求中接收数据并以不安全的方式在即时响应中包含该数据时,就会出现这种情况。

下面是一个反映XSS漏洞的简单示例:

https://insecure-website.com/status?message=All+is+well.

<p>Status: All is well.</p> 

应用程序不执行数据的任何其他处理,所以攻击者可以很容易地构造这样的攻击:

https://insecure-website.com/status?message=<script>/*+Bad+stuff+here...+*/</script>

<p>Status: <script>/* Bad stuff here... */</script></p> 

如果用户访问了攻击者构造的URL,那么攻击者的脚本就会在用户的浏览器中,以用户的会话权限执行。此时,脚本可以执行任何操作,并检索用户访问的任何数据。

5. 存储型XSS

当应用程序从不受信任的源接收数据并以不安全的方式将该数据包含在其稍后的HTTP响应中时,存储XSS(也称为持久型XSS或second-order XSS)就会出现。

有问题的数据可能通过HTTP请求提交给应用程序;例如,博客文章中的评论、聊天室中的用户昵称或客户订单的联系方式。在其他情况下,数据可能来自其他不可信的来源;例如,一个webmail应用程序显示通过SMTP接收的消息,一个营销应用程序显示社交媒体帖子,或者一个网络监控应用程序显示来自网络流量的数据包数据。

下面是一个存储型XSS漏洞的简单示例。留言板应用程序允许用户提交消息,这些消息将显示给其他用户:

 <p>Hello, this is my message!</p> 

应用程序对提交数据不做任何处理,所以攻击者可以很容易地发送攻击其他用户的消息:

 <p><script>/* Bad stuff here... */</script></p> 

6. DOM型XSS

DOM型XSS出现在应用程序包含一些客户端JavaScript时,这些JavaScript以不安全的方式处理来自不受信任的源的数据,通常是将数据写回DOM。

在下面的例子中,应用程序使用一些JavaScript从输入字段读取值,并将该值写入HTML中的元素:

var search = document.getElementById(\'search\').value;
var results = document.getElementById(\'results\');
results.innerHTML = \'You searched for: \' + search; 

如果攻击者可以控制输入字段的值,他们可以很容易地构造一个恶意的值,导致他们自己的脚本执行:

 You searched for: <img src=1 onerror=\'/* Bad stuff here... */\'> 

在通常的情况下,输入字段是HTTP请求的一部分,如URL查询字符串参数,攻击者使用恶意URL进行攻击,其方式与反射型XSS相同。

7. XSS可以干什么

利用XSS漏洞的攻击者通常能够:

  • 冒充或伪装成受害用户。

  • 执行用户能够执行的任何操作。

  • 读取用户能够访问的任何数据。

  • 捕获用户的登录凭据。

  • Perform virtual defacement of the web site.

  • 向网站注入木马功能。

8. XSS漏洞的影响

XSS攻击的实际影响通常取决于应用程序的性质、它的功能和数据,以及被攻击用户的状态。例如:

  • 在宣传类的网站中,所有用户都是匿名的,所有信息都是公开的,因此影响通常很小。

  • 在持有敏感数据(如银行事务、电子邮件或医疗记录)的网站中,影响通常会很严重。

  • 如果被攻击的是网站的特权用户,那么影响通常是致命的,允许攻击者完全控制受攻击的网站,并危害所有用户和他们的数据。

9. 如何发现和测试XSS漏洞

使用Burp Suite的web漏洞扫描器可以快速可靠地发现绝大多数XSS漏洞。

手动测试反射型和存储型的XSS通常包括向应用程序中的每个输入点提交特殊的字符串(比如一个简短的字母数字字符串),标识提交的输入在HTTP响应中返回的每个位置,并分别测试每个位置,以确定是否可以使用适当精心设计的输入来执行任意JavaScript。通过这种方式,您可以确定XSS出现的上下文,并选择合适的payload来利用它。

根据URL参数手动测试DOM型XSS也是一个类似的过程:在参数中放置一些简单的唯一输入,使用浏览器的开发人员工具在DOM中搜索这个输入,并测试每个位置以确定它是否可利用。然而,其他类型的DOM型XSS更难检测。要在非基于url的输入(如document.cookie)或非基于html的接收(如setTimeout)中找到基于dom的漏洞,没有什么可以替代检查JavaScript代码,这可能非常耗时。Burp Suite的web漏洞扫描器结合了JavaScript的静态和动态分析,可靠地自动检测基于dom的漏洞。

10. CSP策略

内容安全策略(CSP)是一种浏览器机制,旨在减轻XSS和其他一些漏洞的影响。如果使用CSP的应用程序包含类似XSS的行为,那么CSP可能会阻止漏洞被利用。通常,可以绕过CSP来利用潜在漏洞。

11. Dangling markup注入

Dangling markup注入是当XSS攻击被拦截而无法利用时跨域捕获用户数据的一种技术。它经常被用来捕获其他用户可见的敏感信息,包括用户的CSRF令牌。

12. 如何防止XSS攻击

在某些情况下,防止XSS非常简单,但有些情况下,取决于应用程序的复杂性和它处理用户可控数据的方式,可能会困难得多。

一般来说,有效防止XSS漏洞可能涉及以下措施的组合:

  • 输入过滤。在接收用户输入时,尽可能严格地根据预期的或有效的输入进行过滤。

  • 对输出数据进行编码。在HTTP响应中输出用户可控制的数据时,对输出进行编码,以防止将其解释为活动内容。根据输出环境,这可能需要HTML、URL、JavaScript和CSS编码的组合。

  • 使用适当的响应头。为了阻止HTTP响应中包含恶意的HTML或JavaScript的XSS,您可以使用Content-Type和X-Content-Type-Options头来确保浏览器以您想要的方式解释响应。

  • CSP策略。作为最后一道防线,您可以使用内容安全策略(Content Security Policy, CSP)来降低仍然发生的任何XSS漏洞的严重性。

13. XSS常见问题

XSS漏洞有多普遍?XSS漏洞非常常见,XSS可能是最常见的web安全漏洞。

XSS攻击有多常见?很难获得关于XSS真实攻击的可靠数据,但它可能比其他漏洞更不容易被利用。

XSS和CSRF有什么区别?XSS涉及导致网站返回恶意JavaScript,而CSRF涉及诱导受害者用户执行他们不打算做的操作。

XSS和SQL注入之间的区别是什么? XSS是针对其他用户的客户端漏洞,而SQL注入是针对应用程序数据库的服务器端漏洞。

如何防止PHP中的XSS ? 使用允许字符的白名单筛选输入,并使用类型提示或类型转换。HTML环境使用htmlentities和ENT_QUOTES转义输出,JavaScript环境使用JavaScript Unicode转义。

如何防止Java中的XSS ? 使用允许的字符白名单过滤输入,并使用诸如谷歌Guava之类的库对HTML环境的输出进行HTML编码,或者对JavaScript环境使用JavaScript Unicode转义。

xss漏洞的基本原理(代码片段)

...sSiteScript),跨站脚本攻击。它指的是恶意攻击者利用网站漏洞把恶意的脚本代码(通常包括HTML代码和JS脚本)注入到网页之中,当用户浏览该页之时,嵌入其中Web里面的恶意代码会被执行,从而对受害用户可能采取Cookie资料窃取、... 查看详情

通过代码审计找出网站中的xss漏洞实战(代码片段)

一、背景笔者此前录制了一套XSS的视频教程,在漏洞案例一节中讲解手工挖掘、工具挖掘、代码审计三部分内容,准备将内容用文章的形式再次写一此,前两篇已经写完,内容有一些关联性,其中手工XSS挖掘篇地址为快速找出网站... 查看详情

pikachu------xss漏洞(几中类型简单的介绍)(代码片段)

...见类型:****1.反射性XSS;****2.存储型XSS;****3.DOM型XSS;****XSS漏洞一直被评估为web漏洞中危害较大的漏洞,在OWASPTOP10的排名中一直属于前三的江湖地位。****XS 查看详情

从零学习安全测试,从xss漏洞攻击和防御开始(代码片段)

WeTest导读本篇包含了XSS漏洞攻击及防御详细介绍,包括漏洞基础、XSS基础、编码基础、XSSPayload、XSS攻击防御。  第一部分:漏洞攻防基础知识 XSS属于漏洞攻防,我们要研究它就要了解这个领域的一些行话,这样才好... 查看详情

信安小白,一篇博文讲明白存储型反射型xss漏洞(代码片段)

靶机系统:win7存储型、反射型XSS漏洞系列博文一、DVWA靶机二、XSS1.判断是否存在XSS漏洞2.XSS攻击窃取cookie2.1cookie为什么产生?2.2cookie作用机制2.3存储型XSS攻击窃取cookie2.4中级存储型XSS攻击(防御代码)3.反射型XSS漏洞3.1反射... 查看详情

pikachu靶场-xss详解(代码片段)

Picachu靶场-xss跨站脚本漏洞概述跨站脚本漏洞类型及测试流程反射型XSS(post&get)存储型XSSDom型XSSxss-获取cookiexss-进行钓鱼xss盲打xss的过滤和绕过xss-htmlspecialcharsxss输出在href和js中的案例xss的防范措施XSS-跨站脚本漏洞目... 查看详情

xss漏洞注入及靶场演示(代码片段)

其实SQL注入还没学透,XSS漏洞又开始紧锣密鼓得学起来了。无奈自学没人指导,看别人写的东西进行一个总结.这个暑假总要搞掉一些东西XSS漏洞概述XSS漏洞——OWASPTOP3XSS中文名叫跨站脚本攻击,就是在Web页面中在可... 查看详情

pikachu靶场之xss漏洞详解(代码片段)

Pikachu靶场之XSS漏洞详解前言XSS漏洞简述第1关反射型xss(get)第2关反射性xss(post)第3关存储型xss第4关DOM型xss第5关DOM型xss-x第6关xss盲打第7关xss之过滤第8关xss之htmlspecialchars第9关xss之href输出第10关xss之js输出前言本篇文章用于巩固对自... 查看详情

xss漏洞(代码片段)

...浏览网站时,嵌入的恶意代码会被浏览器解析执行。漏洞危害:1.窃取帐号&# 查看详情

xss漏洞(代码片段)

...浏览网站时,嵌入的恶意代码会被浏览器解析执行。漏洞危害:1.窃取帐号&# 查看详情

xss漏洞详解(代码片段)

Xss漏洞介绍:Cross-SiteScripting,简称为XSS或跨站脚本或者跨站脚本***。是一种针对网站或者应用程序的漏洞***技术,也是利用代码注入的一种。它允许恶意用户将代码注入网页,其他用户浏览网页时将会受到影响。XSS***分为三类:反... 查看详情

[pikachu靶场通关]cross-sitescriptingxss漏洞(代码片段)

PiKaChu通关XSS漏洞一、反射型(get)二、反射型(post)搭建环境三、存储型xss漏洞利用1、注入跳转网页2、网站钓鱼3、获取键盘记录四、DOM型XSS漏洞利用1、利用JavaScript伪协议2、绕过、闭合五、DOM型XSS-X六、XSS盲打... 查看详情

xss闯关挑战(代码片段)

...击全称跨站脚本攻击,XSS是一种在web应用中的计算机安全漏洞,它允许恶意web用户将代码植入到提供给其它用户使用的页面中。XSS攻击分成两类1、一类是来自内部的攻击,主要指的是利用程序自身的漏洞,构造跨站语句。2、另... 查看详情

xss漏洞利用方式汇总(代码片段)

文章目录一、窃取Cookie1.1目的1.2实操搭建xss平台获取Cookie二、广告传播/SEO优化/刷取流量2.1目的2.2实操2.2.1恶意刷取访问量网页直接跳转网页延迟跳转2.2.2恶意广告展示三、网页挂马/权限提升3.1目的3.2环境3.3实操3.3.1生成木马URL3.3... 查看详情

xss跨站脚本漏洞详解(代码片段)

本文参考资料:《Web安全深度剖析》张炳帅跨站脚本漏洞:2017年OWASPTOP7XSS又叫CSS(CrossSiteScripting),但是和指层叠样式表(CascadingStyleSheets)缩写重名,所以叫XSSXSS是指攻击者在网页中嵌入脚本代码,通... 查看详情

xss最强知识体系漏洞万字总结(代码片段)

XSS知识体系漏洞总结一.XSSI漏洞原理二.XSSI漏洞利用以及POC动态JavaScript非JavaScript三.XSSI漏洞实例四.XSSI漏洞防御【点我资料领取】一.XSSI漏洞原理同源策略同源策略是Web应用程序安全模型中最基本也是最核心的策略。现在所有支持... 查看详情

-xss漏洞(代码片段)

第四章-XSS漏洞第一节XSS跨站脚本分类1.1XSS漏洞介绍​跨站脚本攻击(CrossSiteScripting),为了不和层叠样式表(CascadingStyleSheets,CSS)的缩写混淆,故将跨站脚本攻击缩写为XSS。恶意攻击者往Web页面里插入恶意Script代码,当用... 查看详情

网络安全必学知识点之xss漏洞(代码片段)

xss漏洞小结一、初识XSS1、什么是XSSXSS全称跨站脚本(CrossSiteScripting),为避免与层叠样式表(CascadingStyleSheets,CSS)的缩写混淆,故缩写为XSS。这是一种将任意Javascript代码插入到其他Web用户页面里执行以达到攻击目的的漏洞。... 查看详情