零基础菜鸟研究一下下,理解错了欢迎指正~
一、知识点
Redis是一个数据库/服务器。
Redis默认配置是不需要密码认证的,也就是说只要连接的Redis服务器的host和port正确,就可以连接使用,也就是直接拿下权限。默认端口为6379。
我们可以尝试用redis-cli验证并利用有无这个redis未授权漏洞。
redis-cli是Redis命令行工具,是一个命令行客户端程序,可以将命令直接发送到Redis,并直接从终端读取服务器返回的应答。
语法:redis-cli -h 192.168.20.33 -p 6379
用法:redis-cli [OPTIONS] [cmd [arg [arg …]]]
-h <主机ip>,默认是127.0.0.1
-p <端口>,默认是6379
-a <密码>,如果redis加锁,需要传递密码
–help,显示帮助信息
.
二、怎么找redis未授权的网页?
1.fofa语法搜索:
port=“6379” && protocol=“redis”
2.奇安信语法搜索:
port=“6379” && protocol=“redis”
3.ZoomEye钟馗之眼语法搜索:
port:6379 +service:“redis”
这个搜索可以直接返回redis的各种信息,有这个信息的代表着这个网站是一定有redis未授权漏洞,一验一个准,我整个就爱住了好吧!
.
三、验证
我们根据上面三种方法找一个ip,用redis-cli工具去验证并且利用。
我是在windows下来验证的,linux也可以的(这个网上很多教程,自己去百度就好了)
windows版的工具下载:https://github.com/dmajkic/redis/downloads
我们链接后,用info server命令(这是redis下的一个查看服务器的信息的命令)
出现了返回信息,说明这个未授权漏洞是存在的
也可以用这个keys *命令验证(这个命令的意思是获取 redis 中所有的 key)
空列表,表示没有查到任何key,说明没有设置密码,未授权漏洞存在
.
.
redis客户端连接成功,但是操作报异常——(error) NOAUTH Authentication required
错误的含义是说你没有认证,说明没有使用密码连接,如果你知道密码可以用-a参数进行认证
当然,我反正是不知道,所以没有这个未授权漏洞……
.
四、后续简单利用理解
1.如果知道web的根目录且开web服务,那么操作上最简单的就是写入webshell
找到数据库的安装路径config get dir——这个好像没什么用额……
设置文件路径?注意要加双引号,否则不能成功
后续可以写一些文件在这个文件夹里,
只是进行一下操作,我这也不知道web路径,基本上都利用不了,就到这吧……
后续的写入webshell可以看看这两篇文章:
https://www.cnblogs.com/zw1sh/p/13812427.html
https://www.cnblogs.com/bmjoker/p/9548962.html
.
2.如果是linux系统,那么有一种不需要什么限制条件的getshell方法
利用计划任务执行命令反弹shell,这个限制条件就是权限是root
我这不是,就不操作了哈……
.
.
.
参考文章:
https://blog.csdn.net/gfd54gd5f46/article/details/78227087
https://blog.51cto.com/wt7315/2051136
https://www.cnblogs.com/chengxuzhimei/p/5236093.html
https://blog.csdn.net/wukong_666/article/details/51996832
这里有脚本下载链接:https://blog.csdn.net/m0_51803069/article/details/110499414