今天开始扒拉一下各种国产软件已经公布的漏洞,有些公司自己把漏洞保密起来,其实真是傻啦吧唧的,以为不让大家知道,漏洞就不存在吗!没办法,可能也是为了上市公司的股价吧。普通人对于漏洞的理解还是有点狼来了的感觉,没有正确的对待漏洞的出现和解决,只是想明面上保持自己在行业里的领先地位。
废话太多,有点愤青的感觉,对于我这个年纪来说不太合适?
ssv-91661发布在知道创宇上面,这个编号的开头字母就是知道创宇的简称,这个无所谓了。
看看实际的漏洞内容:
- 漏洞发生的页面位置是/meeting/Maint/MeetingTypeCheck.jsp
- 这个页面是可以直接访问的,不用做路由跳转。
- 漏洞页面的代码如下:
<%@ page language="java" contentType="text/html; charset=GBK" %><%@ page import="weaver.general.Util" %>
<jsp:useBean id="RecordSet" class="weaver.conn.RecordSet" scope="page" /><%
String roomtypename = Util.null2String(**.**.**.**.URLDecoder.decode(request.getParameter("typename"),"UTF-8")); //获得操作页面MeetingType_left.jsp传过来的参数 name
String id = Util.null2String(request.getParameter("id"));
if (id != null && !"".equals(id))
RecordSet.executeSql("select * from meeting_type where name='"+roomtypename+"' and id != " + id); //修改状态时有id传入进行过滤
else
RecordSet.executeSql("select * from meeting_type where name='"+roomtypename+"'");
if (RecordSet.next()){
out.print("exist--");
} else {
out.print("unfind--");
}
%>
这是一个非常明显的sql注入漏洞,当然这个漏洞是2016年发现的,现在2019年了,3年过去了。再想找到这么直接的漏洞估计不太可能了,当然也不是说一定不可能,估计利用原理是一样的,但是看起来没这么明显。
两个问题:
- 输入参数id和typename没有做任何字符过滤
- sql语句直接做的字符串拼接,没有用对象处理
其实这个就是普及一下常识,大家看看就好了。
本系列的漏洞分析主要是针对国内软件进行分析,如果有知识产权的侵犯,请联系本人删除,非常感谢!