ssrf漏洞利用+CTF实例

引发ssrf漏洞的几个函数

  • file_get_contents() 把整个文件读入一个字符串中,获取本地或者远程文件内容
  • fsockopen() 获得套接字信息
  • curl_exec() 执行一个curl会话,由curl_init()初始化一个新的会话,返回一个curl句柄
  • fopen() 打开文件或者URL
  • readfile() 输出一个文件,读入一个文件并写入到输出缓冲

ssrf用到的协议

  • file协议:获取敏感文件信息——file:///etc/passwd
  • dict协议:探测内网主机以及端口开放情况——ditc://ip:port/命令
  • gopher协议:在ssrf的利用中一般用来攻击redis,mysql,fastcgi,smtp等服务

常见绕过

1.@符号绕过

http://127.0.0.0.1==http://[email protected]

2.点分割符号替换(可以使用。来代替.)

http://127。0。0。1

3.本地回环地址的其他表现形式

127.0.0.1,通常被称为本地回环地址,一些其他的表示方法如下:

http://127.0.0.1

http://localhost

http://127.255.255.254 ## 从127.0.0.2-127.255.255.254都可以

http://[::1]

http://[::ffff:7f00:1] 

http://[::ffff:127.0.0.1]

http://127.1

http://127.0.1

http://0:80

4.IP进制转换

点分十进制:127.0.0.1:

八进制:0177.0.0.1

十六进制:0x7f.0.0.1

Redis基础知识

关键词:非关系型数据库,默认端口号是6379,key-value存储系统

## redis的编译安装
wget http://download.redis.io/releases/redis-6.0.8.tar.gz
tar -xzf redis-6.0.8.tar.gz
cd redis-6.0.8
make
cd src
./redis-server # 启动redis
./redis-server ../redis.conf& # 指定配置文件后台运行
./redis-cli -h IP # 运行客户端,可以指定IP远程登录

## 基础语法,在客户端下运行以下命令
select [dbnum] # 换数据库,每个数据库对外都是从0开始的递增数字命名
keys * # 查看所有键
ping # 测试服务是否运行,如果返回PONG则在运行
set name "zhansan" # 设置键值对,这是字符串型,还有hash类型,列表list,集合set,有序集合sorted set
get name # 查看指定键的值
del name # 删除键
quit # 退出
save/bgsave # 持久化操作,会保存在dir/dbfilename

flushdb # 删除当前数据库中数据
flushall # 删除所有数据库中数据

info # 查看redis基本信息

Redis未授权访问漏洞

影响版本

数据库版本在4.x/5.x以下

漏洞产生条件

redis绑定在0.0.0.0:6379,且没有进行添加防火墙规则避免其他非信任来源IP访问等相关安全策略,直接暴露在公网;没有设置密码认证(一般为空),可以免密码远程登录redis服务。

利用姿势

1.无口令远程登录redist

2.利用redis的持久化写webshell

3.利用持久化利用公私钥认证获取root权限

4.利用主从复制,利用攻击软件获得shell

### 漏洞利用前提条件
## 修改配置文件red

你可能感兴趣的:(网络信息安全基础知识,CTF-wp,redis,数据库,缓存)