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
原文地址:https://www.cnblogs.com/KevinGeorge/p/8245712.html