【问题标题】:CRSF with XSS Parses % in GET request as %25带有 XSS 的 CRSF 将 GET 请求中的 % 解析为 %25
【发布时间】:2018-11-08 13:29:28
【问题描述】:

注意:我正在学习网络安全课程,我们一直在学习 CSRF 和 XSS。我们在课堂上的项目站点故意容易受到 crsf 和 xss 的攻击。我有一个带有以下表单的恶意 html 页面,该页面在加载时提交。您可以看到脚本正在尝试覆盖 cookie。编码使用 %xx 对 ASCII 字符进行编码。

当我访问恶意网站,然后在 Chrome 中使用网络监控时,我看到 % 的编码变成了 %25。

我知道 ASCII 中的 %25 只是百分号本身,但是这种编码会弄乱 XSS。如果我在 CSRF html 表单之外使用恶意 XSS 链接,那么攻击会起作用并且 cookie 会被覆盖。但是,通过 CSRF 的编码无法覆盖 cookie,因为文字“%25”会弄乱 XSS 脚本。有关如何使用此 GET 请求在 CSRF 中完成 XSS 的任何提示?我将尝试使用其他工具通过 HTML 和 Javascript 执行 GET 请求。我是一名嵌入式程序员,所以 HTML 和 Javascript 不是我的强项,但我也一直在网上寻找解决此问题的方法,但不明白为什么 CSRF 中会发生从 % 到 %25 的变化。任何提示将非常感谢。

【问题讨论】:

    标签: javascript html xss csrf


    【解决方案1】:

    在 HTML 文档中设置隐藏表单字段的 value 属性时,不应进行 URL 编码。相反,您应该将在 HTML 中具有特殊含义的字符编码为 HTML 实体:

    • < 变为 <
    • " 变为 "
    • & 变为 &

    等等

    【讨论】:

      猜你喜欢
      • 2013-07-08
      • 1970-01-01
      • 2021-02-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-08-24
      • 1970-01-01
      相关资源
      最近更新 更多