【web-ctf】ctf-pikachu-ssrf

本文深入探讨了SSRF(Server-Side Request Forgery)漏洞,介绍了通过curl和file_get_contents函数触发SSRF的情况。攻击者可利用此漏洞通过受影响的服务器访问目标地址,获取敏感信息,如内部网络资源。防范措施包括严格过滤目标地址。
摘要由CSDN通过智能技术生成

ssrf(Server-Side Request Forgery,服务器端请求伪造)

漏洞产生原因:由于服务端提供了从其他服务器应用获取数据的功能,但又没有对目标地址做严格过滤与限制导致攻击者可以传入任意的地址来让后端服务器对其发起请求,并返回对该目标地址请求的数据。

数据流:攻击者----->存在ssrf漏洞的服务器---->目标地址(目标服务器)

根据后台使用的函数的不同,对应的影响和利用方法又有不一样。PHP中下面函数的使用不当会导致SSRF漏洞:

file_get_contents()
fsockopen()
curl_exec()

1.SSRF(curl)

该漏洞使用了curl_exec()函数,存在的问题是前端传进来的url被后台使用curl_exec()进行了请求,然后将请求的结果又返回给了前端。

  1. 点击链接,进行访问,发现网址中出现了一个url参数。
    在这里插入图片描述

  2. 修改url参数为目标地址,借助这个存在ssrf漏洞的服务器将目标地址的内容打印出来。该内容可以是一些敏感文件,端口等等。
    在这里插入图片描述
    在这里插入图片描述
    测试目标网站的80端口,注意这里我为了方便,使用的是本机的ip,其实应该使用你想要攻击的服务器的ip。
    在这里插入图片描述

curl支持很多协议,有FTP,FTPS,HTTP,HTTPS,GOPHER,TELNET,FILE,LOAD

2.SSRF(file_get_content)

该漏洞使用了file_get_contents()。该函数可以对本地和远程的文件进行读取。

  1. 点击链接,进行访问,发现网址中出现了一个file参数。
    在这里插入图片描述

  2. 修改file参数为目标地址,借助这个存在ssrf漏洞的服务器将目标地址的内容打印出来。该内容可以是后端代码等等(只有使用file_get_content函数才可以打印后端代码)。

    打印目标地址内容:
    在这里插入图片描述
    打印后端代码:

     php://filter/read=convert.base64-encode/resource=ssrf.php
    

    在这里插入图片描述
    最后将得到的内容进行base64解码即可得到ssrf.php的源码内容。

总结

防范措施:
如果一定要通过后台服务器远程去对用户指定(“或者预埋在前端的请求”)的地址进行资源请求,则请做好目标地址的过滤

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值