SSRF内容

发布时间 2023-08-21 19:24:04作者: na2co3-

SSRF(Server-Side Request Forgery)

服务器端请求伪造

在服务器上的文件发起的请求访问本机或其他机器上的文件

攻击者构造形成由服务端发起请求的安全漏洞

相关函数

curl_exec

 

可以执行cURL会话,返回网站代码

 

用途:爬虫、获取接口数据、FTP下载文件

 

使用时需要添加php_从curl.dll扩展

 

 

file_get_contests()

将整个文件读入到一个字符串中

fsockopen()

打开一个网络连接或者Unix套接字连接

相关协议

file

查看文件

curl -v 'file:///etc/passwd'(三斜杠/// : 表示本地文件资源的路径)

dict

探测端口

用于搭建在线字典服务,还可以强行读取tcp协议内容

http://....?url=dict://127.0.0.1:3306

gopher

一种信息查找系统

反弹shell

出现相关协议或者函数则是存在这种SSRF漏洞

危害

1、扫描资产

2、获取敏感信息

3、攻击内网服务器(sql注入等绕过防火墙)

4、通过Redis写入WebShell或建立反弹连接

常见的场景

在读取解析地址的内容容易出现漏洞

1、社会化分享功能

2、转码服务

3、在线翻译

有些网站可以翻译整个网站的内容,那么翻译之前需要先解析漏洞

4、图片加载、下载功能

5、图片、文章收藏内容

6、网站采集、网站抓取

如何发现SSRF漏洞

1、爬取地址

抓取通信数据

2、查看是否请求了其他资源

使用Google语法搜索关键字

share、wap、url、link、src、source、target、u、3g、display、sourceURL、domin

拥有源码的情况下,搜索curl_exec(),file_get_contents(),fsockopen()三个函数

搜索SSRF漏洞的工具

https://github.com/cujanovic/SSRF-Testing
https://github.com/tarunkant/Gopherus
https://github.com/swisskyrepo/SSRFmap

pikachu靶场

curl

url中有资源请求

 

使用url读取本机文件

 

http://127.0.0.1/pikachu/vul/ssrf/ssrf_curl.php?url=file://C:\windows\system32\drivers\etc\hosts

file_get_cintent

查询端口开放情况

http://127.0.0.1/pikachu/vul/ssrf/ssrf_fgc.php?file=http://127.0.0.1:7788

查询文件

http://127.0.0.1/pikachu/vul/ssrf/ssrf_fgc.php?file=file://C:\windows\system32\drivers\etc\hosts

 

http://127.0.0.1/pikachu/vul/ssrf/ssrf_fgc.php?file=php://flter/read=covert.base64-encode/resource=ssrf.php

如何防范SSRF漏洞

1、禁用协议

2、限制请求端口

3、设置URL白名单 只允许访问固定内容

4、过滤返回信息 只允许返回固定的内容

5、统一错误信息,不让用户看到报错信息