SSRF危害与利用

SSRF危害与利用

一、SSRF危害

  1. 对外网、服务器所在内网、本地进行端口扫描,获取一些服务的banner信息;

    假如虚拟机centos有一个ssrf.php文件内容为

    1
    2
    3
    4
    5
    6
    7
    8
    <?php

    $url=$_GET['url'];
    $res=file_get_contents($url);
    echo $res;

    ?>

    读取文件和信息

    1
    2
    ?url=file:///etc/passwd
    ?url=http://other.ip

    内网扫描

    用burp爆破或者python脚本,去遍历 /24和/16的网段,还有ABC类网址的私有地址段,及各类常用端口

    A类私有地址:10.0.0.0~10.255.255.255

    B类私有地址:172.16.0.0~172.31.255.255

    C类私有地址:192.168.0.0~192.168.255.255

    真实场景利用是这样的:

    如果服务器有一个ssrf.php,且用的函数已知是file_get_contents

    1
    2
    3
    resp=requests.get(f'http://exmaple.com?ssrf.php?url=内网地址');
    if 'file_get_contents' not in resp.text and 'warning' not in resp.text:
    print...

    这一般是枚举出来的

    获取指纹

    根据扫描结果,进一步实现内网访问,进而获取服务器指纹信息

  2. 使得

二、SSRF漏洞

1.在url中

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
share
wap
url
link
src
u
3g
target
source
display
domain
sourceURl
imageURL
domain
lcoation
remote

2.在web页面功能上

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
分享功能
通常获取目标URL地址网页内容中的<title>标签或<metaname="" content="">标签
比如人人网的分享功能:http://widget.renren,com/****?resourceURl=https://www.sobug.com通过目标url地址获取了title标签的相关文本内容。

转码服务
就是将原网页内容调成手机屏幕大小

在线翻译
通过url地址去翻译对应文本内容

图片加载(比如添加水印、压缩)与下载

图片、文章收藏

未公开的api实现及其他调用URL的功能

三、SSRF判断

如果没有回显内容,怎么判断

1.DNSlog

这个就是在sql注入盲注时,使用过的一个玩意儿;log4j漏洞时候的poc也用到这个,就是将查询信息发送到DNS域名上

2.公网服务器的访问日志

四、利用方式

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
gopher
一种分布式的文档传递服务,允许用户以无缝的方式探索、搜索和检索驻留在不同位置的信息;可构造各种HTTP请求包
http://192.168.1.89/ssrf.php?url=gopher://127.0.0.1:3333/_test

dict
字典服务协议,让客户端使用过程中能访问更多的字典源
在ssrf中用来获取服务器端口上运行的服务版本等信息
http://192.168.1.89/ssrf.php?url=dcit://127.0.0.1:3333/info

file
访问本地计算机文件
http://192.168.1.89/ssrf.php?url=file://127.0.0.1/1.php
http://192.168.1.89/ssrf.php?url=file:///etc/passwd

http
实现url跳转,访问其它服务器
http://192.168.1.89/ssrf.php?url=http://www.baidu.com

一般来说,对于函数file_get_contents(),协议gopher和dict,php默认是不开启的,使用时出现

Unable to find the wrapper “dict” - did you forget to enable it when you configured PHP?

更多ssrf例子

https://m.freebuf.com/articles/web/320982.html

五、绕过

1.将IP地址转化为十进制,直接转换成一串数字,也可访问

2.重新构造url地址

http://www.baiud.com@www.wuyun.com,显示结果是www.wuyu.com的

3.短地址

六、防御

限制协议为http(s),不允许为其它协议

设置url或ip地址白名单

限制内网ip访问,不能以10.0,172.16,192.168,开头等

统一错误信息

禁用重定向

限制请求的端口,如80,443,8080,8090

服务器端做好认证交互,禁止非正常用户访问服务

  • 版权声明: 本博客所有文章除特别声明外,著作权归作者所有。转载请注明出处!
  • Copyrights © 2023-2025 是羽泪云诶
  • 访问人数: | 浏览次数:

请我喝杯咖啡吧~

支付宝
微信