~ptkrm ❤︎!

| 2 > /dev/null
  1. URL: https://backdoor.sdslabs.co/challenges/MIGHTY-PHP
  2. Ejercicio: Mighty-PHP
  3. Objetivo: Conseguir el flag ubicado en el archivo flag.php
  4. Pistas:

Dentro de las reglas de Backdoor se comenta que no es posible dar las soluciones problemas a los distintos retos de su website, pero si es recomendado dar ciertas pistas para como lograr su solución.

En el problema es posible acceder al código fuente en: http://hack.bckdr.in/MIGHTY-PHP/source.txt

Para la solución hay prestar atención en las siguientes lineas de código:

1
include 'secret.php'; //contains the secretpassword

Como se menciona en el reto, este archivo no esta disponible así que no esta de mas revisar si es cierto o no.

1
2
3
4
if (array_key_exists(userid, $_REQUEST) && array_key_exists(pass, $_REQUEST)){
if (!strspn($_REQUEST['userid'], "123456789")){
if ($_REQUEST['userid'] == $admin_id && $_REQUEST['pass'] == $secretpassword){

El problema del ejercicio se encuentra exactamente aquí, hay que entender como funciona strspn [Pista: revisar por que al verificar no esta el 0 en el String] y como PHP interpreta cuando se utiliza una variable no declarada ($secretpassword).

Lo demás es ensayo y error con curl

1
$ curl "http://hack.bckdr.in/MIGHTY-PHP/" + parámetros

Feliz Caza!