前言:
前段時間在烏雲上爆出寶駕租車存在SQL注入漏洞,早在2014年我就對該系統進行了初步安全審計並提交給了寶駕,想不到2015年都還沒有去修復,安全意識令人感動啊。
0x1【風險:中】無需驗證可以無限制批量上傳圖片,惡意攻擊者可以製作批量上傳工具,從而造成服務器磁盤空間不足導致癱瘓。
詳細流程請看如下源碼
0x2【風險:高】已知註冊用戶的手機號,既可以隨意改動該用戶的密碼,從而進行盜取用戶餘額。
這個邏輯漏洞在最新版本中已經修復。但是邏輯上仍然存在一些問題,問題網頁:
Post:http://api.baojia.com/v2/Api/User/checkmobile?mobile=<註冊用戶的手機號>,通過不斷的調用這個網頁,可以構成短信轟炸,經過測試,每過大概不超過一分鐘會給用戶手機發一條驗證碼短信。短短半個小時不到收到了27條短信
0x3【風險:高】存在用戶隱私泄露。如下圖
問題網頁爲:http://api.baojia.com/v1/Api/Trade3/IdenTity?uid=545012,提供一個有效的uid就能直接用瀏覽器得到用戶的信息,開發確實略顯倉促。
下圖中的uid和ifLogin作爲登錄的重要憑據,採用DES和Base64聯合加密,解密的密鑰能直接在APK中找到
0x4【風險:高】電子鑰匙開鎖流程過於簡單,整個流程可以被僞造,並且存在GSM劫持。
目前這個流程還沒有詳細審計測試,但是很明顯整個開鎖的流程代碼位於包com.baojia.my下面的類,攻擊者通過逆向很容易模擬整個電子鑰匙取車的流程進行攻擊,另外GSM劫持流程可參騰訊tsrc拉客和大夫,傑哥等夥伴們的博文:
http://security.tencent.com/index.php/blog/msg/31
0x5【風險:高】對app重新打包無感知,對代碼注入無感知,無加固,無任何反調試處理,無混淆處理等。
0x6【風險:高】app與服務器端通信協議採用http通信,加密過於簡單,採用DES加密,密鑰能在APK中獲取到,很容易被監聽,即便換成HTTPS協議通信,處理不當也能被劫持,監聽。
0x7【風險:高】服務器對參數過濾不嚴,存在SQL注入漏洞,如下圖,可以看出,數據庫採用MYSQL,版本高於4.0,支持UNION查詢,存在被暴庫的風險
這裏採用注入工具sqlmap來展示漏洞被利用的過程,注入點如下:
下圖曝出mysql的當前用戶和當前數據庫
。
下圖是數據庫baojia中表的名字
下圖是表member中部分字段的內容: