软件开发培训班 >> 网络技术 >> 网络安全
DEDECMS任意修改文章漏洞(exp) |
|
这个漏洞不足以得到马儿 但能修改任何文章 也算是一个严重的漏洞! 废话不说 经典对白 看代码! member\soft_edit.php 01if(empty($dopost)) //如果这里是空也就是直接访问这个文件 02{ 03 //读取归档信息 04 $arcQuery= "Select 05 dede_channeltype.typename aschannelname, 06 dede_arcrank.membername asrankname, 07 dede_channeltype.arcsta , 08 dede_archives .* 09 From dede_archives 10 left join dede_channeltype on dede_channeltype.id=dede_archives.channel 11 left join dede_arcrank on dede_arcrank.rank=dede_archives.arcrank 12 where dede_archives.id=$aid "; 13//悲剧了 没有验证MID信息 AID这里就是文章ID 可以自定义! 14 $dsql->SetQuery($arcQuery); 15 $row= $dsql->GetOne($arcQuery); 16 17//省略一堆验证代码.... 18include(DEDEMEMBER."/templets/soft_edit.htm"); //载入模板[code] 19//再看这个soft_edit.htm 的代码 20//其中一段是 21 //输出了 idhash 这个很重要 //这样就得到了要修改文章的idhash //然后用修改文章的文件去利用 看代码 archives_edit.php 01if($dopost==save) 02{ 03 include(DEDEMEMBER./inc/archives_check_edit.php); //这里是验证idhash 04//省略一堆没用的代码 05$upQuery= "Update `dede_archives ` set 06 ismake=$ismake, 07 arcrank=$arcrank, 08 typeid=$typeid, 09 title=$title, 10 litpic=$litpic, 11 description=$description, 12 keywords=$keywords, 13 mtype = $mtypesid, 14 flag=$flag 15 where id=$aidAnd mid=$mid; "; //默认的MID是1 也就是ADMIN管理员 aid就是文章ID 现在看下archives_check_edit.php这个文件 1$ckhash= md5($aid.$cfg_cookie_encode); 2if($ckhash!=$idhash) //idhash就是这样用的 3{ 4 ShowMsg(校对码错误,你没权限修改此文档或操作不合法!,-1); 5 exit(); 6} //这样就成功修改文章了 利用EXP:
//这里是文章ID 自己在plus/view.php里找
//发布人的MID 默认ADMIN是1
// 栏目ID 不知道的就自己新发表一篇然后看源代码找到可以发布的ID
//文章标题
//文章内容
//idhash 在第一步里说了怎么获取了
//验证码 。 。新发布文章就能获取
转自:T00ls 作者:心灵 |