SSRF漏洞原理及复现

345 阅读2分钟

一、SSRF漏洞原理

SSRF 形成的原因大都是由于服务端提供了从其他服务器应用获取数据的功能,且没有对目标地址做过滤与限制。比如从指定URL地址获取网页文本内容,加载指定地址的图片,文档等等。SSRF漏洞通过篡改获取资源的请求发送给服务器(服务器并没有检测这个请求是否合法的),然后服务器以他的身份来访问服务器的其他资源。SSRF利用存在缺陷的Web应用作为代理攻击远程和本地的服务器。

PHP中下面函数的使用不当会导致SSRF:

file_get_contents()

fsockopen()

curl_exec()

伪协议

file://:从文件系统中获取文件内容,如,file:///etc/passwd

dict://:字典服务器协议,访问字典资源,如,dict:///ip:6739/info

gopher://:分布式文档传递服务,可使用gopherus生成payload。

挖掘SSRF漏洞

能够对外发起网络请求的地方,就可能存在SSRF漏洞。

从远程服务器请求资源(Upload from URL,Import &Export RSS feed) 数据库内置功能(Oracle[UTL_HTTP]、MongoDB、MSSQL、Postgres、CouchDB) Webmail 收取其它邮箱邮件(POP3/IMAP/SMTP) 文件处理,编码处理,属性信息处理(ffpmg,ImageMaic,DOCX,PDF,XML处理器)

利用技巧

利用条件:被攻击的服务等没有开启加密传输与鉴权。

端口扫描(扫描内网)

攻击内网存在漏洞的服务

攻击Web应用进行指纹识别及其中的漏洞

如果PHP安装了expect扩展,可以通过expect协议执行系统命令

dos攻击

file 协议暴力枚举敏感文件

二、实现

image.png

通过跳板机访问百度 其访问IP并不是我们的IP 而是跳板机 利用这一点可以做跳板攻击

image.png

访问内网服务器的文件

image.png

通过抓包来扫描端口开放情况