从代码层理解android的重定向漏洞

VSole2022-07-22 15:36:43

前言Android App中页面跳转主要通过Intent的显式,隐式传递来拉起其他的Activity组件,或是通过在AndroidManifest.xml中配置的android:scheme进行DeepLinks拉起app或跳转页面。相应的,跳转的时候传入参数未校验,就可能存在风险。   

Deeplinks格式一般Deeplinks格式如下: 

Scheme://host:port/path?query=xxxxxxx

被拉起的的App可以在AndroidManifest.xml中配置,向操作系统提前注册一个URL,开头的Scheme 用于从浏览器或其他App中拉起本App。  

解析Scheme,判断Scheme属于哪个App,唤起App,传递参数给App由操作系统去完成。  

Demo写一个简单的demo。  

在AndroidManifest.xml中注册并配置两个活动。其中Main2Activity中定义了对应的url。  


编译后安装。  

可以通过如下adb命令去拉起App。

adb shell am start -a "android.intent.action.VIEW" -d "xxapp://webview"

或者通过浏览器去拉起。 

<a href="xxapp://webview">run deme</a>

可以看到手机中App已经启动。 

WebView中URL任意跳转还是用上面额例子,这一次我们在Main2Activity中接收外部传入参数,进行加载。  

默认返回是baidu。  

按上面的adb命令执行,可以看到直接跳到baidu。    

这里我们并未对传入的参数url进行校验,替换成其他的地址,也是可以加载的。 

<a href="xxapp://webview?url=https://www.bilibili.com">run deme</a>

稍稍深入在Web中,任意URL跳转漏洞由于功能限制,一般都是低危。但在移动应用中,往往会在WebView通过js去调用java接口使功能更加丰富。  

通过注解@JavascriptInterface,表示方法可以被js调用。  

这里我写了一个Toast,执行会返回对应的信息。  

增加两行代码,开启js支持,绑定对象。 

webView.getSettings().setJavaScriptEnabled(true);webView.addJavascriptInterface(Main2Activity.this, "main");

测试html: 

<html><body>   <button type="button" onClick="window.main.jsinterface('hhhhhhhhhh123')" >invoke</button></body></html>

加载后,点击按钮会出现弹窗提示,表示调用成功。

前面讲到过App中页面切换主要是通过Intent的传递,Webview中也是可以对Intent协议进行解析的,这就可能导致通过一条链,导致通过App拉起其他组件或者App,导致其他的问题。  

因为这里我没有去实现Webview支持intent解析,这里就没有演示了。 

总结简单学习了一下Android中存在的URL跳转问题及其简单利用,剩下就是尽可能去收集app,逆向收集对应的Deeplinks,分析业务,扩大危害。 

软件重定向
本作品采用《CC 协议》,转载必须注明作者和本文链接
Sysdig公司的研究人员深入研究了这个问题,试图评估这个问题的严重性,报告发现的镜像使用了某种恶意代码或机制。遗憾的是,Docker Hub公共库的规模不允许其操作人员每天仔细检查所有上传的内容,因此许多恶意镜像并没有被报告。Sysdig还注意到,大多数威胁分子只上传几个恶意镜像,所以即使删除了有风险的镜像、封杀了上传者,也不会对这个平台的整体威胁状况有显著影响。
安全公司 Bitdefender 的研究人员发现,一种流量重定向 Rootkit 恶意程序以某种方式通过了驱动程序认证程序, 获得了微软签发的数字签名证书。
网络安全服务商Bitdefender公司日前发现了一个隐藏的恶意软件,该软件在全球各地的移动设备上未被发现已经超过六个月,该软件旨在向Android设备推送广告软件,以提高营收。到目前为止,该公司已经发现了6万多个感染了这种广告软件的安卓应用程序,并怀疑感染了更多的应用程序。
研究人员发现了在Popcash恶意广告活动中利用RIG漏洞利用工具包传播的勒索软件GetCrypt。恶意广告将受害者重定向到托管漏洞利用工具包的页面时,恶意脚本会利用计算机上的漏洞下载并安装GetCrypt。当漏洞利用工具包执行勒索软件时,GetCrypt检查Windows语言是否设置为乌克兰语、白俄罗斯语、俄语或哈萨克语。
Clement Lecigne在报告中指出,这些供应商通过扩散具有攻击性的工具,来武装那些无法在内部开发这些能力的政府及组织。点击后,这些URL将收件人重定向到承载安卓或iOS漏洞的网页,然后他们又被重定向到合法的新闻或货运追踪网站。目前,这两个恶意活动的规模和目标还不清楚。在拜登签署“限制使用商业间谍软件”的行政命令几天后,这些消息就被披露出来。
Endor Labs报告称,如果软件中的已知漏洞被攻击者利用,可能会危及相应系统或其数据的机密性、完整性或可用性。为避免已知漏洞的风险,报告建议企业定期扫描开源软件,对漏洞进行优先级排序并优化资源分配。三大运营风险除了开源软件本身包含的重大安全风险外,报告还分析了开源软件风险可能带来的主要运营风险。开源软件的第三大运营风险是未跟踪的依赖项,即开发人员完全未意识到的开源组件依赖项。
2022年上半年,全球共发生了2.361亿起勒索软件攻击事件。问题是,勒索软件攻击中使用了各种感染载体。未能应用补丁的组织沦为勒索软件攻击受害者的风险会大幅增加。数据显示,补丁周期等级为D或F的组织遭受勒索软件事件的可能性是A级组织的7倍以上。此外,组织也可以部署专业的防病毒软件来扫描即时消息中的可疑链接和附件,有效防止即时消息勒索软件攻击。
软件漏洞分析简述
2022-07-18 07:08:06
然后电脑坏了,借了一台win11的,凑合着用吧。第一处我们直接看一下他写的waf. 逻辑比较简单,利用正则,所有通过 GET 传参得到的参数经过verify_str函数调用inject_check_sql函数进行参数检查过滤,如果匹配黑名单,就退出。但是又有test_input函数进行限制。可以看到$web_urls会被放入数据库语句执行,由于$web_urls获取没有经过过滤函数,所以可以
VSole
网络安全专家