当前位置:WooYun >> 漏洞信息

漏洞概要 关注数(24) 关注此漏洞

缺陷编号:wooyun-2015-0116968

漏洞标题:超星数字图书馆SQL注入漏洞

相关厂商:超星网

漏洞作者: 路人甲

提交时间:2015-05-29 17:17

修复时间:2015-09-01 09:36

公开时间:2015-09-01 09:36

漏洞类型:SQL注射漏洞

危害等级:高

自评Rank:15

漏洞状态:厂商已经确认

漏洞来源: http://www.wooyun.org,如有疑问或需要帮助请联系 [email protected]

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

2015-05-29: 细节已通知厂商并且等待厂商处理中
2015-06-03: 厂商已经确认,细节仅向厂商公开
2015-06-06: 细节向第三方安全合作伙伴开放
2015-07-28: 细节向核心白帽子及相关领域专家公开
2015-08-07: 细节向普通白帽子公开
2015-08-17: 细节向实习白帽子公开
2015-09-01: 细节向公众公开

简要描述:

RT

详细说明:

超星数字图书馆大学用的比较多,只要在谷歌里一所有就有很多的
inurl:/markbook/GetIndex.jsp

wooyun0.png


该漏洞需要用户登录,
我这里就演示一个站;
http://61.139.105.145/markbook/ 官方的测试账号是 guest/guest
一般图书管理系统学校都会有相应的测试账号,去官网会找到。
存在的SQL注入文件是:
http://61.139.105.145/markbook/FAQDisplay.jsp?FID=39
该文件对FTD参数过滤不严导致问题的产生。
我们来查看关键代码:
FAQDisplay.jsp

<jsp:useBean id="faqBean" scope="request" class="com.ssreader.beans.FaqBean"/>
<%
String fid = request.getParameter("FID");
faqBean.getFaq(fid);
faqBean.Faq();
faqBean.releaseList();
%>


直接到com.ssreader.beans.FaqBean追踪方法;
getFaq();

public boolean getFaq(String fid)
{
if (this.rs != null) return false; try
{
if (this.db == null)
this.db = new DAO();
}
catch (Exception e) {
e.printStackTrace();
return false;
}
if (this.db == null) return false;
String sql = "select * from faqtable where FID=" + fid;
try
{
this.rs = this.db.execQuerySQL(sql);
}
catch (Exception e) {
e.printStackTrace();
this.rs = null;
return false;
}
if (this.rs == null) return false;
return true;
}


可以看到参数没有过滤,导致SQL产生。

漏洞证明:

wooyun2.png


wooyun3.png


wooyun4.png

修复方案:

版权声明:转载请注明来源 路人甲@乌云


漏洞回应

厂商回应:

危害等级:中

漏洞Rank:9

确认时间:2015-06-03 09:34

厂商回复:

感谢提醒,漏洞补丁早已制作,各个学校修补进展比较慢

最新状态:

暂无