Ceci est une ancienne révision du document !
On a utilisé la même méthode en reversant le custom sha1 du script.
Honnêtement, on avait tout sur ce chall, sauf que le répo git récupéré via gitTools était corrompu. Du coup pas moyen de pouvoir récupérer les fichiers. On a passé du temps a essayer de réparer le répo sans succès. Alors qu'au final on a apprit après que cela aurait dut fonctionner nickel. Bref leçon à retenir, des fois aller poser une question aux orgas, ça fait gagner du temps et des points :/
URL = 'https://vault:8200' CERT = './cert/client.crt' KEY = './cert/client.key' CA = './cert/vault_ca.crt'
from flask import Flask, request, render_template import hvac
app = Flask(name) app.config.from_object('config') vault = hvac.Client(url=app.config['URL'], cert=(app.config['CERT'], app.config['KEY']), verify=app.config['CA'])
# @app.route('/') def get_index():
return app.send_static_file('index.html')
# @app.route('/code_check', methods=['POST']) def check_code():
user_code = "code" #request.form.get('code') vault.auth_tls() value = vault.read('secret/auth')
if value is not None and user_code is not None: if str(value['data']['code']) == str(user_code): value = vault.read('secret/vulnerability') if value is not None: return render_template('success.html', content=value['data']['vuln']), 200, {'ContentType': 'text/html'} return app.send_static_file('error.html'), 401, {'ContentType': 'text/html'}
if name == 'main':
check_code() * Il s'agit donc d'un formulaire d'authentification en python utilisant vault * Les logs du git nous apprennent qu'une ancienne version a existé sous mysql. Et au passage on récupère les credentials mysql dans les sources. * Test du 3306, puis Nmap pour trouver un mysql open sur un autre port, et au final dirb nous a trouvé un folder phpMyAdmin * Connection au phpMyAdmin et à partir de là on récupère les fichiers sur le serveur via un
select LOAD_FILE('/etc/passwd')