Sploitus

Exploit for PIL

kitploit ┬╖ 2026-08-26

Exploit Code

MARKDOWN33 lines
## https://sploitus.com/exploit?id=KITPLOIT:TOOLS-GITHUB-HKCFS-PIL-CVE-2017-8291
# Python PIL рджреВрд░рд╕реНрде рдХрдорд╛рдВрдб рдирд┐рд╖реНрдкрд╛рджрди рднреЗрджреНрдпрддрд╛ (GhostButt)

Python рдореЗрдВ рдЫрд╡рд┐рдпреЛрдВ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП PIL (Pillow) рдореЙрдбреНрдпреВрд▓ GhostButt рднреЗрджреНрдпрддрд╛ (CVE-2017-8291) рд╕реЗ рдкреНрд░рднрд╛рд╡рд┐рдд рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдЖрдВрддрд░рд┐рдХ рд░реВрдк рд╕реЗ GhostScript рдХреЛ рдХреЙрд▓ рдХрд░рддрд╛ рд╣реИ, рдЬрд┐рд╕рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рджреВрд░рд╕реНрде рдХрдорд╛рдВрдб рдирд┐рд╖реНрдкрд╛рджрди рднреЗрджреНрдпрддрд╛ рдЙрддреНрдкрдиреНрди рд╣реЛрддреА рд╣реИред

## рднреЗрджреНрдпрддрд╛ рд╕рд╛рд░рд╛рдВрд╢

PIL рдЖрдВрддрд░рд┐рдХ рд░реВрдк рд╕реЗ рдЫрд╡рд┐ рд╣реЗрдбрд░ (рдореИрдЬрд┐рдХ рдмрд╛рдЗрдЯреНрд╕) рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдЫрд╡рд┐ рдкреНрд░рдХрд╛рд░ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддрд╛ рд╣реИред рдпрджрд┐ рдпрд╣ рдПрдХ EPS рдлрд╝рд╛рдЗрд▓ (рд╣реЗрдбрд░ `%!PS` рд╣реИ) рдкрд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдЗрд╕реЗ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд▓рд┐рдП `PIL/EpsImagePlugin.py` рдХреЛ рднреЗрдЬрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдЗрд╕ рдореЙрдбреНрдпреВрд▓ рдореЗрдВ, PIL рдЫрд╡рд┐ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд┐рд╕реНрдЯрдо рдХреЗ gs рдХрдорд╛рдВрдб рдХреЛ рдХреЙрд▓ рдХрд░рддрд╛ рд╣реИ, рдЬреЛ рдХрд┐ GhostScript рд╣реИ:

root@kitploit:~
    
    
    command = ["gs",
                "-q", # quiet mode
                "-g%dx%d" % size, # set output geometry (pixels)
                "-r%fx%f" % res, # set input DPI (dots per inch)
                "-dBATCH", # exit after processing
                "-dNOPAUSE", # don't pause between pages,
                "-dSAFER", # safe mode
                "-sDEVICE=ppmraw", # ppm driver
                "-sOutputFile=%s" % outfile, # output file
                "-c", "%d %d translate" % (-bbox[0], -bbox[1]),
                                                # adjust for image origin
                "-f", infile, # input file
                ]
    
    # Omit the code to determine whether GhostScript is installed
    try:
        with open(os.devnull, 'w+b') as devnull:
            subprocess.check_call(command, stdin=devnull, stdout=devnull)
        im = Image.open(outfile)