跨站脚本攻击XSS-识别XSS环境(一)

admin 2022年9月17日17:25:04安全文章评论2 views3364字阅读11分12秒阅读模式

在测试反射型和存储型XSS时,一项关键任务就是识别XSS所在的环境:

●响应中出现攻击者可控数据的位置。

●应用程序对该数据执行的任何输入验证或其他处理。

根据这些详细信息,可以选择一个或多个候选XSSPayload,并测试它们是否有效。

 


HTML标签之间的XSS

XSS的上下文环境是HTML标签之间的文本时,我们需要引入一些旨在触发JavaScript执行的新HTML标签。

执行JavaScript的一些有用方法是:

跨站脚本攻击XSS-识别XSS环境(一)

 

场景试验-在大多数标签和属性被阻止的环境下将XSS反射到HTML环境中:

https://portswigger.net/web-security/cross-site-scripting/contexts/lab-html-context-with-most-tags-and-attributes-blocked

场景说明:

这个试验场景在搜索功能中包含反射型XSS漏洞,但使用了WAF来防止常见的XSS向量。

试验目的:

要完成这个试验,需要绕开WAF并调用print()函数来进行跨站脚本攻击。

攻击过程:

在搜索区域输入一个注入Payload,比如下面这句话,可以发现被阻拦了:

<img src=1 onerror=print()>

跨站脚本攻击XSS-识别XSS环境(一)

 

接下来利用Burp通过自动化的方式来侦测看哪些标签和事件可以绕过WAF,因为要利用字典,这里我们直接使用试验场景提供的“XSS备忘录”,链接如下:

https://portswigger.net/web-security/cross-site-scripting/cheat-sheet

 

把搜索的这个请求发送给Intruder,在"Positions"选项卡中先清除所有变量,把serach参数后面的值换成<>,并在两个尖括号增加变量

跨站脚本攻击XSS-识别XSS环境(一)

 

在“XSS备忘录”中点击"Copy tags to clipboard"把所有标签字典复制到Intruder的"Payloads"选项卡中,随后点击"Start attack"

跨站脚本攻击XSS-识别XSS环境(一)

 

跨站脚本攻击XSS-识别XSS环境(一)

 

从结果可以看到,"body"标签返回了200 OK,说明这个标签可以绕过WAF的防护

跨站脚本攻击XSS-识别XSS环境(一)

 

接下来继续判断在这个标签下可绕过的事件,修改下"Positions"选项卡search参数后面的值为<body%20=1>,并在等号前面增加变量,变为如下格式:

<body%20§§=1>

跨站脚本攻击XSS-识别XSS环境(一)

 

在“XSS备忘录”中点击"Copy events to clipboard"把所有标签字典复制到Intruder的"Payloads"选项卡中,随后点击"Start attack"

跨站脚本攻击XSS-识别XSS环境(一)

 

跨站脚本攻击XSS-识别XSS环境(一)

 

从结果可以看到,只有"onresize"事件返回了200 OK,说明这个事件可以绕过WAF的防护

跨站脚本攻击XSS-识别XSS环境(一)

 

打开"exploit server",在内容中构造如下Payload,注意替换下试验域名,点击"Store"后发送给受害者即可完成试验

<iframe src="https://your-lab-id.web-security-academy.net/?search=%22%3E%3Cbody%20onresize=print()%3E" onload=this.style.width='100px'>

跨站脚本攻击XSS-识别XSS环境(一)

 

场景试验-除自定义标签外,所有标签均被阻止的情况下将XSS反射到HTML环境中:

https://portswigger.net/web-security/cross-site-scripting/contexts/lab-html-context-with-all-standard-tags-blocked

场景说明:

这个试验场景阻止除自定义标签之外的所有HTML标签。

试验目的:

要完成这个试验,需要执行自定义标签并进行dcoument.cookie的跨站脚本攻击。

攻击过程:

这个试验的过程还是比较简单的,因为所有标签都被过滤了,因此我们在"exploit server"构建如下语句的Payload

<script>location = 'https://your-lab-id.web-security-academy.net/?search=%3Cxss+id%3Dx+onfocus%3Dalert%28document.cookie%29%20tabindex=1%3E#x';</script>

跨站脚本攻击XSS-识别XSS环境(一)


保存后发送给受害者即可完成试验。

 

试验小结:

上面这个注入会创建一个IDx的自定义标签,其中包含一个触发警报功能的onfocus事件处理程序,而URL末尾的hash会在页面加载后立即跳转到此元素,从而调用报警Payload

上面这个经过了URL编码,还原后关键语句其实是这样的:

<xss id=x onfocus=alert(document.cookie) tabindex=1>#x

 

场景试验-带有事件处理程序和href属性的反射型XSS被阻止:

https://portswigger.net/web-security/cross-site-scripting/contexts/lab-event-handlers-and-href-attributes-blocked

场景说明:

这个试验场景包含一个反射型XSS漏洞,其中包含一些列入白名单的标签,但所有事件和锚点href属性都被阻止。

试验目的:

要完成这个试验,需要执行跨站脚本攻击,该攻击会注入一个向量,单击该向量会调用alert()函数。注意,需要使用"Click"来标记向量,以诱导模拟试验室用户点击向量,比如下面这句:

跨站脚本攻击XSS-识别XSS环境(一)

攻击过程:

因为无法使用事件,因此在这里尝试使用SVG来的方式来触发脚本,在URL中构造下面语句即可:

https://your-lab-id.web-security-academy.net/?search=%3Csvg%3E%3Ca%3E%3Canimate+attributeName%3Dhref+values%3Djavascript%3Aalert(1)+%2F%3E%3Ctext+x%3D20+y%3D20%3EClick%20me%3C%2Ftext%3E%3C%2Fa%3E

跨站脚本攻击XSS-识别XSS环境(一)

上面这个URL在浏览器中访问即可完成试验

跨站脚本攻击XSS-识别XSS环境(一)

 

试验小结:

上面这段是URL编码,解码后的语句如下:

<svg><a><animate attributeName=href values=javascript:alert(1) /><text x=20 y=20>Click me</text></a>

利用svg可以执行脚本的特性,在其中插入JS脚本,并生成为一个可点击的链接,当受害者点击链接时,就会执行脚本。

 

场景试验-允许有一些SVG标记的反射型XSS

https://portswigger.net/web-security/cross-site-scripting/contexts/lab-some-svg-markup-allowed

场景说明:

这个试验场景包含一个简单的反射型XSS漏洞,这个站点阻止了常用标签,但错过了一些SVG标签和事件。

试验目的:

要完成这个试验,需要执行调用alert()函数的跨站脚本攻击。

攻击过程:

采用跟本篇第一个场景一样的方式,先来判断下哪些标签可以,从返回的结果是200可以判断能用的标签是4

跨站脚本攻击XSS-识别XSS环境(一)

 

继续判断可用的事件,修改下参数search后面的参数,变量放在等号前面,可以发现有一个事件可注入:

<svg><animatetransform%20§§=1>

跨站脚本攻击XSS-识别XSS环境(一)

 

利用"onbegin"事件构造一条注入语句(注意替换下URL中试验地址),在浏览器中运行,出现弹框即可完成试验

https://your-lab-id.web-security-academy.net/?search="><svg><animatetransform onbegin=alert(1)>

跨站脚本攻击XSS-识别XSS环境(一)

 

跨站脚本攻击XSS-识别XSS环境(一)


服务器端请求伪造(SSRF)-概念梳理

文件上传漏洞-概念梳理

访问控制和权限提升漏洞-概念梳理

信息泄露漏洞-概念梳理

业务逻辑漏洞-概念梳理

命令注入攻击(上)
目录遍历攻击(上)

身份验证漏洞-概念梳理

SQL注入攻击-检索隐藏的数据
HTTP Host头漏洞攻击-概念梳理


原文始发于微信公众号(H君网安白话):跨站脚本攻击XSS-识别XSS环境(一)

特别标注: 本站(CN-SEC.COM)所有文章仅供技术研究,若将其信息做其他用途,由用户承担全部法律及连带责任,本站不承担任何法律及连带责任,请遵守中华人民共和国安全法.
  • 我的微信
  • 微信扫一扫
  • weinxin
  • 我的微信公众号
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年9月17日17:25:04
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                  跨站脚本攻击XSS-识别XSS环境(一) http://cn-sec.com/archives/1300910.html

发表评论

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: