我最近测试了一个 Web 应用程序,发现它容易受到存储型 XSS 攻击。然而,一个奇怪的行为让我有点困惑。当我插入时John <script>alert(1)</script>Doe
,我的浏览器显示确实正确注入了脚本标签,但没有弹出警报。
插入John <img src=x onerror=alert(1)>Doe
时,加载后立即弹出警报。
到目前为止我排除了什么
- 转义:我认为
<script>
标签可能已转义,但由于某种原因未呈现,但我的代理确认标签未转义。 - CSP:我想到一个 CSP 可能已经到位,但没有,而且如果它阻止了注入的
<script>
标签,它也会阻止注入的<img>
标签。