SSRF攻击

雨燕双飞 提交于 2019-12-07 01:48:06

SSRF攻击原理


什么是SSRF?

服务器端请求伪造(SSRF)是指攻击者能够从易受攻击的Web应用程序发送精心设计的请求的对其他网站进行攻击。(利用一个可发起网络请求的服务当作跳板来攻击其他服务)

简单理解就是:

攻击者能够利用目标帮助攻击者访问其他想要攻击的目标

A让B帮忙访问C

 为什么会产生SSRF漏洞?

很多web应用都提供了从其他的服务器上获取数据的功能。使用用户指定的URL,web应用可以获取图片,下载文件,读取文件内容等。且没有对目标地址做过滤与限制,就产生了SSRF

这个功能如果被恶意使用,可以利用存在缺陷的web应用作为代理攻击远程和本地的服务器。这种形式的攻击称为服务端请求伪造攻击,简称SSRF,例子如下,百度识图

再举个形象的例子,网页翻译,提供了让我们输入url的接口,然后系统去访问,这里是做过防护的,如果没有防护,我们就可以直通内网,如下图

乌云学习文章:http://www.anquan.us/static/bugs/wooyun-2016-0198176.html

SSRF的利用场景

  • 1 首先了解到的是存在SSRF漏洞的服务器,可以当成我们的一个跳板,去测试其他服务器
  • 2 如果一个公司内网外网不是物理隔离,可以通过这台服务器进行内网探测存活主机及端口,这应该属与信息搜集
  • 3 可以对内网Web应用进行指纹识别,原理是通过请求默认的文件得到特定的指纹,这也是属于信息搜集,而且也是把漏洞服务器当成一个跳板
  • 4 SSRF本身是支持很多协议的,通过一些函数,如fsockopen()、file_get_contents()、curl_exec()造成的SSRF漏洞,可以让我们对本地的敏感文件进行读取

漏洞挖掘


如何判断是漏洞点?

图片加载下载,分享页面,在线翻译,未公开的api(从远程服务器请求资源

文件处理,编码处理, 属性信息处理,

怎么知道这个点是否是漏洞点呢,其实这个东西不好回答,因为没有成文的规定,经验成分居多吧,如果看到让用户输入url,导入外部链接的这些点,就可以去尝试一下,可以尝试用谷歌语法搜索,例如:site:.com inurl:.php?*url=

在测试过程中如果优先写网站并没有给回显,那么我们如何才能知道到底有没有访问成功呢?

依然用到带外查询神器,CEYE平台,DNS带外查询,使用CEYE平台,通过使用诸如DNS和HTTP之类的带外信道,便可以得到回显信息

当然我们也可以通过抓包,在包里修改url的信息构造不同的请求然后观察返回的状态码来探测信息

image.png

简单的SSRF绕过


如果漏洞点是一个加载图片的地方呢,想必大家都见过社区或者论坛有这样一个模块点,就是可以让用户导入外部的图片链接进行评论或者其他,比如下图,

那么这种地方,也是可能存在ssrf的,不过当我们输入ceye.io却发现并没有回显请求,这是因为这种地方一般会对后缀做一个检测,如果不是jpg或者其他图片后缀的话并不会通过,不过好在ceye.io是很强大的,我们可以随便构造,xxxxxx.ceye.io/xxxxx.jpg, 对其进行输入,再去观察有无回显,结果有了

SSRF绕过技巧参考

这部分打算留待以后找到实践的机会

参考文章:https://blog.csdn.net/fly_hps/article/details/83046387

参考文章:https://www.freebuf.com/articles/web/135342.html

参考文章:https://www.secpulse.com/archives/65832.html

参考文章:https://blog.csdn.net/qq_26187985/article/details/82852026

扩展


关于cms,typecho-1.0-14.10.9中存在的ssrf漏洞

RPC定义

RPC(Remote Procedure Call)—远程过程调用,它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议

Xml-Rpc定义

XML-RPC的英文一个远程过程调用远端程序呼叫)(远程过程调用,RPC)的分布式计算协议,通过XML将调用函数封装,并使用HTTP协议作为传送机制。

而且如上图我们也知道Xml-Rpc是通过http协议传输的

Xml-Rpc请求格式

typecho-1.0-14.10.9的SSRF漏洞

构造请求代码

通过返回包查看返回内容,不断更换端口以打到探测内网目的

此处为何首先使用80端口,因为http服务,80端口一定是开着的,我们可以首先得到一个返回端口开放的包,再与其他包去比对

 

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!