這篇文章主要講解了“Java代碼審計后臺注入漏洞舉例分析”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“Java代碼審計后臺注入漏洞舉例分析”吧!
目前成都創新互聯已為上千余家的企業提供了網站建設、域名、網絡空間、網站托管、服務器租用、企業網站設計、潞州網站維護等服務,公司將堅持客戶導向、應用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協力一起成長,共同發展。
1、下載代碼文件,可以本機調試或上傳到自己服務器運行。
2、安裝運行程序:
(1)將解壓文件夾中的opencarrun安裝包復制到tomcat-->webapps--> 下;
(2)將sql導入MySQL;
(3)啟動tomcat;
(4)啟動完畢后,前臺訪問地址:http://localhost:8080/opencarrun/
3、開發包安裝
打開MyEclipse-->File-->Import-->選擇Existing Porjects into Workspace-->Next-->Select root directory 選擇剛才解壓的開發包文件中的opencar-->Finish
漏洞位置:
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.class
publicString 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語句中,未做編譯,未做任何過濾,從而造成注入漏洞,
做全局過濾,或使用參數綁定
感謝各位的閱讀,以上就是“Java代碼審計后臺注入漏洞舉例分析”的內容了,經過本文的學習后,相信大家對Java代碼審計后臺注入漏洞舉例分析這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是創新互聯,小編將為大家推送更多相關知識點的文章,歡迎關注!
網站欄目:Java代碼審計后臺注入漏洞舉例分析
當前網址:http://newbst.com/article16/jhdhdg.html
成都網站建設公司_創新互聯,為您提供網站收錄、網站排名、全網營銷推廣、關鍵詞優化、網站設計公司、響應式網站
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯