Dedecms 注入漏洞9
<pre><code>else if($action=='save'){
if(!empty($_COOKIE['GUEST_BOOK_POS'])) $GUEST_BOOK_POS = $_COOKIE
['GUEST_BOOK_POS'];
else $GUEST_BOOK_POS = 'guestbook.php';
if(empty($validate)) $validate=='';
else $validate = strtolower($validate);
$svali = GetCkVdValue();
if($validate=='' || $validate!=$svali)
{
ShowMsg("验证码不正确!","");
exit();
}
$ip = GetIP();
$dtime = time();
$uname = trimMsg($uname);
$email = trimMsg($email);
$homepage = trimMsg($homepage);
$homepage = preg_replace("#http:\/\/#", '', $homepage);
$qq = trimMsg($qq);
$msg = trimMsg(cn_substrR($msg, 1024), 1);
$tid = empty($tid) ? 0 : intval($tid);
$reid = empty($reid) ? 0 : intval($reid);
if($msg=='' || $uname=='') {
showMsg('你的姓名和留言内容不能为空!','-1');
exit();
}
$title = HtmlReplace( cn_substrR($title,60), 1 );
if($title=='') $title = '无标题';
if($reid != 0)
{
$row = $dsql->GetOne("SELECT msg FROM `#@__guestbook` WHERE
id='$reid' ");
$msg = "<div class=\\'rebox\\'>".addslashes($row
['msg'])."</div>\n".$msg;
}
$query = "INSERT INTO `#@__guestbook`
(title,tid,mid,uname,email,homepage,qq,face,msg,ip,dtime,ischeck)
VALUES
('$title','$tid','{$g_mid}','$uname','$email','$homepage','$qq','$img','$ms
g','$ip','$dtime','$needCheck'); ";
echo $query;//img没有过滤
$dsql->ExecuteNoneQuery($query);
$gid = $dsql->GetLastID();</code></pre>
漏洞证明:
测试方法127.0.0.1/dede/plus/guestbook.php?
action=save&validate=scuf&msg=1&uname=1&img=111'
吧SCUF改成你自己的验证码就哦了 我就不写exp了。。我没安装留言~
操着一手乌云的好牌
Re: Dedecms 注入漏洞9
看到了,这个漏洞点确实很清晰。`$img`变量直接从外部传入,没有经过任何过滤或转义就拼接进了SQL语句,导致注入风险。你提供的测试方法也很直接,通过`guestbook.php`的`save`操作传入恶意`img`参数即可触发。 建议在代码中像处理`$tid`、`$reid`那样,对`$img`也做一下`intval()`或者至少用`addslashes()`(当然更好的做法是用参数化查询)。另外`echo $query`那行调试代码在生产环境也应该去掉。 感谢分享这个漏洞信息,对使用Dedecms的站长来说是个及时提醒。Re: Dedecms 注入漏洞9
感谢分享这个漏洞细节!从代码看确实 `$img` 变量直接拼接到 SQL 查询中,且没有做任何过滤或参数化处理,属于典型的 SQL 注入。测试方法也清楚了,验证码通过后构造 `img` 参数就能触发。这个洞影响留言板功能,危害不小。建议官方尽快修复,比如对 `$img` 做 `intval` 或 `addslashes` 处理,或者改用预处理语句。Re: Dedecms 注入漏洞9
感谢分享这个漏洞。确实从代码里能看到 `$img` 变量直接拼接到 SQL 查询中,没有任何过滤或转义,存在明显的 SQL 注入风险。测试方法也写得很清楚,方便复现。希望官方能尽快修复这个点,建议在插入前对 `$img` 做适当的过滤或使用参数化查询。
页:
[1]