PortSwigger靶场之Stored DOM XSS通关秘籍

一、分析靶场

首先我们先提交评论,如何检查页面代码,发现我们上传的输入被提交进了一对<p>标签内

然后我们想查看js代码,把下面框起来的地址复制到url后即可看到

查看JS代码,我们注意到replace() 函数,在JavaScript中,当 string.replace() 的第一个参数是一个字符串时(而不是一个全局正则表达式),它只会替换它找到的第一个匹配项。因此,我们可知第一个<>会被编码。

且评论的内容会被 innerHTML插入<p>标签中间

因此我们只需要先输入一个<>使其被编码,再注入标签,就不会被编码,即可以执行JavaScript代码

二、进行攻击

html 复制代码
payload:<><img src="1" onerror="alert(1)">

三、成功通关

相关推荐
bjzhang7518 分钟前
使用HTML+CSS美化上传进度条展示
前端·css·html
何以解忧,唯有..24 分钟前
Vue 3 响应式核心:ref() 与 reactive() 的深入解析与实战
前端·javascript·vue.js
晴天1628 分钟前
Chrome DevTools Protocol(CDP)分享-Day36
前端·chrome·chrome devtools
风骏时光牛马29 分钟前
程序员的职场成长:技术之外,更要修炼底层思考力
前端
YWL30 分钟前
CSS变量与预处理器
前端·css
朱 欢 庆4 小时前
云服务器附件备份到本机内网服务器
运维·服务器·前端·经验分享
支支დ9 小时前
VO by Vercel 前端特定优势:为什么它是构建 AI 应用的新范式
前端·人工智能
香芋芋圆9 小时前
AI 冲击内卷之下,普通前端如何破局?WebGIS—— 低门槛突围赛道
前端·javascript·人工智能·学习·职场发展
INS_KF10 小时前
【编程笔记】成员函数中两个 const 的区别(const Data &getData() const;)
前端·javascript·笔记
宿67410 小时前
vue3-async
前端·javascript·vue.js