java代码审计ssrf危险函数_某租车系统Java代码审计之后台注入漏洞分析
CMS簡介
系統(tǒng)基于租車業(yè)務(wù)場景而搭建的O2O服務(wù)平臺,可為用戶提供商務(wù)租車、接送機(jī)、旅游租車、企業(yè)租車、自駕租車、婚慶用車等自助租車服務(wù)。
系統(tǒng)包含車輛庫管理、門店管理、員工管理、司機(jī)管理、訂單管理、活動管理、評價管理、財務(wù)管理、統(tǒng)計等。
部署簡介
1、下載代碼文件,可以本機(jī)調(diào)試或上傳到自己服務(wù)器運(yùn)行。
2、安裝運(yùn)行程序:(1)將解壓文件夾中的opencarrun安裝包復(fù)制到tomcat-->webapps--> 下;
(2)將sql導(dǎo)入mysql;
(3)啟動tomcat;
3、開發(fā)包安裝
打開MyEclipse-->File-->Import-->選擇Existing Porjects into Workspace-->Next-->Select root directory 選擇剛才解壓的開發(fā)包文件中的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")?獲取獲取用戶值,賦值給字符串?dāng)?shù)組變量?aunt_id,?aunt_id經(jīng)過處理交給ids變量,而ids變量進(jìn)入deleteAunt方法,這里通過flag變量判斷執(zhí)行是否成功,這樣只可能存在盲注了,跟進(jìn)去:
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";
}
從這個方法看是一個執(zhí)行刪除操作,變量ids, 也就是我們問題參數(shù)直接被拼接到sql語句中,未做編譯,未做任何過濾,從而造成注入漏洞,
修復(fù)建議
做全局過濾,或使用參數(shù)綁定
*本文作者:qq1654985095,轉(zhuǎn)載請注明來自FreeBuf.COM
總結(jié)
以上是生活随笔為你收集整理的java代码审计ssrf危险函数_某租车系统Java代码审计之后台注入漏洞分析的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: esim卡怎么激活 esim卡怎么办理
- 下一篇: 目前的计算机系统属于第三代电子计算机,计