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='$aid'and 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
作者:心灵
上一篇: 黑客在线之经典入侵技术总结 (二)