2016年8月26日 星期五

DIVA Android - 9.Access Control Issues – Part 1

相關文章:

DIVA Android - 1.Insecure Logging
DIVA Android - 2.Hardcoding Issues – Part 1
DIVA Android - 3.Insecure Data Storage – Part 1
DIVA Android - 4.Insecure Data Storage – Part 2
DIVA Android - 5.Insecure Data Storage – Part 3
「9.Access Control Issues – Part 1」對應到的 Activity 是 AccessControl1Activity,看一下 code 長這樣:



首先它建立一個隱式的 Intent,並透過 setAction 定義 Action 的名稱為「jakhar.aseem.diva.action.VIEW_CREDS」,接著看一下 AndroidManifest.xml 中的「jakhar.aseem.diva.action.VIEW_CREDS」,會發現它所對應的 Activity 為「APICredsActivity」,所以可得知當程式 startActivity 時會去呼叫這隻 APICredsActivity。



再來我們嘗試不藉由 DIVA 這隻 App 直接去啟動 APICredsActivity:am start jakhar.aseem.diva/jakhar.aseem.diva.APICredsActivity



執行成功:



弱點在於使用隱式 Intent 這種方式由於未指定 component 的名稱,並且須在AndroidManifest.xml 中,針對需藉此方式存取的那個 component 設定 intent-filter,這會使得該 component 為 exported,如此便可讓其他應用程式使用它。

防範方法:

(1)使用顯式 Intent,確保不會遭其他 App 存取。
(2)不該 exported 的 component 應設為 false。

沒有留言:

張貼留言