一.了解Webshell
Webshell是heike渗透后植入到网站服务器上的恶意脚本文件,他提供了一个web界面的命令行控制台,让攻击者能够远程控制服务器.有大马小马等多种形式.
web(通过浏览器访问)+shell(系统命令行)=webshell(通过网站访问的服务器控制台)
Webshell工作流程:1.发现漏洞(sql漏洞,文件上传等) 2.上传webshell 3.用浏览器访问webshell 4.执行命令控制服务器
二.关系型数据库和非关系型数据库
关系型数据库(如MySQL等): 采用关系模型来管理数据的数据库,就像互相关联的Excel表格仓库
适合复杂查询,适合需要严格校验,复杂计算的场景
非关系型数据库(如Redis等): 处理大量非结构化的数据,像一堆自由组合的收纳盒,使用键值对来存储数据,例如键key为苹果,值value为20个,在redis数据库中键是很重要的.适合快速存储,适用于当前网络视频平台,信息高速流动的场景.是一个高速缓存数据库.
三.Redis命令
(1).Redis客户端与服务端的连接
1.Redis客户端与服务端连接,先开启服务端redis-server,再通过redis-cli客户端进行连接
redis-cli命令用来连接本地服务器,使用PING命令查看服务端是否开启

2.Redis客户端和服务端不在一台服务器上,需要进行远程连接,确保bind值修改和保护模式的关闭
redis-cli -h host -p port -a password #当攻击机显示保护模式开启时,但conf文件里已关闭,可能是未同步问题,可以使用config命令直接对内存进行修改(不要搞我的电脑)


(2).Redis键命令
Redis本质上是一个键值对存储的数据库,以下命令用来实现对键值的操作
1.set key_name value #创建键值
2.del key_name #删除键
3.dump key_name #序列化键
4.exists key_name #判断键是否存在
5.expire key_name seconds #为键设置过期时间,以秒为单位,过期后该键自动删除
6.keys pattern #对给定要求的键进行查找,模糊查找
7.move key_name db #将某个键移动到指定数据库下
8.persist key_name #为有时间期限的key移除时间期限
9.rename key_name newkey_name #为键修改名字
10.type key_name #返回key的数据类型
.......有意愿可以多了解些redis键命令
(3).键的值命令
1.set key_name value #对键进行赋值
2.get key_name #显示key的值
3.getset key_name value #更改key的值并返回旧值
4.mget key1_name key2_name .... #获取多个key值
.........想学更多去菜鸟教程
四.Redis未授权访问漏洞
对于Redis未授权访问漏洞,有四种攻击方式
1.写入webshell,此处需要靶机开启web服务,受限比较大
2.利用计划任务拿到反弹shell,向靶机写入时间任务,适用于靶机为centos系统,限制小
3.ssh-keygen公钥登陆服务器,利用公钥私钥进行远程连接
4.Redis主从复制,通过工具来完成