启动Android浏览器';使用意图URL的私有活动

启动Android浏览器';使用意图URL的私有活动,android,android-intent,android-activity,intentfilter,android-browser,Android,Android Intent,Android Activity,Intentfilter,Android Browser,首先,我必须承认,我是安卓系统的新手,但我们知道,在安卓系统中,我们不能通过另一个应用程序启动应用程序的私人活动。除非它们在intent过滤器中设置为android:exported=true,或者它们用于隐式调用。 但是,我们应该能够从使用应用程序开始私人活动。当涉及到浏览器(特别是android)时,我们可以使用Intent URL启动浏览器的私人活动 我在Opera Mobile中发现了一些活动,问题是我无法使用Intent URL运行它们,我不知道我在这方面做错了什么 例如,opera中

首先,我必须承认,我是安卓系统的新手,但我们知道,在安卓系统中,我们不能通过另一个应用程序启动应用程序的私人活动。除非它们在
intent过滤器中设置为android:exported=true,或者它们用于
隐式调用。
但是,我们应该能够从使用应用程序开始私人活动。当涉及到浏览器(特别是android)时,我们可以使用
Intent URL
启动浏览器的私人活动

我在Opera Mobile中发现了一些活动,问题是我无法使用Intent URL运行它们,我不知道我在这方面做错了什么

例如,opera中有一个名为
OperamInactivity
(或另一个名为
OperaStartActivity
)的活动,我尝试这样启动它们:

intent:#Intent;component=com.opera.browser/com.opera.android.OperaMainActivity;end

但这些都不会启动名为的活动

尽管我仍然可以启动
AdMarvelActivity
,它也是一个私有的:

"intent:#Intent;S.url=https://google.com;component=com.opera.browser/com.admarvel.android.ads.AdMarvelActivity;end";
以下是OperaMain活动在
AndroidManifest
中的定义方式:

<activity ns0:label="@string/app_name_title" ns0:name="com.opera.android.OperaMainActivity" ns0:launchMode="singleTask" ns0:configChanges="keyboard|keyboardHidden|orientation|screenSize" ns0:windowSoftInputMode="10" />
我看不出这两者之间有什么重大区别。我做错了什么

早就为人所知,大多数流行浏览器(如chrome、opera)都修复了该漏洞。但是,其他android浏览器仍然存在此漏洞

我在Opera Mobile(v37)的当前版本上尝试了这种攻击,幸好它不起作用。您必须在旧的apk上运行它


如果您对在其他浏览器上测试这种攻击感兴趣,您可以按照以下内容进行讨论:;这说明了对Dolphin Browser和Mercury Browser的攻击。

您在找这个吗?不它是关于启动可以从其他应用程序调用的浏览器公共活动。我在寻找从浏览器本身调用私人活动的明确性,当然是使用意图URL模式谢谢你的回答,我知道这次攻击。但我的问题有点不同。我在问我是否可以开始私人活动,那么为什么我不能开始问题中提供的活动。我想知道如何操作它们。我的意思是,如果我可以开始AdMarvelActivity,那么为什么我不能开始其他人?!我写错了吗?!我同意,如果
AdMarvelActivity
可以运行,那么其他人也应该可以运行。这可能是因为您缺少了一些活动启动所必需的额外目的。您可以通过adb logcat | fgrep-i intent
截取或记录所有意图,并检查问题是否与激发或接收的意图有关。你在尝试什么版本的Opera Mobile。请共享您尝试过的apk和Intent url。adb命令非常适合监视。我发现问题在于某些版本的浏览器(特别是新版本的浏览器)过滤了intent url中的组件。如果代码中有通知,它们会在parseURI之后立即设置intent.setComponent(null)。因此,我们不能使用组件调用私有活动。有没有其他方法来启动它们?没有,我不认为没有组件启动私人活动是可能的<代码>主机/URI路径#意图;package=[string];action=[string];类别=[字符串];组件=[string];scheme=[string];结束<代码>程序包
操作
类别
不可利用,除非目标代码明确错误地在某些
操作
上启动了私人活动,或者在某些活动中添加了错误的
类别
。“您所有的浏览器都属于我们”讨论了如何利用
方案
,但这并不是为了开始私人活动。非常感谢,然后我必须搜索发生parseURL的漏洞,看看他们是否犯了任何错误。
<activity ns0:label="@string/app_name_title" ns0:name="com.opera.android.OperaMainActivity" ns0:launchMode="singleTask" ns0:configChanges="keyboard|keyboardHidden|orientation|screenSize" ns0:windowSoftInputMode="10" />
<activity ns0:theme="@*ns0:style/Theme.NoTitleBar.Fullscreen" ns0:name="com.admarvel.android.ads.AdMarvelActivity" ns0:process=":helper" ns0:configChanges="keyboard|keyboardHidden|orientation" />