一,com.meituan.android.base.hybrid.HybridWebViewActivity对外导出:
导出MeituanHotelWebviewBridge这个js接口:
进入super.onCreate查看之前的操作:
获取数据并构造相应的url进行加载,进入buildQueryUrl函数查看细节:
private String buildQueryUrl(Uri arg4) {
String v0_1;
if(arg4 == null || (TextUtils.isEmpty(arg4.getQueryParameter("url")))) {
v0_1 = "";
}
else {
Uri$Builder v0 = Uri.parse(arg4.getQueryParameter("url")).buildUpon();
if(!TextUtils.isEmpty(arg4.getQueryParameter("ieic"))) {
v0.appendQueryParameter("ieic", arg4.getQueryParameter("ieic"));
}
if(!TextUtils.isEmpty(arg4.getQueryParameter("ct_poi"))) {
v0.appendQueryParameter("ct_poi", arg4.getQueryParameter("ct_poi"));
}
if(!TextUtils.isEmpty(arg4.getQueryParameter("msid"))) {
v0.appendQueryParameter("msid", arg4.getQueryParameter("msid"));
}
v0_1 = v0.toString();
}
return v0_1;
}
获取url参数,并再根据url中的参数构造url,因此我们构造下面的html即可进行远程代码执行漏洞攻击:
由于HybridWebViewActivity在menifest定义了android.intent.category.BROWSABLE属性,因此可以通过浏览器唤起HybridWebViewActivity组件,达到远程命令执行漏洞攻击。
浏览恶意网页即可受到远程命令执行漏洞攻击:
二,com.meituan.android.base.ui.CommonWebViewActivity对外导出:
导出Android这个js接口:
进入onCreate查看之前的操作:
获取数据并构造相应的url进行加载,进入buildQueryUrl函数查看细节:
获取url参数,并再根据url中的参数构造url,因此我们构造下面的html即可进行远程代码执行漏洞攻击:
由于CommonWebViewActivity在menifest定义了android.intent.category.BROWSABLE属性,因此可以通过浏览器唤起CommonWebViewActivity组件,达到远程命令执行漏洞攻击。
浏览恶意网页即可受到远程命令执行漏洞攻击:
1, addJavascriptInterface存在高危远程代码执行漏洞,应尽量避免使用,API 17中用@JavascriptInterface 代替addjavascriptInterface;移除系统webkit内置的危险接口searchBoxJavaBridge_,accessibility,accessibilityTraversal"
2, 不要将com.meituan.android.base.ui.CommonWebViewActivity和com.meituan.android.base.hybrid.HybridWebViewActivity导出