android 组件暴露风险,Activity组件暴露导致本地拒绝服务
這幾天團(tuán)隊(duì)打算一起學(xué)習(xí)Android App漏洞挖掘方面的知識(shí),于是乎拿了一個(gè)app當(dāng)測(cè)試?yán)?#xff0c;爭(zhēng)取在上面找到漏洞。在學(xué)習(xí)過程中發(fā)現(xiàn)Android四大組件的安全性還是占有較大的比重,另外比較關(guān)心的是數(shù)據(jù)的安全性。數(shù)據(jù)泄漏、明文存儲(chǔ)等和數(shù)據(jù)相關(guān)都是比較重要的。但是今天找到的一個(gè)漏洞是關(guān)于Activity組件的,本地拒絕服務(wù)漏洞。
同時(shí)學(xué)習(xí)了drozer的使用方法,利用drozer幫忙找漏洞。
下面總結(jié)一些常用的drozer命令:
run app.package.info -f xxx
xxx是包名的一部分,運(yùn)行這條命令之后會(huì)顯示完整的包名
run app.package.info -a
運(yùn)行這條命令會(huì)打印出包相關(guān)的信息,包括版本、路徑、權(quán)限、uid、gid等
run app.package.attacksurface
運(yùn)行這條命令之后會(huì)打印出這個(gè)應(yīng)用四大組件的攻擊面,Activity, Service, Content Provider, Broadcast是否有暴露的風(fēng)險(xiǎn)
run app.activity.info -a
運(yùn)行這條命令會(huì)打印出exported的activity,并且顯示是否需要相應(yīng)的權(quán)限
run app.activity.start --component
如果activity是exported并且不需要權(quán)限,那么運(yùn)行這條命令就可以啟動(dòng)相應(yīng)的activity了
(目前只測(cè)試了activity組件,所以關(guān)于其他組件的命令暫時(shí)還沒有使用)
首先說明一下這個(gè)本地拒絕服務(wù)漏洞的大概原理:
通過drozer可以找到exported的activity,而許多activity的調(diào)用是不需要權(quán)限的,即permission=null。意味著,其他應(yīng)用無須權(quán)限就可以調(diào)用這些activity。同時(shí),如果activity的調(diào)用是需要參數(shù)的,那么在調(diào)用時(shí)不帶上參數(shù)就會(huì)因?yàn)檩斎氘惓?dǎo)致應(yīng)用崩潰了,這樣就造成了本地拒絕服務(wù)。
漏洞修補(bǔ)的方法也很簡(jiǎn)單,可以從以下三個(gè)方面下手:
1.不需要被外部調(diào)用的activity設(shè)置android:exported="false";
2.若需要外部調(diào)用,需自定義signature或者signatureOrSystem級(jí)別的權(quán)限;
3.注冊(cè)的組件請(qǐng)嚴(yán)格校驗(yàn)輸入?yún)?shù),注意空值判定和類型轉(zhuǎn)換判斷
簡(jiǎn)單的Poc:
Intent intent = new Intent();
intent.setComponent(new ComponentName(, ));
intent.putExtra("", "");
startActivity(intent);
原文:http://www.cnblogs.com/sevenr/p/4655769.html
總結(jié)
以上是生活随笔為你收集整理的android 组件暴露风险,Activity组件暴露导致本地拒绝服务的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C#笔记-PictureBox.Size
- 下一篇: awx入门操作说明