Alerta de Spoiler: El reto está en activo a fecha de publicación.
Spoiler alert: The challenge is still alive.
Este tipo de retos son de lo más variopinto pero una de las primeras cosas que se suele hacer es ver el código fuente y fijarse en los enlaces para hacernos una idea del tipo de vulnerabilidades a explotar. Empezamos por explorar el código fuente.
<html>
<head>
<link href="../../assets/css/bootstrap.min.css" rel="stylesheet" type="text/css">
<script src="../../assets/js/jquery.min.js" type="text/javascript"></script>
<meta charset="UTF-8">
<style>
body{
background-color: #111;
}
.main{
background-color: #fff;
}
</style>
</head>
<body>
<div class="container main">
<div class="jumbotron">
<div class="container">
<h1>ジェフのショップ</h1>
<p>ジェフのショップへようこそ、私たちは...私たちは、新しいセキュリティシステムを幸せ持っています <img height="100" width="100" src="source/cat.gif"></p>
<p><a class="btn btn-primary btn-lg" href="#" role="button">もっと詳しく知る »</a></p>
</div>
</div>
<div class="row">
<!-- Example row of columns -->
<div class="row text-center">
<div class="col-md-4">
<h2>車</h2>
<p class="text-center" style="margin: 20px;">我々 50,000円の価格で車を販売しています. </p>
<p><a class="btn btn-danger " href="#" role="button">今すぐ購入<span class="glyphicon glyphicon-shopping-cart"></span></a></p>
</div>
<div class="col-md-4">
<h2>剣</h2>
<p class="text-justify" style="margin: 20px;">我々は、 25円の価格のために地球全体の最も鋭い剣を販売しています </p>
<p><a class="btn btn-danger " href="#" role="button">今すぐ購入<span class="glyphicon glyphicon-shopping-cart"></span></a></p>
</div>
<div class="col-md-4">
<h2>赤ジェフの毒</h2>
<p class="text-justify" style="margin: 20px;">我々は毒、世界に存在するほとんどの不治の毒を販売しています。プライスレス90000.</p>
<p><a class="btn btn-danger " href="#" role="button">今すぐ購入<span class="glyphicon glyphicon-shopping-cart"></span></a></p>
</div>
</div>
<hr>
</div>
<div class="row">
<!-- Example row of columns -->
<div class="row text-center">
<div class="col-md-4">
<h2>魔法の脳</h2>
<p class="text-justify" style="margin: 20px;">彼らは私たちの脳販売しているいくつかの場面で非常に便利です。その価格は約10円です.</p>
<p><a class="btn btn-danger " href="#" role="button">今すぐ購入<span class="glyphicon glyphicon-shopping-cart"></span></a></p>
</div>
<div class="col-md-4">
<h2>侵入テスト</h2>
<p class="text-justify" style="margin: 20px;">私たちはあなたのウェブページやサーバーで完全なセキュリティを提供します。これはジェフの店の最高の製品です。</p>
<p><a class="btn btn-danger " href="#" role="button">今すぐ購入<span class="glyphicon glyphicon-shopping-cart"></span></a></p>
</div>
</div>
<hr>
</div>
<footer>
<p>© ジェフは2015フンメルス</p>
</footer>
</div>
</body>
</html>
A simple vista no hay nada sospechoso pero me llama la atención el enlace de la imagen del gatito «source/cat.gif«. Si fisgamos dentro de la carpeta «source» podemos ver que nos muestra el contenido de la carpeta como se puede apreciar en la imagen a continuación.
La carpeta «app» suena interesante. Hacemos clic y vemos lo siguiente.
Notice: Undefined index: commit in C:/xampp/htdocs/challenge-land/Realistic/shop/source/app/index.php on line 2
Vemos que el error mostrado muestra más información de la debida y la aprovecharemos en beneficio propio. Aquí la clave está en el fichero index.php y en el parámetro commit. Haremos una prueba para ver que vamos por el buen camino.
http://challengeland.co/Realistic/e4633b53f9/source/app/index.php?commit
y recibimos el error «The commit number not found.»
Probamos entonces añadiendo números al parámetro commit y nos fijamos en las respuestas.
http://challengeland.co/Realistic/e4633b53f9/source/app/index.php?commit=1 すべて更新 http://challengeland.co/Realistic/e4633b53f9/source/app/index.php?commit=2 Jeff@shop.com 2013年5月5日 - >ちょっと私たちは.htpasswdの使用する必要がジェームズと.htaccess保護...本当に安全です。すべてのファイルを更新します http://challengeland.co/Realistic/e4633b53f9/source/app/index.php?commit=3 すべて更新 http://challengeland.co/Realistic/e4633b53f9/source/app/index.php?commit=4 すべて更新 http://challengeland.co/Realistic/e4633b53f9/source/app/index.php?commit=5 すべて更新 http://challengeland.co/Realistic/e4633b53f9/source/app/index.php?commit=6 James@shop.com 2013年5月7日に - >ジェフ、大丈夫、私はそれに仕事に行きます。すべてのファイルを更新し、覚えています - jeffshop:adm1n$2015*+ http://challengeland.co/Realistic/e4633b53f9/source/app/index.php?commit=7 すべて更新 http://challengeland.co/Realistic/e4633b53f9/source/app/index.php?commit=8 jeff@shop.com 2013年5月9日 - >ジェームズ、良い仕事...新しいユーザーとパスがあります jeffcrazyshop:h4rDtoF1nD
Hay varias respuestas sugerentes pero quizá la más relevante es la 8. Ahora bien, solo falta encontrar donde introducir el usuario y la clave.
Si volvemos a la página principal vemos en el enlace algo interesante, me refiero a index.php?page=index. Tras probar varias cosas la que funciona es la típica, admin.
http://challengeland.co/Realistic/e4633b53f9/index.php?page=admin
Al entrar vemos que nos redirige al index de nuevo tras pocos segundos. Aquí hay dos opciones, desactivar javascript para evitar la redirección o entrar directamente a la página admin.php. Optamos por el camino fácil entrando directamente en admin.php:
http://challengeland.co/Realistic/e4633b53f9/admin.php
Introduciendo los datos obtenidos anteriormente nos muestra la querida flag.


