Coder Social home page Coder Social logo

cve-2023-44487's Introduction

CVE-2023-44487

Basic vulnerability scanning to see if web servers may be vulnerable to CVE-2023-44487

This tool checks to see if a website is vulnerable to CVE-2023-44487 completely non-invasively.

  1. The tool checks if a web server accepts HTTP/2 requests without downgrading them
  2. If the web server accepts and does not downgrade HTTP/2 requests the tool attempts to open a connection stream and subsequently reset it
  3. If the web server accepts the creation and resetting of a connection stream then the server is definitely vulnerable, if it only accepts HTTP/2 requests but the stream connection fails it may be vulnerable if the server-side capabilities are enabled.

To run,

$ python3 -m pip install -r requirements.txt

$ python3 cve202344487.py -i input_urls.txt -o output_results.csv

You can also specify an HTTP proxy to proxy all the requests through with the --proxy flag

$ python3 cve202344487.py -i input_urls.txt -o output_results.csv --proxy http://proxysite.com:1234

The script outputs a CSV file with the following columns

  • Timestamp: a timestamp of the request
  • Source Internal IP: The internal IP address of the host sending the HTTP requests
  • Source External IP: The external IP address of the host sending the HTTP requests
  • URL: The URL being scanned
  • Vulnerability Status: "VULNERABLE"/"LIKELY"/"POSSIBLE"/"SAFE"/"ERROR"
  • Error/Downgrade Version: The error or the version the HTTP server downgrades the request to

Note: "Vulnerable" in this context means that it is confirmed that an attacker can reset the a stream connection without issue, it does not take into account implementation-specific or volume-based detections

Dockerized

Build

$ docker build -t py-cve-2023-44487 .

Run:

$ docker run --rm -v /path/to/urls:/shared py-cve-2023-44487 -i /shared/input_urls.txt -o /shared/output_results.csv

cve-2023-44487's People

Contributors

bcdannyboy avatar halcyondream avatar frakman1 avatar eltociear avatar

Stargazers

 avatar  avatar Alena avatar Nick avatar  avatar  avatar  avatar  avatar Michael Cade avatar  avatar Rafa Rios avatar greekbust avatar MK avatar  avatar Minya avatar VM avatar  avatar Manoel Carvalho avatar Rafael  avatar FlexAirTor avatar black 01 avatar Aaditya Purani avatar Cody "K0mraid" Stobaugh avatar  avatar Selboo avatar Alex avatar  avatar Sebastian Feustel avatar R. Kürşat Vuruşan avatar Hkervit avatar Ghost cyber  avatar  avatar Diego Aristiguieta avatar Suri avatar  avatar  avatar Tony Harris avatar JunCil avatar Tim Loyer avatar  avatar Isaac avatar Jonty Brook avatar fenggy09 avatar Wlayzz avatar Polina avatar Jck T. avatar  avatar Huy (Valen) Võ avatar Alexandre Lavoie avatar  avatar Jim Cronqvist avatar Justin Caratzas avatar  avatar paranoid soul avatar Manuel Mancera avatar Sanji Winaya Pratama avatar Otto avatar James Howkins avatar  avatar SuperDuper avatar Super Old Man avatar Anatolio ✨ avatar Hamed AT avatar  avatar  avatar newnewcoder avatar allen.hu avatar Gabriel Cholette-Rioux avatar  avatar Quentin Khoo avatar Amim Knabben avatar Nash avatar DMITRY avatar Jiho Lee avatar Deepak Nagarkoti avatar Kannan Jayachandran avatar  avatar John Magdy Lotfy Kamel avatar Alastair W. avatar  avatar Birkan ALHAN avatar intratable avatar Uzuisan avatar Xeldax avatar Jay Lu avatar 爱可可-爱生活 avatar RT avatar Computer button pusher // Pousseur de boutons en informatique  || SIN - SIN HACK - HACK || NO-CODE evangelist || Black coffee like my sense of humor avatar [sCRiPTz-TEAM] avatar  avatar Giddy Naya avatar Do Phuc Hao avatar Данила Корабельников avatar Rozavel avatar jkl avatar  avatar Henry Ge avatar ilyas ahsan avatar  avatar 王下邀月熊 avatar

Watchers

Sebastian avatar  avatar  avatar  avatar  avatar Ashutosh Barot avatar

cve-2023-44487's Issues

Vulnerable

Hello, thank you for this PoC. Can you explain more on the "Vulnerable" determination. My understanding is that resetting the connection and sending another request is perfectly fine to do. The "fix" that seems to be recommended is to limit the number of concurrent connections on the web server as to not overwhelm it. This script does not test the limit of the connections, so not sure how you can say DDOS is 100% possible with just checking the reset and not the number of connections. Thank you!.

I have a question about "server-side capabilities are enabled"

Hello Dear,

In the script instructions you state that "you only accept HTTP/2 requests but the flow connection fails, you may be vulnerable if server-side capabilities are enabled. "

I'd like to know which "server-side capabilities are enabled". ?

Thank you in advance

definition of Possible status

Thanks for creating the script
I have tried to check a Cloudflare URL, but the result is POSSIBLE

Cloudflare should mitigated the attack pathway, not sure anything can the script to adjust the correct status?

image

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.