zoukankan      html  css  js  c++  java
  • WEB安全第三篇--控制请求的艺术:CSRF和SSRF

    零、前言

      最近做专心web安全有一段时间了,但是目测后面的活会有些复杂,涉及到更多的中间件、底层安全、漏洞研究与安全建设等越来越复杂的东东,所以在这里想写一个系列关于web安全基础以及一些讨巧的payload技巧以便于备忘。不是大神、博客内容非常基础,如果真的有人看而且是大牛们,请不要喷我,欢迎指正我的错误(水平有限)。

    一、CSRF:

    1、本质:

      攻击者可以完整的猜测出请求所需要的所有必须字段,诱骗正常用户点击,从而可以达到利用用户的身份完成请求操作的目的。

    2、cookie的特点:

      (1)第三方cookie或称永久cookie,浏览器会发送(有些也不会发送,看浏览器类型和版本),受害者无需处于目标系统登录状态。

      (2)暂时性cookie,浏览器一般都会发送,受害者必须处于目标系统登录状态。

    3、核心:

      可以让攻击者猜测出完整的必须参数值,从而构建请求,且用户点击,利用了用户cookie伪装身份。而且目标系统对跨域请求没有验证。

    4、防御:

      (1)验证referer,最简单但是效果一般,攻击者可以通过构造目录路径或者注册域名等方法绕过。

      (2)动态token,token放在头部某字段最好,放在post或者get数据中也可以,但是不能放在cookie中。要变,不能让攻击者猜测出规律,或者不能通过其他方式比如api获取。

      (3)敏感操作弹验证码,终极防御手段。

      (4)X-Request-With:XMLHttpRequest头部属性导致CSRF失败:参看我自己的博客记录http://www.cnblogs.com/KevinGeorge/p/7701153.html

    二、SSRF:

    1、本质:

      用户可以控制服务器发起请求,从而达到打穿内网,绕过ACL等目的。

    2、SSRF可以利用多种协议:

      (1)HTTP、HTTPS

      (2)FTP

      (3)SMB

      (4)FILE伪协议

      (5)TELNET、SSH

      (6)GOPHER

      (7)...

    3、常见发生位置:

    (1)分享功能:这里是会通过url获取信息(也求是发起请求,这个发起请求是本质)如果没有对目标地址范围进行限制,极容易诱发ssrf漏洞。
    (2)PC到手机的转码服务。通过url地址把原地址内容转成适合手机阅读的情况。
    (3)在线翻译,通过url地址翻译内容。
    (4)图片文章的加载、下载、收藏。
    (5)其他未公布的api
  • 相关阅读:
    不测的秘密:精准测试之路----读书笔记(第二章)
    如何使用for循环连续的实例化多个对象!
    java如何在一个有序的数组类插入一个数!
    webstrom 常用快捷键
    如何使Label带有链接??此法感觉有点取巧!!!
    System.DateTime的一些格式
    如何解决”无法将类型为“System.DateTime”的对象强制转换为类型“System.String”。“
    如何解决“连接未关闭。 连接的当前状态为打开”问题
    c语言中 %p的含义
    什么情况下用递归?
  • 原文地址:https://www.cnblogs.com/KevinGeorge/p/8245712.html
Copyright © 2011-2022 走看看