PortSwigger靶场之Stored DOM XSS通关秘籍

一、分析靶场

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

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

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

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

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

二、进行攻击

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

三、成功通关

相关推荐
kyriewen10 分钟前
手写 Promise.all、race、any:不到 30 行代码,解决并发异步的所有姿势
前端·javascript·面试
brucelee1861 小时前
OpenClaw 浏览器控制(Chrome MCP)完整教程
前端·chrome
ct9781 小时前
React 状态管理方案深度对比
开发语言·前端·react
胡志辉的博客2 小时前
深入浅出理解浏览器事件循环:从一道输出题讲到 Chrome 源码
前端·javascript·chrome·chromium·event loop
代码不加糖2 小时前
js中不会冒泡的事件有哪些?
前端·javascript·vue.js
懂懂tty2 小时前
Vue2与Vue3之间API差异
前端·javascript·vue.js
AI焦点2 小时前
跨越协议鸿沟:Tool Use状态机从Anthropic到OpenAI兼容体系的适配要点
前端·人工智能
Dxy12393102162 小时前
Python线程锁:为什么多线程会“打架“,以及怎么解决
开发语言·前端·python
海兰3 小时前
【web应用】Excel 项目数据自动化分析系统(AI 驱动分析)详细设计与部署指南(附源代码)
前端·人工智能·自动化·excel
2501_940041743 小时前
技术分享:高质量全栈开发提示词设计实践 —— 覆盖简单到复杂
前端·prompt