安卓應用程序滲透測試
廢話不多說,直奔主題。
攻擊廣播接收器(broadcst receiver)
廣播接收器是一個安卓組件,通過該組件,你可以註冊系統事件或應用程序事件。關於廣播接收器的更多內容,你可以看看安卓應用程序滲透測試五(http://www.4hou.com/mobile/13765.html)。
我們先來檢查一下安卓manifest文件
廣播接收器通常都是以下列格式註冊的,在安卓manifest文件中,我們可以看到broadcast的導出值為真,即 exported value=true。
因為接收器可以被導出,所以這段代碼並不安全,如圖:
傳遞給廣播接收器的參數,在下圖中我們可以很清楚的看到:
我們的目的是發送欺騙性廣播intents,看看應用程序是不是會接受。如果會接受的話,我們將利用這個app使用虛假廣播向任意手機號發送SMS消息。
攻擊脆弱的廣播接收器
現在我們就嘗試著向上面的接收器發送欺騙性的廣播。
使用安卓調試橋(adb)中的活動管理器(am)工具。
使用adb
1.進入設備的adb shell,並輸入以下命令來發送欺騙性廣播。
2.返回到「平台工具」(platform-tools)文件夾,然後輸入以下命令
./adb shell
3.在shell中輸入下列命令:
4.回到模擬器,查看「messages」。上面輸入的命令自動調用了前面提到的廣播接收器並發送了一條信息,信息內容是密碼,如圖:
現在,一個廣播事件已經在後台發送。由於應用程序並不檢查輸入源,所以在無需用戶操作的情況下,就能發送一條SMS消息到模擬器5554。
接下來看看如何保護應用程序的安全。
保護應用程序的措施
設置Android:exported屬性值為false。
在應用程序的androidmanifest.xml文件中,我們應該將以下屬性添加到要保護的接收器中。
Limiting access to custom permissions
意思是限制對自定義許可權的訪問。
我們也可以為每個接收器定義自定義許可權,並強制執行基於許可權的限制。如果開發者想要限制哪些應用程序才有許可權來訪問他的app組件,這個方法會非常有效。
我們也需要在Androidmanifest.xml文件中設置「android.permission.RECEIVE_SMS」許可權,因為如果不設置的話,那麼任何其他app都可以使用「android.provider.Telephony.SMS_RECEIVED「這個action來監聽Receive SMS event(接收SMS事件)。
![](https://pic.pimg.tw/zzuyanan/1488615166-1259157397.png)
![](https://pic.pimg.tw/zzuyanan/1482887990-2595557020.jpg)
TAG:嘶吼RoarTalk |