CSRF和SSRF

做完了pikachu平台的实验了,回想了一下这两个长的好像,那他们有啥区别和各自的特点吗?

本文是在基于网上的知识,自己总结学习的。

CSRF(跨站请求伪造),Cross-site requestforgery

听到跨站,我们会想到xss(Cross-Site Scripting)的跨站脚本攻击,

不同的是CSRF是借用户的权限完成攻击,攻击者并没有拿到用户的权限,

而XSS是直接盗取到了用户的权限,然后实施破坏,也可以换一句话说xss是实现CSRF的途径的其中一条。

XSS是服务器对用户输入的数据没有进行足够的过滤,导致客户端浏览器在渲染服务器返回的html页面时,出现了预期值之外的脚本语句被执行。

发生条件:CSRF利用受害者尚未失效的身份认证信息(cookie、会话等),诱骗其点击恶意链接或者访问包含攻击代码的页面,在受害人不知情的情况下以受害者的身份向(身份认证信息所对应的)服务器发送请求,从而完成非法操作(如转账、改密等)

利用:

对于很多网站来说,即使是一些重要的操作使用POST来提交请求,但是服务器再接收请求的时候并没有严格区分POST和GET。在PHP中滥用$_REQUEST就是例子。

如果服务端已经区分了GET,POST只用POST请求数据,可以通过制造一个隐藏的表单,并通过js代码自动提交伪造的表单。
案例可见https://www.cnblogs.com/7-58/p/12360366.html

防范措施见https://www.cnblogs.com/7-58/p/12453909.html

 

SSRF(服务器端请求伪造) Server Side RequestForgery

它是由服务端发起的,所以它能够请求到与它相连但与外网隔离的内部系统。

由于服务端提供了从其他服务器应用获取数据的功能(例如分享等功能)且没有对目标地址做过滤与限制,给予了攻击者乘虚而入的机会。

比如从指定URL地址获取网页文本内容,加载指定地址的图片,下载等等。SSRF是利用存在缺陷的web应用作为代理攻击远程和本地的服务器

案例可见pikachu平台的实验:https://www.cnblogs.com/7-58/p/12401252.html

 

总结区别:

CSRF是服务器端没有对用户提交的数据进行随机值校验,且对http请求包内的refer字段校验不严,导致攻击者可以利用用户的Cookie信息伪造用户请求发送至服务器。   

SSRF是服务器对用户提供的可控URL过于信任,没有对攻击者提供的RUL进行地址限制和足够的检测,导致攻击者可以以此为跳板攻击内网或其他服务器。

posted @ 2020-05-21 22:20  gxy*  阅读(352)  评论(0编辑  收藏  举报