Goal Reached Thanks to every supporter — we hit 100%!

Goal: 1000 CNY · Raised: 1000 CNY

100.0%

CVE-2019-17240 PoC — Bludit 安全漏洞

Source
Associated Vulnerability
Title:Bludit 安全漏洞 (CVE-2019-17240)
Description:Bludit是一套开源的轻量级博客内容管理系统(CMS)。 Bludit 3.9.2版本中的bl-kernel/security.class.php文件存在安全漏洞。攻击者通过使用多个伪造的X-Forwarded-For或Client-IP HTTP标头利用该漏洞绕过保护机制。
Description
This is the exploit of CVE-2019-17240. 
Readme
# [CVE-2019-17240](https://www.cvedetails.com/cve/CVE-2019-17240/) Exploit
**Versions prior to and including 3.9.2 of the Bludit CMS are vulnerable to a bypass of the anti-brute force mechanism that is in place to block users that have attempted to incorrectly login 10 times or more.**

The vulnerability was discovered by [Rastating](https://rastating.github.io/bludit-brute-force-mitigation-bypass/ "rastating.github.io").   

Submitting a login request with an X-Forwarded-For header value of a changing string(spoofed string) was processed successfully, and the failed login attempt was logged against the spoofed string.

The above script uses that vulnerablity to by bypass anit-brute mechanism.

There are csrf tokens in the body of the login page so before every time it does a post request with credentials it needs to fetch the csrf token from the source of last reponse.

One way of doing it is to make a get request, fetch csrf token and make a post request with credentials and fetched token and repeat until you find the password and this is what i saw in most of the scripts.

The other way is to fetch the csrf token from the response of last post request, so only for the first time you need to do a get request.

**The second one is much faster compared to the first one, and a little more efficiency effects a lot when it comes to bruteforce attacks where you need to do many requests.**

**I tried both the ways and was able to test 63 words in 1 minute by the second way and just 19 words by the first way.**

## Usage
    python3 brute.py -u [url] -user [username] -w [pathToWordlist] [-t [threads to use]]
## Example
    python3 brute.py -u https://192.168.10.13/ -user admin -w sysadmin -t 30

# SCREENSHOT

<img src="brute.png" alt="bludit" height="700">
File Snapshot

[4.0K] /data/pocs/787ba81e178fa8373c29aad2376812d3ffa361d5 ├── [ 67K] brute.png ├── [2.3K] brute.py └── [1.7K] README.md 0 directories, 3 files
Shenlong Bot has cached this for you
Remarks
    1. It is advised to access via the original source first.
    2. If the original source is unavailable, please email f.jinxu#gmail.com for a local snapshot (replace # with @).
    3. Shenlong has snapshotted the POC code for you. To support long-term maintenance, please consider donating. Thank you for your support.