burpsuite靶场xss

常见函数
encodeURIComponent
转义除了如下所示外的所有字符:
1 | |
学徒级别
1.将 XSS 反射到 HTML 上下文中
漏洞点:搜索栏
payload
1 | |
2.将 XSS 反射到 HTML 上下文中
漏洞点:文章评论区
payload
1 | |
3.使用源的接收器中的 DOM XSS
漏洞点:搜索栏
f12打开源代码

使用搜所功能之后发发现dom 接口

点击发现代码
1 | |
构造payload
1 | |
4.使用源在接收器中输入 DOM XSS
描述:搜索博客功能中包含一个基于 DOM 的跨站点脚本执行漏洞。它使用赋值,该赋值使用 来自 的数据更改元素的 HTML 内容。
dom使用了赋值形
查看源代码

思路:属性的值
无效并引发错误。这将触发事件处理程序,然后事件处理程序调用该函数。因此,每当用户的浏览器尝试加载包含恶意帖子的页面时,都会执行有效负载。
payload
1 | |
src的值不正确触发事件 onerror
同理 事件型payload还有
1 | |
5.使用源的 jQuery 锚点属性接收器中的 DOM XSS
描述:在提交反馈页中包含一个基于 DOM 的跨站点脚本漏洞。它使用 jQuery 库的选择器函数来查找锚点元素,并使用 来自 的数据更改其属性。$``href``location.search
要解决此练习,请发出“后退”链接警报。document.cookie
思路:
根据描述先找到相关代码

前端对应代码为

因此猜测为
输入的payload当做herf的值 尝试构造payload
1 | |
发现无法闭合href属性

使用
1 | |
输入之后进入href的值
1 | |
单击即可触发
6.使用哈希更改事件在 jQuery 选择器接收器中 SINK 中的 DOM XSS
描述:此实验室主页上包含一个基于 DOM 的跨站点脚本漏洞。它使用jQuery的选择器函数自动滚动到给定的帖子,其标题通过属性传递。$()``location.hash
要解决实验室问题,请向受害者提供在其浏览器中调用该函数的攻击。print()
7.将 XSS 反射到带有尖括号 HTML 编码的属性中
描述:此实验室在搜索博客功能中包含一个反映的跨站点脚本漏洞,其中尖括号是 HTML 编码的。若要解决此实验室问题,请执行跨站点脚本攻击,该攻击会注入属性并调用函数。alert
漏洞点在搜索框中
输入xss进行搜索

发现输入的值作为了value属性的值,构造payload
1 | |
发现

集合描述,是尖括号被转义,因此改用事件型触发
payload
1 | |
8.将 XSS 存储到带有双引号 HTML 编码的锚点属性中href
描述:此实验室在注释功能中包含一个存储的跨站点脚本漏洞。若要解决此实验问题,请提交一个注释,该注释在单击注释作者姓名时调用该函数。alert
思路:根据描述,漏洞点在文章评论区,而且双引号会被过滤
解决:
一开始我以为是对Name的值进行xss,其实是对Website,Website设计的作用添加个人博客地址,游客可以点击评论者姓名即可跳转到评论者的博客地址

随即便发现了漏洞点
根据描述双引号会被转义 没有双引号闭合不了herf事件 尖括号无论是否被转义都无法使用
采用js伪协议
payload
1 | |
9.将 XSS 反射到带有尖括号 HTML 编码的 JavaScript 字符串中
根据描述是在搜索框有xss,找到了对应代码

发现搜索框输入的东西会被encodeURIComponent函数编码
可以通过单引号闭合
payload
1 | |
10.DOM XSS 在选择元素中使用源代码
随便访问一篇博客。url参数带有productId文章id

此时文章末尾的选择项目有三个选项

观察源代码

发现他是从url中获取storeId参数,前面在url中并没有
尝试在url里添加

此时下拉的选项里有我们刚刚添加的storeId参数

说明dom从url中提取参数
源代码
1 | |
构造payload
1 | |

实验完成
11.AngularJS表达式中的DOM XSS,带有尖括号和双引号HTML编码
在搜索框输入任意字符搜索
查看原代码

发现代码熟悉ng-app,名调用了AngularJS
AngularJS是一个流行的JavaScript库,它扫描包含属性的HTML节点的内容(也称为AngularJS指令)。将指令添加到 HTML 代码时,可以在双大括号内执行 JavaScript 表达式。在对尖括号进行编码时,此技术很有用。ng-app
AngularJS造成xss参考文章https://www.mianshigee.com/note/detail/76633iai/
使用payload
完成实验
当引用了第三方js库就可能引起xss
12.反射式 DOM XSS
进行进入博客搜索然后进行抓包

在返回包中观察到会对
search-results进行检索

构造payload闭合
1 | |
但是观察到有一个反斜杠转义,因此多加一个反斜杠让他不转义

舍友payload改为
1 | |

成功触发
13.存储的 DOM XSS
尝试插入
aa
在js中发现了过滤

为了防止XSS,该网站使用 JavaScriptreplace()函数对尖括号进行编码。但是,当第一个参数是字符串时,该函数仅替换第一次出现。我们通过在注释的开头简单地包含一组额外的尖括号来利用此漏洞。这些尖括号将被编码,但任何后续尖括号将不受影响,使我们能够有效地绕过过滤器并注入 HTML。
所以构造payload
1 | |


完成实验
14.利用跨站点脚本窃取 cookie
插入简单payload就造成弹窗
1 | |
那我们构造payload把cookie发送到Burp Collaborator Client
payload
1 | |
Burp Collaborator Client使用
点击run测试是否正常

点击burp 选择Collaborator Client打开

然后点击复制

把复制的内容填入
payload fetch
最终payload样式为
1 | |
然后到博客评论区提交payload 回到Collaborator Client点击poll now然后一会之后就可以看见交互
获取cookie之后替换即可,cookie为post里的传输值

15.利用跨站点脚本捕获密码
打开 burp collaborator client功能
点击复制返回替换payload里的值
1 | |
然后payload放入评论区

提交评论之后点击 poll now等一会就可以看见有交互了

然后登录即可完成实验
16.利用XSS执行CSRF
这题需要使用xss执行csrf并且已经给出了payload
1 | |
这个payload会发送一个请求 请求/my-account页面 然后使用正则把返回包中的token值过滤出来
修改邮件的请求包如下可以看见需要验证csrf token

但是当我们访问/my-account页面时
返回包会泄露用户token
那payload在获取token之后直接请求修改邮箱就可以造成csrf
17.将 XSS 反射到 HTML 上下文中,阻止大多数标记和属性
本关注入点在搜索框是个反射性xss


发现有标签被过滤了接下来用字典fuzz一下看看有什么没被过滤
字典地址https://portswigger.net/web-security/cross-site-scripting/cheat-sheet
fuzz所有标签和事件



发现body标签没过滤 还有很多事件没过滤
现在使用body标签和onresize事件都是不经过过滤的
使用payload
1 | |
填入靶场链接点击 store和deliver exploit to victim完成实验

18.将 XSS 反射到 HTML 上下文中,阻止除自定义标记之外的所有标记
题目有点哈人
阻止除自定义标记之外的所有 HTML 标记。
要解决实验室问题,请执行跨站点脚本攻击,注入自定义标记并自动发出警报document.cookie。
payload
1 | |
在实验室使用即可
19.允许使用一些 SVG 标记的反射式 XSS
svg是一个HTML标签根据题目说明了没过滤可以直接用
漏洞点还是在搜索框 先fuzz一下什么事件没过滤

发现
这些标签都没被过滤
需要构造语句还需要fuzz一下看什么事件没过滤

发现onbegin事件还能用

构造payload
1 | |
输入即可完成
20.规范链接标记中的反射 XSS
只能在谷歌浏览器使用
payload
1 | |
21.将XSS反射到带有单引号和反斜杠转义的JavaScript字符串中
在搜索框输入111并且抓包

发现明显漏洞点
构造payload
1 | |

成功
22.将XSS反射到带有尖括号和双引号的JavaScript字符串中,HTML编码和单引号转义
搜索框是和上一题一样的漏洞点

但是使用上一条的payload发现有过滤 尖括号被转义

payload
1 | |
payload思路

因为可控内容在标签script标签里 因此直接不考虑尖括号过滤构造闭合即可
23.将 XSS 存储到带有尖括号和双引号的事件中 HTML 编码,单引号和反斜杠转义
在博客评论区进行评论

发现了漏洞点

payload
1 | |

24.将 XSS 反射到带有尖括号、单引号、双引号、反斜杠和反引号的模板文本中 Unicode 转义


发现payload被转义
使用新payload
1 | |

25.阻止事件处理程序和属性的反射式 XSS
payload
1 | |
1 | |
这里复制payload的后半部分进行搜索不会触发弹窗

直接访问带payload的url才能触发
26.在 JavaScript URL 中反射 XSS,但阻止了一些字符
发现漏洞点

payload
1 | |

27.反射式XSS与AngularJS沙盒转义没有字符串
直接使用payload
payload
1 | |