Outils d'utilisateurs

Outils du Site


ctf_thc_toulouse_hacking_convention

Différences

Cette page vous donne les différences entre la révision choisie et la version actuelle de la page.

Lien vers cette vue

ctf_thc_toulouse_hacking_convention [2018/04/09 23:50]
M0N5T3R
ctf_thc_toulouse_hacking_convention [2018/04/10 00:03] (Version actuelle)
M0N5T3R
Ligne 1: Ligne 1:
 +
  
   * web 1 (202pts) : le writeup de BFF ici : https://github.com/Beers4Flags/writeups/tree/master/2018/Thcon/Web/200   * web 1 (202pts) : le writeup de BFF ici : https://github.com/Beers4Flags/writeups/tree/master/2018/Thcon/Web/200
Ligne 23: Ligne 24:
   * le répo pour récupérer les sources   * le répo pour récupérer les sources
   * Config.py   * Config.py
-URL = 'https://vault:8200' 
-CERT = './cert/client.crt' 
-KEY = './cert/client.key' 
-CA = './cert/vault_ca.crt' 
-  *  code_check.py 
-from flask import Flask, request, render_template 
-import hvac 
  
-app = Flask(__name__) +    'https://vault:8200
-app.config.from_object('config') +    CERT './cert/client.crt' 
-vault hvac.Client(url=app.config['URL'], cert=(app.config['CERT'], app.config['KEY']), verify=app.config['CA'])+    KEY = './cert/client.key' 
 +    CA = './cert/vault_ca.crt'
  
 +  *  code_check.py
  
-# @app.route('/') + from flask import Flask, request, render_template 
-def get_index(): + import hvac 
-    return app.send_static_file('index.html')+ 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()
  
- 
-# @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   * 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.   * 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   * 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  +  * Connection au phpMyAdmin et à partir de là on récupère les fichiers sur le serveur via un     
-select LOAD_FILE('/etc/passwd')+    select LOAD_FILE('/etc/passwd') 
   *  /etc/nginx/nginx.conf pour trouver le full path web   *  /etc/nginx/nginx.conf pour trouver le full path web
   * récupération du contenu du dossier cert/ afin de récup la clé, le certificat et l'autorité de certification   * récupération du contenu du dossier cert/ afin de récup la clé, le certificat et l'autorité de certification
ctf_thc_toulouse_hacking_convention.txt · Dernière modification: 2018/04/10 00:03 par M0N5T3R