文章总结: 本文详细描述了作者如何将个人资料设置中的自XSS漏洞通过公开个人资料功能演变为存储型XSS的完整过程。关键发现包括:艺术家姓名字段存在输入验证缺陷,在邮件模板和个人资料页面均未正确过滤HTML标签;启用开放协作功能后,恶意代码可从公共页面触发。主要结论是低影响注入可能暴露深层安全缺陷,建议在不同渲染上下文全面测试用户输入,并关注应用程序功能对漏洞影响的改变。 综合评分: 87 文章分类: WEB安全,渗透测试,实战经验,漏洞分析,安全开发
0161.简单的自 XSS 如何演变为存储型 XSS
原创
Parth Narula Parth Narula
Rsec
2026年5月18日 10:15 贵州
在小说阅读器读本章
去阅读
本文章仅用网络安全研究学习,请勿使用相关技术进行违法犯罪活动。
声明:本文搬运自互联网,如你是原作者,请联系我们!
类型:XSS
各位黑客朋友们,我是 Parth Narula 。我是一名渗透测试员、漏洞猎人、红队成员,也是一名安全研究员。我热爱那些跳出固有思维模式,发现关键漏洞并最终成功破解的时刻。
我遇到了一个漏洞,起初看起来很小。它最初是我个人资料设置中的一个自 XSS 漏洞,最终演变成通过公共个人资料功能实现的存储型 XSS 漏洞。
测试从应用程序的注册页面开始: https://redacted/sign-up
创建账户时,我注意到一个名为 “艺术家姓名” 的输入框。这类字段值得测试,因为姓名通常会在很多地方重复使用。它们可能出现在电子邮件、个人资料页面、搜索结果、仪表盘、通知,有时甚至会出现在管理面板中。
所以我向艺术家姓名字段中插入了一个简单的 HTML 注入有效载荷。
"'<h1>${{7*7}}</h1>
这次测试的功能并不复杂,只是一个基础测试,用来检查应用程序如何处理 HTML 标签和特殊字符。注册完成后,我收到了应用程序发送的确认邮件。
第一期杂志就是在这里出现的。
HTML 有效载荷已渲染到电子邮件正文中。这证实了艺术家姓名值未经正确处理就被插入到电子邮件模板中。目前,发现的漏洞是基于电子邮件的 HTML 注入攻击。
这并非最终结果,但却是一个积极的信号。如果用户控制的输入在一个地方被不安全地渲染,那么同样的输入就有可能在其他地方也被不安全地重用。
在电子邮件中看到 HTML 注入后,我转到 https://redacted/artists/settings/my-profile 的个人资料设置页面,以检查创建帐户后同一个艺术家姓名字段的行为。
我再次更新了艺术家姓名,但这次我使用了基本的 XSS 攻击载荷:
<img/src/x onerror=prompt(document.cookie)>

保存个人资料并刷新页面后,有效载荷在我的个人资料设置中执行。弹出窗口出现在我自己的会话中。
此时,这个漏洞看起来像是一个普通的自 XSS 漏洞。攻击载荷存储在我的个人资料中,但只有在我打开自己的设置页面时才会执行。从通常的影响角度来看,这仍然很有限,因为攻击载荷只针对我自己触发。
但我并没有就此止步,因为个人资料字段很少只在一个地方使用。艺术家姓名并非仅仅是私人设置,它是一种可以在应用程序中用户个人资料显示的任何位置出现的数值。
因此,下一步是查看 https://redacted/artists/{username}/profile 上的公开个人资料页面。
我打开了公开个人资料页面,想看看艺术家姓名相关的有效载荷是否可见或已执行。一开始没有任何反应。有效载荷没有在公开个人资料页面上执行。
这使得该问题看起来更像是一个有限的自 XSS 攻击。有效载荷已被存储,但并未在公共视图中执行。如果我止步于此,该发现的影响将仍然很小。
但在测试基于用户配置文件的错误时,务必检查不同的设置如何改变公开视图。许多应用程序默认情况下不会显示所有用户配置文件数据。某些字段仅在启用特定功能时才会显示。
那时我才注意到 “开放协作” 选项。
在账户设置中,有一个名为 “开放协作” 的功能。默认情况下,该功能设置为:不感兴趣。
我将其更改为远程或当面,并保存了设置。
https://api.redacted.co/v1/artists/:id{ "changeType": "PROFILE", "fullname": "PAYLOAD_HERE", "collaborationStatusId": "REMOTE_OR_IN_PERSON"}

这看起来像是一个简单的个人资料可见性设置。我想看看启用它是否会对公开个人资料产生任何影响。保存设置后,我再次访问了公开个人资料页面。
这次个人资料页面有所不同。公开个人资料的右上角出现了一个新的群组图标。由于这个图标是在启用协作功能后才出现的,所以我点击它想看看里面显示什么信息。
我一点击它,XSS 攻击载荷就执行了。
这是一个转折点。之前只在我个人个人资料设置中执行的相同代码,现在通过协作功能从公共个人资料中执行了。
所以问题不再仅仅是自 XSS 攻击。恶意代码存储在用户个人资料中,并且可以从应用程序的公共区域访问。任何访问该个人资料并点击协作图标的用户都可以触发该恶意代码。这彻底改变了攻击的影响。
吸取的教训
-
不要忽视低影响注入攻击,
例如 HTML 注入或自 XSS 攻击。这些攻击看似无害,但却可能暴露用户输入处理方式中存在的深层缺陷,尤其是在电子邮件或个人资料等位置。
-
务必在不同的渲染上下文中测试输入:
电子邮件、个人资料、仪表板等。一个字段在一个地方存在漏洞,可能会在其他地方以您意想不到的方式被重用。
-
利用应用程序功能:
小型应用程序功能(例如“开放协作”)可以改变数据出现的位置,如果输入反映到共享的某个地方,则可能将自 XSS 变成严重的存储 XSS。
-
影响至关重要:
只有测试过漏洞的全部影响范围,才能真正确定其严重程度是否为低。
免责声明:
本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。
任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。
本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我。
本文转载自:Rsec Parth Narula Parth Narula《0161.简单的自 XSS 如何演变为存储型 XSS》
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。










评论