CTFHub-技能树-SSRF

本文最后更新于:2024年10月12日 晚上

愿望:快乐每一天~

SSRF,即服务器端请求伪造(Server-Side Request Forgery),是一种网络攻击技术,攻击者利用服务器上的应用程序向任意服务器发起请求或者操作,这些请求可能包括但不限于文件读取、命令执行、端口扫描等。由于这些请求是从服务器内部发起的,因此他们可以绕过服务器的外部访问控制,访问内部网络资源或者执行恶意操作。

一般情况下,SSRF攻击的目标是外网无法访问的内部系统(正因为请求是由服务端发起的,所以服务端能请求到与自身相连而与外网隔离的内部系统)。

SSRF

SSRF 形成的原因大都是由于服务端提供了从其他服务器应用获取数据的功能,且没有对目标地址做过滤与限制。

内网访问

尝试访问位于127.0.0.1的flag.php吧

打开页面,什么也没有,看到网址后面是/?url=_

直接/?url=127.0.0.1/flag.php,得到flag

伪协议读取文件

尝试去读取一下Web目录下的flag.php吧

常见的伪协议类型有

  • file:/// 本地文件传输协议,主要用于访问本地计算机中的文件,如,file:///etc/passwd
  • dict:// 字典服务器协议,访问字典资源,如,dict:///ip:6739/info:
  • sftp:// SSH文件传输协议或安全文件传输协议
  • ldap:// 轻量级目录访问协议
  • tftp:// 简单文件传输协议
  • gopher:// 分布式文档传递服务,可使用gopherus生成payload

当我们发现SSRF漏洞后,首先要做的事情就是测试所有可用的URL伪协议

本题我们直接访问

1
/?url=file:///var/www/html/flag.php   为什么这样呢var,www
var

反正反正就先这样吧,弟弟

端口扫描

来来来性感CTFHub在线扫端口,据说端口范围是8000-9000哦,

根据题目提示,需要进行端口扫描。在SSRF中,dict协议与http协议可用来探测内网的主机存活与端口开放情况。

抓包后,发送到Intruder模块,将positions定位到内网地址端口,设置payload,然后开始攻击

payload设置
flag

攻击后的结果,按长度排序,看到了端口8140的我们的目标端口,这里直接就把flag显示出来力

POST请求

参考:

SSRF漏洞原理攻击与防御(超详细总结)-CSDN博客


CTFHub-技能树-SSRF
http://viper2383.github.io/2024/10/12/CTFHub-技能树-SSRF/
作者
w1per3
发布于
2024年10月12日
许可协议