Java代码审计后台注入漏洞举例分析

介绍

这篇文章主要讲解了“Java代码审计后台注入漏洞举例分析”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Java代码审计后台注入漏洞举例分析”吧!

部署简介

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

2,安装运行程序:

(1)将解压文件夹中的opencarrun安装包复制到tomcat——在webapps——比;下,

(2)将sql导入mysql;

(3)启动tomcat;

(4)启动完毕后,前台访问地址:http://localhost: 8080/opencarrun/

3,开发包安装

打开MyEclipse——在文件——在进口,在选择现有Porjects工作区,在未来,在选择根目录选择刚才解压的开发包文件中的opencar——在完成

sql审计过程

漏洞位置:

WebRoot \ web - inf \ lib \ car-weishang-1.0.jar ! \ com \ weishang \ \ admin \ DeleteAunt。类

功能模块:删除外聘员工

 <代码> <强>公共空白 doGet (HttpServletRequest请求,HttpServletResponse响应)<强>  ServletException, IOException {
,,,response.setContentType(<强>“text/html; charset=UTF-8" );
,,,PrintWriter=response.getWriter ();
,,,ShopService党卫军=<强>新 ShopService ();
,,, HttpSession会话=request.getSession(<强>真正的);
,,,对象用户=session.getAttribute(<强>“user" );
,,,地区loc=<强>新语言环境(<强>“zh"> “CN" );
,,,ResourceBundle rb=ResourceBundle.getBundle(<强>“messages" 强,loc),
,,,字符串adminTip=rb.getString(<强>“adminTip" );
,,, json字符串=<强>““强;
,,,<强>如果(用户==<强>空){
,,,,,,,RequestDispatcher rd=request.getRequestDispatcher(<强>“/web - inf/jsp/login.jsp" );
,,,,,,,request.setAttribute(<强>“tip" 强,adminTip);
,,,,,,,rd.forward(请求、响应);
,,,其他}<强> {
,,,,,,, String [] auntIds=request.getParameterValues(<强>“aunt_id" );
,,,,,,,字符串id=<强>““强;

,,,,,,,<强> (<强> int =0;我& lt;auntIds.length;+ + i) {
,,,,,,,,,,,id=id + auntIds[我]+ <强>“,“强;
,,,,,,,}

,,,,,,,id=id。substring (0, ids.length () - 1),
,,,,,,,字符串国旗=ss.deleteAunt (ids);
,,,,,,,<强> (flag.equals(<强>“ok" )){
,,,,,,,,,,,json=<强>“{ <强> \“ <强>提示 <强> \“ <强>: <强> \“ <强>“ + rb.getString(<强>“delete" )+ rb.getString(<强>“success" )+ <强>“ <强> \“ <强>}“,
,,,,,,,其他}<强> {
,,,,,,,,,,,json=<强>“{ <强> \“ <强>提示 <强> \“ <强>: <强> \“ <强>“ + rb.getString(<强>“delete" )+ rb.getString(<强>“failure" )+ <强>“ <强> \“ <强>}“,
,,,,,,,}

,,,,,,,都会(json);
,,,}

}

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

deleteAunt方法位于

/WebRoot/web - inf/lib/car-weishang-1.0.jar !/com/weishang/my/service/ShopService。类

 <代码> <强>  <强>  <强>  <强>  <强>  <强>  <强>  <强>  <强>   

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

<强>修复建议

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

感谢各位的阅读,以上就是“Java代码审计后台注入漏洞举例分析”的内容了,经过本文的学习后,相信大家对Java代码审计后台注入漏洞举例分析这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是,小编将为大家推送更多相关知识点的文章,欢迎关注!

Java代码审计后台注入漏洞举例分析