🏘️个人主页: 点燃银河尽头的篝火(●'◡'●)
如果文章有帮到你的话记得点赞👍+收藏💗支持一下哦
【BurpSuite】Cross-site scripting (XSS 学徒部分:1-9)
- [实验一 Lab: Reflected XSS into HTML context with nothing encoded](#实验一 Lab: Reflected XSS into HTML context with nothing encoded)
- [实验二 Lab: Stored XSS into HTML context with nothing encoded](#实验二 Lab: Stored XSS into HTML context with nothing encoded)
- [实验三 Lab: DOM XSS in document.write sink using source location.search](#实验三 Lab: DOM XSS in document.write sink using source location.search)
- [实验四 Lab: DOM XSS in innerHTML sink using source location.search](#实验四 Lab: DOM XSS in innerHTML sink using source location.search)
- [实验五 Lab: DOM XSS in jQuery anchor href attribute sink using location.search source](#实验五 Lab: DOM XSS in jQuery anchor href attribute sink using location.search source)
- [实验六 Lab: DOM XSS in jQuery selector sink using a hashchange event](#实验六 Lab: DOM XSS in jQuery selector sink using a hashchange event)
- [实验七 Lab: Reflected XSS into attribute with angle brackets HTML-encoded](#实验七 Lab: Reflected XSS into attribute with angle brackets HTML-encoded)
- [实验八 Stored XSS into anchor href attribute with double quotes HTML-encoded](#实验八 Stored XSS into anchor href attribute with double quotes HTML-encoded)
- [实验九 Reflected XSS into a JavaScript string with angle brackets HTML encoded](#实验九 Reflected XSS into a JavaScript string with angle brackets HTML encoded)
实验一 Lab: Reflected XSS into HTML context with nothing encoded
要求:
将 XSS 反射到 HTML 上下文中,不进行任何编码
将以下内容复制并粘贴到搜索框中:
<script>alert(1)</script>
实验二 Lab: Stored XSS into HTML context with nothing encoded
要求:
该实验在评论功能中 包含一个存储的跨站点脚本漏洞。
要完成此实验,请提交一条评论,alert在查看博客文章时调用该函数。
在评论框中输入以下内容:
<script>alert(1)</script>
输入姓名、电子邮件和网站
点击"发表评论"
返回博客
实验三 Lab: DOM XSS in document.write sink using source location.search
要求:
此实验室在搜索查询跟踪功能中包含基于 DOM 的跨站点脚本漏洞 。它使用
JavaScriptdocument.write
函数将数据写入页面。该document.write函数使用来自 的数据进行调用location.search
,您可以使用网站 URL 进行控制。要完成此实验,请执行调用该函数的跨站点脚本alert攻击。
用<script>alert(1)</script>
试试
发现js语句未解析
查看源码
写入
js
"><script>alert(1)</script><
先闭合再注入
实验四 Lab: DOM XSS in innerHTML sink using source location.search
要求:
此实验室在搜索博客功能中 包含基于 DOM 的跨站点脚本漏洞 。它使用赋值,使用来自 的数据来innerHTML更改元素的 HTML 内容。 divlocation.search
要完成此实验,请执行调用该函数的跨站点脚本alert攻击。
该 innerHTML 接收器不接受 script 元素,也不会 svg onload事件触发。这意味着将需要使用替代元素,如img 或 iframe。事件处理程序,如onload 以及onerror可以与这些元件结合使用。例如:
<img src=1 onerror=alert(1)>
用<script>alert(1)</script>
试试,果然不行
用<img src=1 onerror=alert(1)>
实验五 Lab: DOM XSS in jQuery anchor href attribute sink using location.search source
要求:
此实验在提交反馈页面中包含基于 DOM 的跨站点脚本漏洞 。它使用 jQuery 库的$选择器函数来查找锚元素,并href使用location.search.
要解决此实验,请设置"后退"链接警报document.cookie。
注意:潜在接收器是jQuery的$()选择器函数,它可用于将恶意对象注入DOM。
jQuery曾经非常流行,典型的DOM XSS漏洞是由于网站将此选择器与location.hash源结合使用来生成动画或自动滚动到页面上的特定元素而导致的。此行为通常是使用易受攻击的hashchange事件处理程序实现的,如下所示:
$(window).on('hashchange', function() {
var element = $(location.hash);
element[0].scrollIntoView();
});
作为 hash 是用户可控的,攻击者可以利用它将XSS向量注入 $()选择器接收器。较新版本的jQuery修补了此特定漏洞,方法是在输入以散列字符( #)。但仍然可以在野外找到易受攻击的代码
要真正利用此典型漏洞,需要找到一种方法来触发hashchange没有用户交互的事件。最简单的方法之一是通过iframe:
<iframe src="https://vulnerable-website.com#" onload="this.src+='<img src=1 onerror=alert(1)>'">
在此示例中,src属性指向哈希值为空的易受攻击的页面。当 iframe 被加载时,一个XSS向量被附加到散列中,从而触发hashchange事件(即使较新版本的jQuery也可能通过 $() 选择器接收器,前>提是可以完全控制来自不需要 #前缀)
将查询参数更改returnPath后跟任意字符串
在网页代码中查找位置,发现字符串输出位置为href
returnPath后语句改为:
javascript:alert(document.cookie)
实验六 Lab: DOM XSS in jQuery selector sink using a hashchange event
要求:
该实验室主页上 存在一个基于 DOM 的跨站脚本漏洞。它使用 jQuery 的$()选择器函数自动滚动到给定的帖子,其标题通过location.hash属性传递。
要解决该实验室问题,请向受害者提供一个漏洞利用程序,print()在其浏览器中调用该函数。
从实验室横幅中,打开漏洞利用服务器。
在正文部分中,添加以下恶意代码iframe:
<iframe src="https://YOUR-LAB-ID.web-security-academy.net/#" onload="this.src+='<img src=x onerror=print()>'"></iframe>
我的是:
<iframe src="https://0ab800ae03b47348804e7bdc00600048.web-security-academy.net/#" onload="this.src+='<img src=x onerror=print()>'"></iframe>
存储漏洞利用程序,然后单击查看漏洞利用程序 View exploit
,print()以确认调用了 该函数。
返回漏洞利用服务器并单击 交付给受害者 Deliver to victim
以解决实验室问题。
实验七 Lab: Reflected XSS into attribute with angle brackets HTML-encoded
要求:
此实验室在搜索博客功能中包含一个反映的跨站点脚本漏洞,其中尖括号是 HTML 编码的。要完成此实验,请执行跨站点脚本攻击,注入属性并调用该alert函数。
在搜索框中提交随机字母数字字符串,然后查看网页源码,发现是双引号"
闭合
将输入替换为:
js
"οnmοuseοver="alert(1)
出现弹窗
实验八 Stored XSS into anchor href attribute with double quotes HTML-encoded
要求:
该实验在评论功能中包含一个存储的跨站点脚本漏洞。要完成此实验,请提交一条评论,该评论将alert在单击评论作者姓名时调用该函数。
在"网站"输入中发布带有随机字母数字字符串的评论,然后使用 Burp Suite 拦截请求并将其发送到 Burp Repeater。
在浏览器中发出第二个请求以查看帖子,并使用 Burp Suite 拦截该请求并将其发送到 Burp Repeater。
观察第二个 Repeater 选项卡中的随机字符串已反映在锚点href属性内。
再次重复该过程,但这次将您的输入替换为以下有效负载,以注入调用警报的 JavaScript URL:
即上图框住部分website=javascript:alert(1)
js
javascript:alert(1)
通过右键单击、选择"复制 URL"并将 URL 粘贴到浏览器中来验证该技术是否有效。单击评论上方的名称应该会触发警报。
实验九 Reflected XSS into a JavaScript string with angle brackets HTML encoded
要求:
此实验室在尖括号编码的搜索查询跟踪功能中包含反映的跨站点脚本漏洞。反射发生在 JavaScript 字符串内。要完成此实验,请执行跨站点脚本攻击,突破 JavaScript 字符串并调用该alert函数
在搜索框中提交随机字母数字字符串,然后使用 Burp Suite 拦截搜索请求并将其发送到 Burp Repeater。
观察随机字符串已反映在 JavaScript 字符串中。
将您的输入替换为以下有效负载,以打破 JavaScript 字符串并注入警报:
js
'-alert(1)-'
通过右键单击、选择"复制 URL"并将 URL 粘贴到浏览器中来验证该技术是否有效。当您加载页面时,它应该触发警报。