java代码审计ssrf危险函数_某租车系统Java代码审计之后台注入漏洞分析

CMS简介

系统基于租车业务场景而搭建的O2O服务平台,可为用户提供商务租车、接送机、旅游租车、企业租车、自驾租车、婚庆用车等自助租车服务。

系统包含车辆库管理、门店管理、员工管理、司机管理、订单管理、活动管理、评价管理、财务管理、统计等。

部署简介

1、下载代码文件,可以本机调试或上传到自己服务器运行。

2、安装运行程序:(1)将解压文件夹中的opencarrun安装包复制到tomcat-->webapps--> 下;

(2)将sql导入mysql;

(3)启动tomcat;

3、开发包安装

打开MyEclipse-->File-->Import-->选择Existing Porjects into Workspace-->Next-->Select root directory 选择刚才解压的开发包文件中的opencar-->Finish

sql审计过程

漏洞位置:WebRoot\WEB-INF\lib\car-weishang-1.0.jar!\com\weishang\my\admin\DeleteAunt.class

功能模块:删除外聘员工

public voiddoGet(HttpServletRequest request,HttpServletResponse response)throwsServletException, IOException {

response.setContentType("text/html;charset=UTF-8");

PrintWriter out =response.getWriter();

ShopService ss =newShopService();

HttpSession session = request.getSession(true);

Object user = session.getAttribute("user");

Locale loc =newLocale("zh","CN");

ResourceBundle rb =ResourceBundle.getBundle("messages", loc);

String adminTip = rb.getString("adminTip");

String json ="";if(user==null) {

RequestDispatcher rd =request.getRequestDispatcher("/WEB-INF/jsp/login.jsp");

request.setAttribute("tip", adminTip);

rd.forward(request, response);

}else{String[] auntIds = request.getParameterValues("aunt_id");String ids ="";for(inti =0; i < auntIds.length; ++i) {

ids = ids + auntIds[i] +",";

}

ids = ids.substring(0, ids.length() -1);String flag = ss.deleteAunt(ids);

if(flag.equals("ok")) {

json ="{\"tip\":\""+ rb.getString("delete") + rb.getString("success") +"\"}";

}else{

json ="{\"tip\":\""+ rb.getString("delete") + rb.getString("failure") +"\"}";

}

out.print(json);

}

}

request.getParameterValues("aunt_id") 获取获取用户值,赋值给字符串数组变量 aunt_id, aunt_id经过处理交给ids变量,而ids变量进入deleteAunt方法,这里通过flag变量判断执行是否成功,这样只可能存在盲注了,跟进去:

deleteAunt方法位于/WebRoot/WEB-INF/lib/car-weishang-1.0.jar!/com/weishang/my/service/ShopService.classpublicString deleteAunt(String ids) {

String sql ="delete from aunt where aunt_id in ("+ ids +")";intflag =this.jdbc.executeUpdate(sql);this.jdbc.close();returnflag >0?"ok":"bad";

}

从这个方法看是一个执行删除操作,变量ids, 也就是我们问题参数直接被拼接到sql语句中,未做编译,未做任何过滤,从而造成注入漏洞,

修复建议

做全局过滤,或使用参数绑定

*本文作者:qq1654985095,转载请注明来自FreeBuf.COM

课程声明:该课程是教学使用,视频内涉及漏洞利用方法,请勿在互联网环境中使用;维护互联网安全,人人有责。 适合人群:零基础的大学生、IT技术人员、信息安全从业者、安全运维工程师、渗透测试工程师、漏洞挖掘工程师、白帽子 课程大纲(不完全、可能会在后期加入新的内容):1.攻防环境搭建2.信息收集3.PHP常见危险函数4.Kali Linux常用工具使用方法5.SQL注入原理及利用方法(宽字节注入、delete注入、update型注入、mysql函数报错、延时注入、联合注入、waf绕过等)6.XSS原理及利用方法7.CSRF原理及利用方法8.SSRF原理及利用方法9.文件上传漏洞原理及利用方法10.文件包含读取、代码执行、命令执行原理及利用方法11.逻辑漏洞原理及利用方法12.BurpSuite各个模块使用方法13.MSF后渗透使用方法14.Appscan、AWVS、Nessus、bogy等漏洞扫描器使用方法15.Sqlmap、nmap、中国菜刀等工具使用方法16.目录爆破原理及各个工具使用17.Windows及Linux系统提权18.常见getwebshell方法19.渗透测试面试技巧20.密码暴力破解21.内网攻防22.python开发poc23.Android渗透测试24.搜索引擎的高级用法 学习目标:掌握kali Linux渗透测试技巧、掌握常见漏洞检测及利用方法、全部学习完成后可就业渗透测试工程师、web安全工程师、安全运维工程师、漏洞挖掘工程师、安全驻场工程师等 特别提醒:本课程购买后可永久学习、可享受与讲师互动学习资格
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值