merge duvidoso

This commit is contained in:
Filipe 2019-04-07 15:57:50 +01:00
commit 553eac0586
130 changed files with 5580 additions and 3626 deletions

BIN
.DS_Store vendored

Binary file not shown.

View File

@ -102,8 +102,8 @@ android {
applicationId "pt.enei" applicationId "pt.enei"
minSdkVersion rootProject.ext.minSdkVersion minSdkVersion rootProject.ext.minSdkVersion
targetSdkVersion rootProject.ext.targetSdkVersion targetSdkVersion rootProject.ext.targetSdkVersion
versionCode 3 versionCode 4
versionName "3" versionName "4"
ndk { ndk {
abiFilters "armeabi-v7a", "x86" abiFilters "armeabi-v7a", "x86"
} }

View File

@ -15,13 +15,13 @@
<key>CFBundlePackageType</key> <key>CFBundlePackageType</key>
<string>APPL</string> <string>APPL</string>
<key>CFBundleShortVersionString</key> <key>CFBundleShortVersionString</key>
<string>1.1</string> <string>1.2</string>
<key>CFBundleSignature</key> <key>CFBundleSignature</key>
<string>????</string> <string>????</string>
<key>CFBundleVersion</key> <key>CFBundleVersion</key>
<string>12</string> <string>14</string>
<key>LSApplicationCategoryType</key> <key>LSApplicationCategoryType</key>
<string></string> <string>public.app-category.utilities</string>
<key>LSRequiresIPhoneOS</key> <key>LSRequiresIPhoneOS</key>
<true/> <true/>
<key>NSAppTransportSecurity</key> <key>NSAppTransportSecurity</key>
@ -50,7 +50,7 @@
<key>NSLocationWhenInUseUsageDescription</key> <key>NSLocationWhenInUseUsageDescription</key>
<string>Not used, just added this key because i used react-native and needed this keys for approval.</string> <string>Not used, just added this key because i used react-native and needed this keys for approval.</string>
<key>NSMicrophoneUsageDescription</key> <key>NSMicrophoneUsageDescription</key>
<string>Not used, just added this key because i used react-native and needed this keys for approval.</string> <string>Not really used, but the module asks for it when openning the camera.</string>
<key>NSMotionUsageDescription</key> <key>NSMotionUsageDescription</key>
<string>Not used, just added this key because i used react-native and needed this keys for approval.</string> <string>Not used, just added this key because i used react-native and needed this keys for approval.</string>
<key>NSPhotoLibraryAddUsageDescription</key> <key>NSPhotoLibraryAddUsageDescription</key>

BIN
api/.DS_Store vendored

Binary file not shown.

View File

@ -25,7 +25,7 @@ namespace api.Controllers
public class AuthController : ControllerBase public class AuthController : ControllerBase
{ {
private readonly DataContext context; private readonly DataContext context;
private readonly IConfiguration config; private readonly IConfiguration config;
public UserManager<User> _userManager { get; } public UserManager<User> _userManager { get; }
public SignInManager<User> _signInManager { get; } public SignInManager<User> _signInManager { get; }
@ -34,19 +34,19 @@ namespace api.Controllers
private readonly RoleManager<Role> _roleManager; private readonly RoleManager<Role> _roleManager;
private readonly System.Net.Http.IHttpClientFactory clientFactory; private readonly System.Net.Http.IHttpClientFactory clientFactory;
public AuthController(DataContext context,IConfiguration config, UserManager<User> UserManager, SignInManager<User> SignInManager, IMapper mapper, RoleManager<Role> roleManager, IUsersRepository repo, System.Net.Http.IHttpClientFactory clientFactory) public AuthController(DataContext context, IConfiguration config, UserManager<User> UserManager, SignInManager<User> SignInManager, IMapper mapper, RoleManager<Role> roleManager, IUsersRepository repo, System.Net.Http.IHttpClientFactory clientFactory)
{ {
_mapper = mapper; _mapper = mapper;
_roleManager = roleManager; _roleManager = roleManager;
_repo = repo; _repo = repo;
this.clientFactory = clientFactory; this.clientFactory = clientFactory;
this.config = config; this.config = config;
_userManager = UserManager; _userManager = UserManager;
_signInManager = SignInManager; _signInManager = SignInManager;
this.context = context; this.context = context;
} }
[HttpPost("register")] [HttpPost("register")]
public async Task<IActionResult> Register(UserForRegisterDto userToRegister) public async Task<IActionResult> Register(UserForRegisterDto userToRegister)
@ -54,7 +54,7 @@ namespace api.Controllers
var userToCreate = _mapper.Map<User>(userToRegister); var userToCreate = _mapper.Map<User>(userToRegister);
var result = await _userManager.CreateAsync(userToCreate, userToRegister.password); var result = await _userManager.CreateAsync(userToCreate, userToRegister.password);
if (result.Succeeded) if (result.Succeeded)
{ {
return StatusCode(201); return StatusCode(201);
@ -62,6 +62,9 @@ namespace api.Controllers
return BadRequest(result.Errors); return BadRequest(result.Errors);
} }
[HttpPost("login")] [HttpPost("login")]
public async Task<IActionResult> Login(UserForLoginDto UserForLoginDto) public async Task<IActionResult> Login(UserForLoginDto UserForLoginDto)
{ {
@ -87,44 +90,48 @@ namespace api.Controllers
} }
[HttpPost("loginQR")] [HttpPost("loginQR")]
public async Task<IActionResult> loginQr(loginQr a){ public async Task<IActionResult> loginQr(loginQr a)
{
var u = await _userManager.FindByNameAsync(a.QRcode);
using (var client = new HttpClient())
{
try{
var url = "https://tickets.enei.pt/internal/api/Attendee/Detail";
client.DefaultRequestHeaders.Add("Authorization", "Bearer " + a.token);
var response = await client.GetStringAsync(url); var u = await _userManager.FindByNameAsync(a.QRcode);
// Console.WriteLine(response); using (var client = new HttpClient())
{
//var resource = JObject.Parse(response); try
var appUser = await _userManager.Users.FirstOrDefaultAsync(SU => SU.NormalizedUserName == a.QRcode.ToUpper());
return Ok(new
{ {
token = GenerateJwtToken(appUser).Result var url = "https://tickets.enei.pt/internal/api/Attendee/Detail";
});
}catch(Exception e){ client.DefaultRequestHeaders.Add("Authorization", "Bearer " + a.token);
Console.WriteLine(e);
return Unauthorized(); var response = await client.GetStringAsync(url);
} // Console.WriteLine(response);
//var resource = JObject.Parse(response);
var appUser = await _userManager.Users.FirstOrDefaultAsync(SU => SU.NormalizedUserName == a.QRcode.ToUpper());
return Ok(new
{
token = GenerateJwtToken(appUser).Result
});
} }
return Unauthorized(); catch (Exception e)
{
Console.WriteLine(e);
return Unauthorized();
}
}
return Unauthorized();
} }
@ -138,8 +145,9 @@ namespace api.Controllers
var roles = await _userManager.GetRolesAsync(user); var roles = await _userManager.GetRolesAsync(user);
foreach(var role in roles) { foreach (var role in roles)
claims.Add(new Claim(ClaimTypes.Role,role)); {
claims.Add(new Claim(ClaimTypes.Role, role));
} }
//obtem a key na app settings //obtem a key na app settings
@ -151,7 +159,7 @@ namespace api.Controllers
//criamos um token //criamos um token
var tokenDescriptor = new SecurityTokenDescriptor var tokenDescriptor = new SecurityTokenDescriptor
{ {
Subject = new ClaimsIdentity(claims), Subject = new ClaimsIdentity(claims),
//data de expiração (atual + 24 horas) //data de expiração (atual + 24 horas)
Expires = DateTime.Now.AddDays(30), Expires = DateTime.Now.AddDays(30),

View File

@ -7,6 +7,7 @@ using Microsoft.EntityFrameworkCore;
using api.Dtos; using api.Dtos;
using Microsoft.AspNetCore.Identity; using Microsoft.AspNetCore.Identity;
using api.Models; using api.Models;
using System.Net.Http;
namespace api.Controllers namespace api.Controllers
{ {
@ -31,7 +32,36 @@ namespace api.Controllers
return View("Views/Landing/index.cshtml"); return View("Views/Landing/index.cshtml");
} }
[AllowAnonymous]
[HttpGet("/reset/{user}")]
public async Task<IActionResult> resetPassword(string user)
{
using (var client = new HttpClient())
{
try
{
var url = "https://tickets.enei.pt/internal/api/User/ResetPassword?code=" + user;
// client.DefaultRequestHeaders.Add("Authorization", "Bearer " + a.token);
var response = await client.GetStringAsync(url);
return View("Views/Landing/resetPage.cshtml");
}
catch (HttpRequestException a)
{
return View("Views/Landing/resetError.cshtml");
// return NotFound(a);
}
}
}
[HttpGet("/app")] [HttpGet("/app")]
[AllowAnonymous] [AllowAnonymous]
public IActionResult appPage() public IActionResult appPage()
@ -41,16 +71,22 @@ namespace api.Controllers
} }
[HttpGet("/ctf")] [HttpGet("/ctf")]
[AllowAnonymous] [AllowAnonymous]
public IActionResult ctfPage() { public IActionResult ctfPage()
{
return View("Views/Landing/ctf.cshtml"); return View("Views/Landing/ctf.cshtml");
} }
[AllowAnonymous]
[Route("{*url}", Order = 999)]
public IActionResult CatchAll()
{
Response.StatusCode = 404;
return View("Views/Landing/notFound.cshtml");
}
} }

7
api/Dtos/reset.cs Normal file
View File

@ -0,0 +1,7 @@
namespace api.Dtos
{
public class reset
{
public string email { get; set; }
}
}

View File

@ -123,11 +123,12 @@
</p> </p>
<p>O login na app é feito usando esse QR code</p> <p>O login na app é feito usando esse QR code</p>
<p>Para obteres a password, deves efectuar reset através da APP, ou preenchendo o campo a baixo.</p> <p>Para obteres a password, deves efectuar reset através da APP, ou preenchendo o campo a baixo.</p>
<form>
<input type="email" placeholder="Introduz o teu email">
<input type="button" data-bind="click: buy" value="RESET PASSWORD"> <input id="email-input" type="email" name="email" placeholder="Introduz o teu email">
</form>
<button class="button-default" onclick="resetPassword()">Reset Password</button>
</div> </div>
</div> </div>
</div> </div>
@ -197,38 +198,38 @@
<h3>Aplicação disponível nas típicas lojas de aplicações.</h3> <h3>Aplicação disponível nas típicas lojas de aplicações.</h3>
<div class="buttons"> <div class="buttons">
<a href="https://itunes.apple.com/WebObjects/MZStore.woa/wa/viewSoftware?id=1457702417&mt=8"> <a href="https://itunes.apple.com/WebObjects/MZStore.woa/wa/viewSoftware?id=1457702417&mt=8">
<div class="button-app"> <div class="button-app">
<div class="button-logo">
<i class="fab fa-apple"></i>
</div>
<div class="button-text">
<h3>Available on the</h3>
<h2>App Store</h2>
</div>
</div>
</a>
<a href="https://play.google.com/store/apps/details?id=pt.enei">
<div class="button-app">
<div class="button-logo"> <div class="button-logo">
<i class="fab fa-google-play"></i> <i class="fab fa-apple"></i>
</div>
<div class="button-text">
<h3>Available on the</h3>
<h2>App Store</h2>
</div>
</div>
</a>
<a href="https://play.google.com/store/apps/details?id=pt.enei">
<div class="button-app">
<div class="button-logo">
<i class="fab fa-google-play"></i>
</div> </div>
<div class="button-text"> <div class="button-text">
<h3>Available on the</h3> <h3>Available on the</h3>
<h2>Play Store</h2> <h2>Play Store</h2>
</div> </div>
</div> </div>
</a> </a>
</div> </div>
</div> </div>
</div> </div>
<!-- faqs section --> <!-- faqs section -->
@ -348,40 +349,93 @@
</div> </div>
</section> </section>
<!-- social network section --> <!-- footer -->
<aside id="social-network"> <footer>
<div class="container"> <div class="container">
<div class="row"> <div class="row">
<div class="col-lg-8 col-lg-offset-2"> <div class="col-lg-4 col-xs-6">
<h2>Segue-nos</h2> <p>© 2019 ENEI . Todos os direitos reservados</p>
<ul> </div>
<div class="col-lg-8 col-xs-6">
<ul id="social-network">
<li><a href="https://www.facebook.com/ENEIConf/" title="Facebook" target="_blank" <li><a href="https://www.facebook.com/ENEIConf/" title="Facebook" target="_blank"
class="icon-facebook"></a></li> class="icon-facebook"></a></li>
<li><a href="https://www.instagram.com/eneiconf/" title="Instagram" target="_blank" <li><a href="https://www.instagram.com/eneiconf/" title="Instagram" target="_blank"
class="icon-instagram"></a></li> class="icon-instagram"></a></li>
<li><a href="https://www.linkedin.com/company/enei/" title="Linkedin" target="_blank" <li><a href="https://www.linkedin.com/company/enei/" title="Linkedin" target="_blank"
class="icon-linkedin"></a></li> class="icon-linkedin"></a></li>
<li><a href="mailto:geral@enei.pt" title="Email" target="_blank" class="icon-email"></a></li> <li><a href="mailto:geral@enei.pt" title="Email" target="_blank" class="icon-email"></a>
</li>
</ul> </ul>
</div> </div>
</div> </div>
</div> </div>
</aside>
<!-- footer -->
<footer>
<div class="container">
<div class="row">
<div class="col-lg-12">
<p>© 2019 ENEI . Todos os direitos reservados</p>
</div>
</div>
</div>
</footer> </footer>
<!-- Scripts --> <!-- Scripts -->
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.4/jquery.min.js"></script> <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.4/jquery.min.js"></script>
<script type="text/javascript" src="js/scripts.js"></script> <script type="text/javascript" src="js/scripts.js"></script>
<!-- Global site tag (gtag.js) - Google Analytics -->
<script async src="https://www.googletagmanager.com/gtag/js?id=UA-130588243-1"></script>
<script src="https://unpkg.com/aos@2.3.1/dist/aos.js"></script> <script src="https://unpkg.com/aos@2.3.1/dist/aos.js"></script>
<script src="https://unpkg.com/axios/dist/axios.min.js"></script>
<script>
resetPassword = () => {
var input = document.getElementById("email-input");
if (input != " ") {
console.log(input.value);
axios({
url: `https://tickets.enei.pt/internal/api/User/RecoverPassword?input=${input.value}&type=0`,
method: 'get',
}).then(a => {
console.log(a);
Swal.fire(
'Sucesso!',
'Foi enviado para o teu email um pedido de recuperação. Pode demorar demorar alguns minutos...',
'success'
)
}).catch(err => {
if (err.response.status === 500) {
Swal.fire(
'Utilizador não existe!',
'Verifica se o email é válido, caso o erro continue contacta a comissão organizadora',
'error'
)
}
else {
Swal.fire(
'Erro!',
'Aconteceu algum erro com o teu pedido...',
'error'
)
}
})
} else {
Swal.fire(
'Erro!',
'Deves preencher o campo de email.',
'warning'
)
}
}
</script>
<script src="https://cdn.jsdelivr.net/npm/sweetalert2@8"></script>
<script src="https://cdn.jsdelivr.net/npm/promise-polyfill"></script>
<!-- Global site tag (gtag.js) - Google Analytics --> <!-- Global site tag (gtag.js) - Google Analytics -->
<script async src="https://www.googletagmanager.com/gtag/js?id=UA-130588243-1"></script> <script async src="https://www.googletagmanager.com/gtag/js?id=UA-130588243-1"></script>
<script> <script>

View File

@ -0,0 +1,324 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" lang="pt" xml:lang="pt">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<meta content="width=device-width, initial-scale=1, user-scalable=0" name="viewport">
<meta content="width" name="MobileOptimized">
<meta content="true" name="HandheldFriendly">
<!-- Place favicon.ico in the root directory -->
<link rel="apple-touch-icon" sizes="180x180" href="apple-touch-icon.png">
<link rel="icon" type="image/png" sizes="32x32" href="favicon-32x32.png">
<link rel="icon" type="image/png" sizes="16x16" href="favicon-16x16.png">
<link rel="manifest" href="site.webmanifest">
<link rel="mask-icon" href="safari-pinned-tab.svg" color="#5bbad5">
<meta name="msapplication-TileColor" content="#da532c">
<meta name="theme-color" content="#ffffff">
<title>ENEI'19</title>
<meta name="description"
content="Página do Encontro Nacional de Estudantes de Informática 2019, no Instituto Superior de Engenharia de Coimbra (ISEC) a realizar-se entre 12 e 15 de abril de 2019. O ENEI pretende oferecer aos estudantes de todo o país um evento que promove a aprendizagem, a troca de ideias e o convívio, enquanto tenta criar fortes ligações com o mundo empresarial.">
<meta property="og:locale" content="pt_PT" />
<meta property="og:title" content="ENEI'19" />
<meta property="og:description"
content="Página do Encontro Nacional de Estudantes de Informática 2019, no Instituto Superior de Engenharia de Coimbra (ISEC) a realizar-se entre 12 e 15 de abril de 2019. O ENEI pretende oferecer aos estudantes de todo o país um evento que promove a aprendizagem, a troca de ideias e o convívio, enquanto tenta criar fortes ligações com o mundo empresarial." />
<meta property="og:site_name" content="ENEI'19" />
<meta property="og:url" content="http://www.enei.pt/" />
<meta property="og:image" content="http://www.enei.pt/imgs/share-image.jpg" />
<meta property="og:type" content="Website" />
<link rel="canonical" href="http://www.enei.pt/" />
<link href="bootstrap-grid.css" rel="stylesheet" type="text/css" />
<link href="main.css" rel="stylesheet" type="text/css" />
<link href="https://fonts.googleapis.com/css?family=Bai+Jamjuree:400,600,700" rel="stylesheet">
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/css/bootstrap.min.css"
integrity="sha384-MCw98/SFnGE8fJT3GXwEOngsV7Zt27NXFoaoApmYm81iuXoPkFOJwJ8ERdknLPMO" crossorigin="anonymous">
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/js/bootstrap.min.js"
integrity="sha384-ChfqqxuZUCnJSK3+MXmPNIyE6ZbWh2IMqE241rYiqJxyMiZ6OW/JmZQ5stwEULTy"
crossorigin="anonymous"></script>
<link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.8.1/css/all.css"
integrity="sha384-50oBUHEmvpQ+1lW4y57PTFmhCaXp0ML5d60M1M7uH2+nqUivzIebhndOJK28anvf" crossorigin="anonymous">
</head>
<body>
<header id="main-menu">
<nav>
<a href="#" title="Abrir menu" rel="nofollow" id="open-menu-mobile">Menu</a>
<ul>
<li><a href="#enei" title="Enei">Enei</a></li>
<li class="unavailable">Oradores</li>
<li class="unavailable">Programa</li>
<li><a href="#precos" title="Preços">Preços</a></li>
<li class="unavailable">App</li>
<li><a href="#ctf" title="Faq's">CTF</li>
<li><a href="#sponsors" title="Sponsors">Sponsors</a></li>
<li><a href="#faqs" title="Faq's">Faq's</a></li>
</ul>
</nav>
</header>
<div class="ctf-header">
<div class="ctf-top10">
<h1 class="top-title">Melhores classificados CTF </h1>
<table class="table table-striped table-dark">
<thead>
<tr>
<th scope="col">#</th>
<th scope="col">Nome Completo</th>
<th scope="col">Pontuação</th>
</tr>
</thead>
<tbody>
<tr>
<th scope="row">1</th>
<td>Henrique Dias</td>
<td>1024 pts</td>
</tr>
<tr>
<th scope="row">2</th>
<td>Fernando Manuel Nunes Gonçalves</td>
<td>1024 pts</td>
</tr>
<tr>
<th scope="row">3</th>
<td>Francisco xavier santos petronilho </td>
<td>1024 pts</td>
</tr>
<tr>
<th scope="row">4</th>
<td>Joao eduardo santos alcatrão</td>
<td>1024 pts</td>
</tr>
<tr>
<th scope="row">5</th>
<td>Mariana Luísa Lança Miguel e Fernandes Marques</td>
<td>1024 pts</td>
</tr>
</tbody>
</table>
</div>
<h3 class="about-top">Estas pontuações refletem o somatório das pontuações dos níveis cumpridos.</h3>
</div>
<div class="ctf-explain">
<div>
<h3>O que é o capture the flag?</h3>
<p>
O Capture The Flag é um concurso que vamos realizar diretamente relacionado com o jogo do ENEI, e com os
respetivos prémios espetaculares que temos a oferecer (Nintendo Switch, entre outros).
Este jogo é uma mistura de temas altamente relacionados com Informática, temas como WEB, CRYPTO,
REVERSE_ENGINNERING, e uma mistura de tantos outros. Todos os níveis têm o mesmo objetivo: Encontrar uma
frase (string) que por norma se encontra escondida.
Qualquer um pode participar no jogo (desde que já detenha um bilhete) apenas com um simples scan a este
QR code.
No fim de encontrares a string, deves gerar um QR code com ela e pronto, o nível está completo!
Basta então fazeres um scan a esse QR e obteres todos os pontos que mereces.
</p>
</div> <img src="imgs/flag.png" alt="app">
</div>
<div class="ctf-prizes">
<h3>O que posso ganhar ao realizar estes desafios?</h3>
<h5>O CTF vale cerca de 50% dos pontos do jogo do ENEI.</h5>
<div class="prizes-container">
<div class="prize">
<div class="prize-logo"><i class="fab fa-nintendo-switch"></i></div>
<h4>Nitendo Switch</h4>
</div>
<div class="prize">
<div class="prize-logo"><i class="fas fa-volume-up"></i></div>
<h4>Coluna Bluetooth Xiaomi</h4>
</div>
<div class="prize">
<div class="prize-logo"><i class="fas fa-headphones"></i></i></div>
<h4>Auscultadores AKG K518</h4>
</div>
<div class="prize">
<div class="prize-logo"><i class="fas fa-battery-full"></i></div>
<h4>Power Bank Xiaomi Mi 5000</h4>
</div>
</div>
</div>
<div class="ctf-levels">
<div class="level1-ctf level">
<h3>Web</h3>
<div class="sub-container">
<div class="sub-level">
<h4>1 - WHATSTHEPASSWORD<i>(31 pontos)</i></h4>
<p>Começa esta jornada, com um desafio fácil relacionado com WEB. Talvez desta forma fiques motivado a continuar!</p>
<a href="#"><div class="btn-dwn-ctf"> <h3>Download</h3> <i class="fas fa-file-download"></i></div></a>
</div>
<div class="sub-level">
<h4>2 - ROT13 <i>(37 pontos)</i></h4>
<p> De forma a provares melhor o significado deste concurso, deixamos-te um desafio WEB com alguma análise.</p>
<a href="#"><div class="btn-dwn-ctf"> <h3>Download</h3> <i class="fas fa-file-download"></i></div></a>
</div>
</div>
</div>
<div class="level2-ctf level">
<h3>Analyse</h3>
<div class="sub-container">
<div class="sub-level">
<h4>3 - BURRO <i>(41 pontos)</i></h4>
<p>Com este desafio pomos à prova a tua análise de ficheiros e até pode ser que te rias a completar o 3º de muita diversão.</p>
<a href="https://enei.pt/ctf/Burro.zip"><div class="btn-dwn-ctf"> <h3>Download</h3> <i class="fas fa-file-download"></i></div></a>
</div>
<div class="sub-level">
<h4>4 - WHOAMI <i>(43 pontos)</i></h4>
<p> Vamos lá continuar a desenvolver esse raciocínio, mas desta vez com um pouco de pacotes à mistura. É uma confusão!! </p>
<a href="https://enei.pt/ctf/WHOAMI.zip"><div class="btn-dwn-ctf"> <h3>Download</h3> <i class="fas fa-file-download"></i></div></a>
</div>
</div>
</div>
<div class="level3-ctf level">
<h3>Reverse Engeneering </h3>
<div class="sub-container">
<div class="sub-level">
<h4>5 - REVERSEENGINNERING <i>(47 pontos)</i></h4>
<p> Daqui em diante a dificuldade começa a mudar de direção, vais acompanhar? Fica aqui um desafio de reverse_enginnering, nada de muito complicado (para ti).</p>
<a href="https://enei.pt/ctf/Try_Me.zip"><div class="btn-dwn-ctf"> <h3>Download</h3> <i class="fas fa-file-download"></i></div></a>
</div>
<div class="sub-level">
<h4>6 -OLD <i>(59 pontos)</i></h4>
<p>Prova o cerne destes desafios, explorando, analisando e percebendo como descobrir a flag escondida, o típico desafio crypto.</p>
<a href="https://enei.pt/ctf/OLD.zip"><div class="btn-dwn-ctf"> <h3>Download</h3> <i class="fas fa-file-download"></i></div></a>
</div>
</div>
</div>
<div class="level4-ctf level">
<h3> Crypto</h3>
<div class="sub-container">
<div class="sub-level">
<h4>7 - MASM_IS_LIFE <i>(61 pontos)</i></h4>
<p> Deixamos aqui um desafio destruidor de sonhos, é verdade.. Estás pronto para um bocadinho de assembly? </p>
<a href="https://enei.pt/ctf/ASM_IS_LIFE.zip"><div class="btn-dwn-ctf"> <h3>Download</h3> <i class="fas fa-file-download"></i></div></a>
</div>
<div class="sub-level">
<h4>8 - OLD2 <i>(89 pontos)</i></h4>
<p>Aqui fica a continuação do desafio nº 6, se ainda não o completas-te, não faz sentido continuares este. Se já o fizes-te, então estás pronto para experimentar esta aventura que teve início em 2002 (DosBox). </p>
<a href="https://enei.pt/ctf/OLD2.zip"><div class="btn-dwn-ctf"> <h3>Download</h3> <i class="fas fa-file-download"></i></div></a>
</div>
</div>
</div>
<div class="level5-ctf level">
<h3>Engeneering</h3>
<div class="sub-container">
<div class="sub-level">
<h4>9 - ZIPZIPZIPZIP <i>(101 pontos)</i></h4>
<p>(WARNING) Não aconselhado a pessoas sensíveis, este nível irá exigir de ti algum tempo, raciocínio e conhecimento. Descobre a flag neste desafio propício a dares em louco. (SPOILER ALERT) </p>
<a href="https://enei.pt/ctf/ZIPZIPZIPZIP.zip"><div class="btn-dwn-ctf"> <h3>Download</h3> <i class="fas fa-file-download"></i></div></a>
</div>
<div class="sub-level">
<h4>10 - THE_END <i>(109 pontos)</i></h4>
<p> (WARNING) Nem preciso de comentar... Um nível como este não requer descrições. Boa Sorte! </p>
<a href="https://enei.pt/ctf/THEEND.zip"><div class="btn-dwn-ctf"> <h3>Download</h3> <i class="fas fa-file-download"></i></div></a>
</div>
</div>
</div>
</div>
<div class="explain-qr">
<img src="imgs/QRstart.png" alt="app">
<div class="explain">
<h3>Como registar progresso no CTF?</h3>
<p>Depois de obter a flag (string) do nível, deves gerar um QR code com a mesma.</p>
<p>Em seguida, deves usar a App para ler este QR code.</p>
<p>Caso seja válida, a flag irá dar-te acesso ao cromo que representa o nível.</p>
<p>Para testar podes usar este QR code (free points).</p>
<p>Boa sorte, a equipa do ENEI'19</p>
</div>
</div>
<!-- faqs section -->
<section id="faqs">
<div class="container">
<div class="row">
<div class="col-lg-5">
<div class="pre-h1">Perguntas Frequentes</div>
<h1>Faqs</h1>
<hr>
</div>
</div>
<div class="row">
<div class="col-lg-10">
<ul id="accordion">
<li>
<a href="#" title="Como posso participar?" rel="nofollow" class="toggle">Como posso participar?</a>
<div class="content-accordion">
<p> Tal como o descrito acima, basta efetuares a compra do bilhete e fazeres scan do QR code da página do CTF.
</p>
<p>Deves então prosseguir à descoberta das frases escondidas em cada desafio, e procederes à geração de um QR code com essa string.</p>
</div>
</li>
<li>
<a href="#" title="Quando posso começar?" rel="nofollow" class="toggle">Quando posso começar?
inscrever?</a>
<div class="content-accordion">
<p> O concurso irá iniciar no domingo (dia 7) às 14:30 horas e terminar no sábado (dia 13) às 00:00 horas.</p>
</div>
</li>
<li>
<a href="#" title="O que tenho eu a ganhar?" rel="nofollow"
class="toggle">O que tenho eu a ganhar?</a>
<div class="content-accordion">
<p>Com a realização do concurso não só irás evoluir as tuas competências gerais relacionadas com Informática e Raciocínio Mental, como estás sujeito a ganhar prémios fenomenais.</p>
</div>
</li>
</ul>
</div>
</div>
</div>
</section>
<footer>
<div class="container">
<div class="row">
<div class="col-lg-4 col-xs-6">
<p>© 2019 ENEI . Todos os direitos reservados</p>
</div>
<div class="col-lg-8 col-xs-6">
<ul id="social-network">
<li><a href="https://www.facebook.com/ENEIConf/" title="Facebook" target="_blank"
class="icon-facebook"></a></li>
<li><a href="https://www.instagram.com/eneiconf/" title="Instagram" target="_blank"
class="icon-instagram"></a></li>
<li><a href="https://www.linkedin.com/company/enei/" title="Linkedin" target="_blank"
class="icon-linkedin"></a></li>
<li><a href="mailto:geral@enei.pt" title="Email" target="_blank" class="icon-email"></a>
</li>
</ul>
</div>
</div>
</div>
</footer>
<!-- Scripts -->
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.4/jquery.min.js"></script>
<script type="text/javascript" src="js/scripts.js"></script>
<!-- Global site tag (gtag.js) - Google Analytics -->
<script async src="https://www.googletagmanager.com/gtag/js?id=UA-130588243-1"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag() { dataLayer.push(arguments); }
gtag('js', new Date());
gtag('config', 'UA-130588243-1');
</script>
</body>
</html>

View File

@ -0,0 +1,62 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" lang="pt" xml:lang="pt">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<meta content="width=device-width, initial-scale=1, user-scalable=0" name="viewport">
<meta content="width" name="MobileOptimized">
<meta content="true" name="HandheldFriendly">
<!-- Place favicon.ico in the root directory -->
<link rel="apple-touch-icon" sizes="180x180" href="apple-touch-icon.png">
<link rel="icon" type="image/png" sizes="32x32" href="favicon-32x32.png">
<link rel="icon" type="image/png" sizes="16x16" href="favicon-16x16.png">
<link rel="manifest" href="site.webmanifest">
<link rel="mask-icon" href="safari-pinned-tab.svg" color="#5bbad5">
<meta name="msapplication-TileColor" content="#da532c">
<meta name="theme-color" content="#ffffff">
<title>ENEI'19 - Error</title>
<meta name="description" content="Página do Encontro Nacional de Estudantes de Informática 2019, no Instituto Superior de Engenharia de Coimbra (ISEC) a realizar-se entre 12 e 15 de abril de 2019. O ENEI pretende oferecer aos estudantes de todo o país um evento que promove a aprendizagem, a troca de ideias e o convívio, enquanto tenta criar fortes ligações com o mundo empresarial.">
<meta property="og:locale" content="pt_PT" />
<meta property="og:title" content="ENEI'19 - Error" />
<meta property="og:description" content="Página do Encontro Nacional de Estudantes de Informática 2019, no Instituto Superior de Engenharia de Coimbra (ISEC) a realizar-se entre 12 e 15 de abril de 2019. O ENEI pretende oferecer aos estudantes de todo o país um evento que promove a aprendizagem, a troca de ideias e o convívio, enquanto tenta criar fortes ligações com o mundo empresarial." />
<meta property="og:site_name" content="ENEI'19 - Error" />
<meta property="og:url" content="http://www.enei.pt/error-page.html" />
<meta property="og:image" content="http://www.enei.pt/imgs/share-image.jpg" />
<meta property="og:type" content="Website" />
<link rel="canonical" href="http://www.enei.pt/error-page.html" />
<link href="bootstrap-grid.css" rel="stylesheet" type="text/css" />
<link href="main.css" rel="stylesheet" type="text/css" />
<link href="https://fonts.googleapis.com/css?family=Bai+Jamjuree:400,600,700" rel="stylesheet">
</head>
<body>
<!-- apresentation section -->
<div id="apresentation">
<h1 id="error-message">404</h1>
</div>
<!-- Scripts -->
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.4/jquery.min.js"></script>
<script type="text/javascript" src="js/scripts.js"></script>
<!-- Global site tag (gtag.js) - Google Analytics -->
<script async src=“https://www.googletagmanager.com/gtag/js?id=UA-130588243-1“></script>
<!-- Global site tag (gtag.js) - Google Analytics -->
<script async src="https://www.googletagmanager.com/gtag/js?id=UA-130588243-1"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag() { dataLayer.push(arguments); }
gtag('js', new Date());
gtag('config', 'UA-130588243-1');
</script>
</body>
</html>

View File

@ -0,0 +1,112 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" lang="pt" xml:lang="pt">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<meta content="width=device-width, initial-scale=1, user-scalable=0" name="viewport">
<meta content="width" name="MobileOptimized">
<meta content="true" name="HandheldFriendly">
<!-- Place favicon.ico in the root directory -->
<link rel="apple-touch-icon" sizes="180x180" href="apple-touch-icon.png">
<link rel="icon" type="image/png" sizes="32x32" href="favicon-32x32.png">
<link rel="icon" type="image/png" sizes="16x16" href="favicon-16x16.png">
<link rel="manifest" href="site.webmanifest">
<link rel="mask-icon" href="safari-pinned-tab.svg" color="#5bbad5">
<meta name="msapplication-TileColor" content="#da532c">
<meta name="theme-color" content="#ffffff">
<title>ENEI'19 - Error</title>
<meta name="description" content="Página do Encontro Nacional de Estudantes de Informática 2019, no Instituto Superior de Engenharia de Coimbra (ISEC) a realizar-se entre 12 e 15 de abril de 2019. O ENEI pretende oferecer aos estudantes de todo o país um evento que promove a aprendizagem, a troca de ideias e o convívio, enquanto tenta criar fortes ligações com o mundo empresarial.">
<meta property="og:locale" content="pt_PT" />
<meta property="og:title" content="ENEI'19 - Error" />
<meta property="og:description" content="Página do Encontro Nacional de Estudantes de Informática 2019, no Instituto Superior de Engenharia de Coimbra (ISEC) a realizar-se entre 12 e 15 de abril de 2019. O ENEI pretende oferecer aos estudantes de todo o país um evento que promove a aprendizagem, a troca de ideias e o convívio, enquanto tenta criar fortes ligações com o mundo empresarial." />
<meta property="og:site_name" content="ENEI'19 - Error" />
<meta property="og:url" content="http://www.enei.pt/error-page.html" />
<meta property="og:image" content="http://www.enei.pt/imgs/share-image.jpg" />
<meta property="og:type" content="Website" />
<link rel="canonical" href="http://www.enei.pt/error-page.html" />
<link href="bootstrap-grid.css" rel="stylesheet" type="text/css" />
<link href="https://enei.pt/main.css" rel="stylesheet" type="text/css" />
<link href="https://fonts.googleapis.com/css?family=Bai+Jamjuree:400,600,700" rel="stylesheet">
<link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.8.1/css/all.css"
integrity="sha384-50oBUHEmvpQ+1lW4y57PTFmhCaXp0ML5d60M1M7uH2+nqUivzIebhndOJK28anvf" crossorigin="anonymous">
<style>
html{
display: flex;
flex-direction: column;
justify-content: center;
height: 100%;
background-image: linear-gradient(0deg, rgba(208, 46, 44, 1) 20%, rgb(225, 73, 78) 100%);
}
.resetPassword{
margin: 0 auto;
// background-color:#CC1A17;
text-align: center;
width: 50%;
padding: 40px;
}
h1,h3{
color:black;
padding: 10px;
}
.button-reset{
margin: 20px;
padding: 20px;
}
</style>
</head>
<body>
<div class="download-app">
<div class="left">
<h1>Erro!!</h1>
<h3>Este código de recuperação não existe, ou já foi utilizado...</h3>
<h3>Volta a realizar o processo! Caso o erro persista, contacta a comissão.</h3>
<div class="buttons">
<a href="https://enei.pt/app">
<div class="button-app">
<div class="button-text">
<h3>Ir para</h3>
<h2>Página da APP</h2>
</div>
</div>
</a>
</div>
</div>
</div>
<!-- Scripts -->
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.4/jquery.min.js"></script>
<script type="text/javascript" src="js/scripts.js"></script>
<!-- Global site tag (gtag.js) - Google Analytics -->
<script async src=“https://www.googletagmanager.com/gtag/js?id=UA-130588243-1“></script>
<!-- Global site tag (gtag.js) - Google Analytics -->
<script async src="https://www.googletagmanager.com/gtag/js?id=UA-130588243-1"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag() { dataLayer.push(arguments); }
gtag('js', new Date());
gtag('config', 'UA-130588243-1');
</script>
</body>
</html>

View File

@ -0,0 +1,125 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" lang="pt" xml:lang="pt">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<meta content="width=device-width, initial-scale=1, user-scalable=0" name="viewport">
<meta content="width" name="MobileOptimized">
<meta content="true" name="HandheldFriendly">
<!-- Place favicon.ico in the root directory -->
<link rel="apple-touch-icon" sizes="180x180" href="apple-touch-icon.png">
<link rel="icon" type="image/png" sizes="32x32" href="favicon-32x32.png">
<link rel="icon" type="image/png" sizes="16x16" href="favicon-16x16.png">
<link rel="manifest" href="site.webmanifest">
<link rel="mask-icon" href="safari-pinned-tab.svg" color="#5bbad5">
<meta name="msapplication-TileColor" content="#da532c">
<meta name="theme-color" content="#ffffff">
<title>ENEI'19 - Error</title>
<meta name="description" content="Página do Encontro Nacional de Estudantes de Informática 2019, no Instituto Superior de Engenharia de Coimbra (ISEC) a realizar-se entre 12 e 15 de abril de 2019. O ENEI pretende oferecer aos estudantes de todo o país um evento que promove a aprendizagem, a troca de ideias e o convívio, enquanto tenta criar fortes ligações com o mundo empresarial.">
<meta property="og:locale" content="pt_PT" />
<meta property="og:title" content="ENEI'19 - Error" />
<meta property="og:description" content="Página do Encontro Nacional de Estudantes de Informática 2019, no Instituto Superior de Engenharia de Coimbra (ISEC) a realizar-se entre 12 e 15 de abril de 2019. O ENEI pretende oferecer aos estudantes de todo o país um evento que promove a aprendizagem, a troca de ideias e o convívio, enquanto tenta criar fortes ligações com o mundo empresarial." />
<meta property="og:site_name" content="ENEI'19 - Error" />
<meta property="og:url" content="http://www.enei.pt/error-page.html" />
<meta property="og:image" content="http://www.enei.pt/imgs/share-image.jpg" />
<meta property="og:type" content="Website" />
<link rel="canonical" href="http://www.enei.pt/error-page.html" />
<link href="bootstrap-grid.css" rel="stylesheet" type="text/css" />
<link href="https://enei.pt/main.css" rel="stylesheet" type="text/css" />
<link href="https://fonts.googleapis.com/css?family=Bai+Jamjuree:400,600,700" rel="stylesheet">
<link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.8.1/css/all.css"
integrity="sha384-50oBUHEmvpQ+1lW4y57PTFmhCaXp0ML5d60M1M7uH2+nqUivzIebhndOJK28anvf" crossorigin="anonymous">
<style>
html{
display: flex;
flex-direction: column;
justify-content: center;
height: 100%;
background-image: linear-gradient(0deg, rgba(208, 46, 44, 1) 20%, rgb(225, 73, 78) 100%);
}
.resetPassword{
margin: 0 auto;
// background-color:#CC1A17;
text-align: center;
width: 50%;
padding: 40px;
}
h1,h3{
color:black;
padding: 10px;
}
.button-reset{
margin: 20px;
padding: 20px;
}
</style>
</head>
<body>
<div class="download-app">
<div class="left">
<h1>Sucesso!!</h1>
<h3>Dentro de alguns minutos irás receber a nova password.</h3>
<h3>Podes aproveitar a espera para fazer o download.</h3>
<div class="buttons">
<a href="https://itunes.apple.com/WebObjects/MZStore.woa/wa/viewSoftware?id=1457702417&mt=8">
<div class="button-app">
<div class="button-logo">
<i class="fab fa-apple"></i>
</div>
<div class="button-text">
<h3>Available on the</h3>
<h2>App Store</h2>
</div>
</div>
</a>
<a href="https://play.google.com/store/apps/details?id=pt.enei">
<div class="button-app">
<div class="button-logo">
<i class="fab fa-google-play"></i>
</div>
<div class="button-text">
<h3>Available on the</h3>
<h2>Play Store</h2>
</div>
</div>
</a>
</div>
</div>
</div>
<!-- Scripts -->
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.4/jquery.min.js"></script>
<script type="text/javascript" src="js/scripts.js"></script>
<!-- Global site tag (gtag.js) - Google Analytics -->
<script async src=“https://www.googletagmanager.com/gtag/js?id=UA-130588243-1“></script>
<!-- Global site tag (gtag.js) - Google Analytics -->
<script async src="https://www.googletagmanager.com/gtag/js?id=UA-130588243-1"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag() { dataLayer.push(arguments); }
gtag('js', new Date());
gtag('config', 'UA-130588243-1');
</script>
</body>
</html>

BIN
api/wwwroot/.DS_Store vendored

Binary file not shown.

View File

@ -123,11 +123,12 @@
</p> </p>
<p>O login na app é feito usando esse QR code</p> <p>O login na app é feito usando esse QR code</p>
<p>Para obteres a password, deves efectuar reset através da APP, ou preenchendo o campo a baixo.</p> <p>Para obteres a password, deves efectuar reset através da APP, ou preenchendo o campo a baixo.</p>
<form>
<input type="email" placeholder="Introduz o teu email">
<input type="button" data-bind="click: buy" value="RESET PASSWORD"> <input id="email-input" type="email" name="email" placeholder="Introduz o teu email">
</form>
<button class="button-default" onclick="resetPassword()">Reset Password</button>
</div> </div>
</div> </div>
</div> </div>
@ -197,38 +198,38 @@
<h3>Aplicação disponível nas típicas lojas de aplicações.</h3> <h3>Aplicação disponível nas típicas lojas de aplicações.</h3>
<div class="buttons"> <div class="buttons">
<a href="https://itunes.apple.com/WebObjects/MZStore.woa/wa/viewSoftware?id=1457702417&mt=8"> <a href="https://itunes.apple.com/WebObjects/MZStore.woa/wa/viewSoftware?id=1457702417&mt=8">
<div class="button-app"> <div class="button-app">
<div class="button-logo">
<i class="fab fa-apple"></i>
</div>
<div class="button-text">
<h3>Available on the</h3>
<h2>App Store</h2>
</div>
</div>
</a>
<a href="https://play.google.com/store/apps/details?id=pt.enei">
<div class="button-app">
<div class="button-logo"> <div class="button-logo">
<i class="fab fa-google-play"></i> <i class="fab fa-apple"></i>
</div>
<div class="button-text">
<h3>Available on the</h3>
<h2>App Store</h2>
</div>
</div>
</a>
<a href="https://play.google.com/store/apps/details?id=pt.enei">
<div class="button-app">
<div class="button-logo">
<i class="fab fa-google-play"></i>
</div> </div>
<div class="button-text"> <div class="button-text">
<h3>Available on the</h3> <h3>Available on the</h3>
<h2>Play Store</h2> <h2>Play Store</h2>
</div> </div>
</div> </div>
</a> </a>
</div> </div>
</div> </div>
</div> </div>
<!-- faqs section --> <!-- faqs section -->
@ -348,40 +349,88 @@
</div> </div>
</section> </section>
<!-- social network section --> <!-- footer -->
<aside id="social-network"> <footer>
<div class="container"> <div class="container">
<div class="row"> <div class="row">
<div class="col-lg-8 col-lg-offset-2"> <div class="col-lg-4 col-xs-6">
<h2>Segue-nos</h2> <p>© 2019 ENEI . Todos os direitos reservados</p>
<ul> </div>
<div class="col-lg-8 col-xs-6">
<ul id="social-network">
<li><a href="https://www.facebook.com/ENEIConf/" title="Facebook" target="_blank" <li><a href="https://www.facebook.com/ENEIConf/" title="Facebook" target="_blank"
class="icon-facebook"></a></li> class="icon-facebook"></a></li>
<li><a href="https://www.instagram.com/eneiconf/" title="Instagram" target="_blank" <li><a href="https://www.instagram.com/eneiconf/" title="Instagram" target="_blank"
class="icon-instagram"></a></li> class="icon-instagram"></a></li>
<li><a href="https://www.linkedin.com/company/enei/" title="Linkedin" target="_blank" <li><a href="https://www.linkedin.com/company/enei/" title="Linkedin" target="_blank"
class="icon-linkedin"></a></li> class="icon-linkedin"></a></li>
<li><a href="mailto:geral@enei.pt" title="Email" target="_blank" class="icon-email"></a></li> <li><a href="mailto:geral@enei.pt" title="Email" target="_blank" class="icon-email"></a>
</li>
</ul> </ul>
</div> </div>
</div> </div>
</div> </div>
</aside>
<!-- footer -->
<footer>
<div class="container">
<div class="row">
<div class="col-lg-12">
<p>© 2019 ENEI . Todos os direitos reservados</p>
</div>
</div>
</div>
</footer> </footer>
<!-- Scripts --> <!-- Scripts -->
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.4/jquery.min.js"></script> <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.4/jquery.min.js"></script>
<script type="text/javascript" src="js/scripts.js"></script> <script type="text/javascript" src="js/scripts.js"></script>
<!-- Global site tag (gtag.js) - Google Analytics -->
<script async src="https://www.googletagmanager.com/gtag/js?id=UA-130588243-1"></script>
<script src="https://unpkg.com/aos@2.3.1/dist/aos.js"></script> <script src="https://unpkg.com/aos@2.3.1/dist/aos.js"></script>
<script src="https://unpkg.com/axios/dist/axios.min.js"></script>
<script>
resetPassword = () => {
var input = document.getElementById("email-input");
if (input != " ") {
console.log(input.value);
axios({
url: `https://tickets.enei.pt/internal/api/User/RecoverPassword?input=${input.value}&type=0`,
method: 'get',
}).then(a => {
console.log(a);
Swal.fire(
'Sucesso!',
'Foi enviado para o teu email um pedido de recuperação. Pode demorar demorar alguns minutos...',
'success'
)
}).catch(err => {
if (err.response.status === 500) {
Swal.fire(
'Utilizador não existe!',
'Verifica se o email é válido, caso o erro continue contacta a comissão organizadora',
'error'
)
}
else {
Swal.fire(
'Erro!',
'Aconteceu algum erro com o teu pedido...',
'error'
)
}
})
} else {
Swal.fire(
'Erro!',
'Deves preencher o campo de email.',
'warning'
)
}
}
</script>
<script src="https://cdn.jsdelivr.net/npm/sweetalert2@8"></script>
<script src="https://cdn.jsdelivr.net/npm/promise-polyfill"></script>
<!-- Global site tag (gtag.js) - Google Analytics --> <!-- Global site tag (gtag.js) - Google Analytics -->
<script async src="https://www.googletagmanager.com/gtag/js?id=UA-130588243-1"></script> <script async src="https://www.googletagmanager.com/gtag/js?id=UA-130588243-1"></script>
<script> <script>

View File

@ -35,6 +35,10 @@
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/js/bootstrap.min.js" <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/js/bootstrap.min.js"
integrity="sha384-ChfqqxuZUCnJSK3+MXmPNIyE6ZbWh2IMqE241rYiqJxyMiZ6OW/JmZQ5stwEULTy" integrity="sha384-ChfqqxuZUCnJSK3+MXmPNIyE6ZbWh2IMqE241rYiqJxyMiZ6OW/JmZQ5stwEULTy"
crossorigin="anonymous"></script> crossorigin="anonymous"></script>
<link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.8.1/css/all.css"
integrity="sha384-50oBUHEmvpQ+1lW4y57PTFmhCaXp0ML5d60M1M7uH2+nqUivzIebhndOJK28anvf" crossorigin="anonymous">
</head> </head>
<body> <body>
@ -98,33 +102,153 @@
</div> </div>
<h3 class="about-top">Estas pontuações refletem o somatório das pontuçãoes dos níveis cumpridos.</h3> <h3 class="about-top">Estas pontuações refletem o somatório das pontuações dos níveis cumpridos.</h3>
</div> </div>
<div class="ctf-explain"> <div class="ctf-explain">
<p>O CTF - capture the flag é um evento onde os participantes têm como objectivo encontrar as flags escondidas. </p> <div>
<p>O nosso CTF não é sobre </p> <h3>O que é o capture the flag?</h3>
<p>
O Capture The Flag é um concurso que vamos realizar diretamente relacionado com o jogo do ENEI, e com os
respetivos prémios espetaculares que temos a oferecer (Nintendo Switch, entre outros).
Este jogo é uma mistura de temas altamente relacionados com Informática, temas como WEB, CRYPTO,
REVERSE_ENGINNERING, e uma mistura de tantos outros. Todos os níveis têm o mesmo objetivo: Encontrar uma
frase (string) que por norma se encontra escondida.
Qualquer um pode participar no jogo (desde que já detenha um bilhete) apenas com um simples scan a este
QR code.
No fim de encontrares a string, deves gerar um QR code com ela e pronto, o nível está completo!
Basta então fazeres um scan a esse QR e obteres todos os pontos que mereces.
</p>
</div> <img src="imgs/flag.png" alt="app">
</div> </div>
<div class="prizes"> <div class="ctf-prizes">
<h3>O que posso ganhar ao realizar estes desafios?</h3> <h3>O que posso ganhar ao realizar estes desafios?</h3>
<p></p> <h5>O CTF vale cerca de 50% dos pontos do jogo do ENEI.</h5>
<div class="prizes-container">
<div class="prize">
<div class="prize-logo"><i class="fab fa-nintendo-switch"></i></div>
<h4>Nitendo Switch</h4>
</div>
<div class="prize">
<div class="prize-logo"><i class="fas fa-volume-up"></i></div>
<h4>Coluna Bluetooth Xiaomi</h4>
</div>
<div class="prize">
<div class="prize-logo"><i class="fas fa-headphones"></i></i></div>
<h4>Auscultadores AKG K518</h4>
</div>
<div class="prize">
<div class="prize-logo"><i class="fas fa-battery-full"></i></div>
<h4>Power Bank Xiaomi Mi 5000</h4>
</div>
</div>
</div> </div>
<div class="ctf-levels">
<div class="level1-ctf level">
<h3>Web</h3>
<div class="sub-container">
<div class="sub-level">
<h4>1 - WHATSTHEPASSWORD<i>(31 pontos)</i></h4>
<p>Começa esta jornada, com um desafio fácil relacionado com WEB. Talvez desta forma fiques motivado a continuar!</p>
<a href="#"><div class="btn-dwn-ctf"> <h3>Download</h3> <i class="fas fa-file-download"></i></div></a>
</div>
<div class="sub-level">
<h4>2 - ROT13 <i>(37 pontos)</i></h4>
<p> De forma a provares melhor o significado deste concurso, deixamos-te um desafio WEB com alguma análise.</p>
<a href="#"><div class="btn-dwn-ctf"> <h3>Download</h3> <i class="fas fa-file-download"></i></div></a>
</div>
</div>
</div>
<div class="level2-ctf level">
<h3>Analyse</h3>
<div class="sub-container">
<div class="sub-level">
<h4>3 - BURRO <i>(41 pontos)</i></h4>
<p>Com este desafio pomos à prova a tua análise de ficheiros e até pode ser que te rias a completar o 3º de muita diversão.</p>
<a href="https://enei.pt/ctf/Burro.zip"><div class="btn-dwn-ctf"> <h3>Download</h3> <i class="fas fa-file-download"></i></div></a>
</div>
<div class="sub-level">
<h4>4 - WHOAMI <i>(43 pontos)</i></h4>
<p> Vamos lá continuar a desenvolver esse raciocínio, mas desta vez com um pouco de pacotes à mistura. É uma confusão!! </p>
<a href="https://enei.pt/ctf/WHOAMI.zip"><div class="btn-dwn-ctf"> <h3>Download</h3> <i class="fas fa-file-download"></i></div></a>
</div>
</div>
</div>
<div class="level3-ctf level">
<h3>Reverse Engeneering </h3>
<div class="sub-container">
<div class="sub-level">
<h4>5 - REVERSEENGINNERING <i>(47 pontos)</i></h4>
<p> Daqui em diante a dificuldade começa a mudar de direção, vais acompanhar? Fica aqui um desafio de reverse_enginnering, nada de muito complicado (para ti).</p>
<a href="https://enei.pt/ctf/Try_Me.zip"><div class="btn-dwn-ctf"> <h3>Download</h3> <i class="fas fa-file-download"></i></div></a>
</div>
<div class="sub-level">
<h4>6 -OLD <i>(59 pontos)</i></h4>
<p>Prova o cerne destes desafios, explorando, analisando e percebendo como descobrir a flag escondida, o típico desafio crypto.</p>
<a href="https://enei.pt/ctf/OLD.zip"><div class="btn-dwn-ctf"> <h3>Download</h3> <i class="fas fa-file-download"></i></div></a>
</div>
</div>
</div>
<div class="level4-ctf level">
<h3> Crypto</h3>
<div class="sub-container">
<div class="sub-level">
<h4>7 - MASM_IS_LIFE <i>(61 pontos)</i></h4>
<p> Deixamos aqui um desafio destruidor de sonhos, é verdade.. Estás pronto para um bocadinho de assembly? </p>
<a href="https://enei.pt/ctf/ASM_IS_LIFE.zip"><div class="btn-dwn-ctf"> <h3>Download</h3> <i class="fas fa-file-download"></i></div></a>
</div>
<div class="sub-level">
<h4>8 - OLD2 <i>(89 pontos)</i></h4>
<p>Aqui fica a continuação do desafio nº 6, se ainda não o completas-te, não faz sentido continuares este. Se já o fizes-te, então estás pronto para experimentar esta aventura que teve início em 2002 (DosBox). </p>
<a href="https://enei.pt/ctf/OLD2.zip"><div class="btn-dwn-ctf"> <h3>Download</h3> <i class="fas fa-file-download"></i></div></a>
</div>
</div>
</div>
<div class="level5-ctf level">
<h3>Engeneering</h3>
<div class="sub-container">
<div class="sub-level">
<h4>9 - ZIPZIPZIPZIP <i>(101 pontos)</i></h4>
<p>(WARNING) Não aconselhado a pessoas sensíveis, este nível irá exigir de ti algum tempo, raciocínio e conhecimento. Descobre a flag neste desafio propício a dares em louco. (SPOILER ALERT) </p>
<a href="https://enei.pt/ctf/ZIPZIPZIPZIP.zip"><div class="btn-dwn-ctf"> <h3>Download</h3> <i class="fas fa-file-download"></i></div></a>
</div>
<div class="sub-level">
<h4>10 - THE_END <i>(109 pontos)</i></h4>
<p> (WARNING) Nem preciso de comentar... Um nível como este não requer descrições. Boa Sorte! </p>
<a href="https://enei.pt/ctf/THEEND.zip"><div class="btn-dwn-ctf"> <h3>Download</h3> <i class="fas fa-file-download"></i></div></a>
</div>
</div>
</div>
</div>
<div class="explain-qr"> <div class="explain-qr">
<img src="imgs/QRstart.png" alt="app"> <img src="imgs/QRstart.png" alt="app">
<div> <div class="explain">
<h3>No decorrer do concurso sempre que encontrares a Flag, deves criar um QR code com a mesma e efectuar a <h3>Como registar progresso no CTF?</h3>
leitura utilizando a aplicação do envento.</h3> <p>Depois de obter a flag (string) do nível, deves gerar um QR code com a mesma.</p>
<h3>Para começares lê este QR code com a APP</h3> <p>Em seguida, deves usar a App para ler este QR code.</p>
<p>Caso seja válida, a flag irá dar-te acesso ao cromo que representa o nível.</p>
<p>Para testar podes usar este QR code (free points).</p>
<p>Boa sorte, a equipa do ENEI'19</p>
</div> </div>
</div> </div>
<!-- faqs section --> <!-- faqs section -->
<section id="faqs"> <section id="faqs">
<div class="container"> <div class="container">
<div class="row"> <div class="row">
<div class="col-lg-5"> <div class="col-lg-5">
<div class="pre-h1">Perguntas Frequentes</div> <div class="pre-h1">Perguntas Frequentes</div>
<h1>Faq</h1> <h1>Faqs</h1>
<hr> <hr>
</div> </div>
</div> </div>
@ -132,52 +256,26 @@
<div class="col-lg-10"> <div class="col-lg-10">
<ul id="accordion"> <ul id="accordion">
<li> <li>
<a href="#" title="O que é o ENEI?" rel="nofollow" class="toggle">O que é o ENEI?</a> <a href="#" title="Como posso participar?" rel="nofollow" class="toggle">Como posso participar?</a>
<div class="content-accordion"> <div class="content-accordion">
<p>O Encontro Nacional de Estudantes de Informática (ENEI) é um evento que pretende <p> Tal como o descrito acima, basta efetuares a compra do bilhete e fazeres scan do QR code da página do CTF.
oferecer aos estudantes de todo o país um evento que promove a aprendizagem, a troca
de
ideias e o convívio, enquanto tenta criar fortes ligações com o mundo empresarial.
</p> </p>
<p>Esta versão do evento também incluirá os tradicionais momentos de diversão noturnos <p>Deves então prosseguir à descoberta das frases escondidas em cada desafio, e procederes à geração de um QR code com essa string.</p>
que
muito apelam a todos os participantes das antigas edições e são uma excelente via de
networking e transferência de conhecimento!</p>
</div> </div>
</li> </li>
<li> <li>
<a href="#" title="Onde me posso inscrever?" rel="nofollow" class="toggle">Onde me posso <a href="#" title="Quando posso começar?" rel="nofollow" class="toggle">Quando posso começar?
inscrever?</a> inscrever?</a>
<div class="content-accordion"> <div class="content-accordion">
<p>Podes adquirir o teu bilhete <a href="https://tickets.enei.pt" title="Aqui">AQUI</a>. <p> O concurso irá iniciar no domingo (dia 7) às 14:30 horas e terminar no sábado (dia 13) às 00:00 horas.</p>
</p>
</div> </div>
</li> </li>
<li> <li>
<a href="#" title="Quando é o programa vai estar disponível?" rel="nofollow" <a href="#" title="O que tenho eu a ganhar?" rel="nofollow"
class="toggle">Quando é o programa vai estar disponível?</a> class="toggle">O que tenho eu a ganhar?</a>
<div class="content-accordion"> <div class="content-accordion">
<p>O programa vai sendo lançado nas próximas semanas de forma iterativa.</p> <p>Com a realização do concurso não só irás evoluir as tuas competências gerais relacionadas com Informática e Raciocínio Mental, como estás sujeito a ganhar prémios fenomenais.</p>
</div>
</li>
<li>
<a href="#" title="Quem pode participar no evento?" rel="nofollow" class="toggle">Quem pode
participar no evento?</a>
<div class="content-accordion">
<p>Podem participar no ENEI19 todos os estudantes de cursos relacionados com
informática e
todos aqueles que querem aprender mais sobre os temas abordados!</p>
</div>
</li>
<li>
<a href="#" title="Tenho acesso a todas as sessões?" rel="nofollow" class="toggle">Tenho
acesso a todas as sessões?</a>
<div class="content-accordion">
<p>Não, as palestras e workshops necessitam de inscrições visto que têm lugares
limitados.</p>
<p>Brevemente poderás te inscrever na aplicação móvel do ENEI'19!</p>
</div> </div>
</li> </li>
</ul> </ul>
@ -186,36 +284,29 @@
</div> </div>
</section> </section>
<!-- social network section --> <footer>
<aside id="social-network">
<div class="container"> <div class="container">
<div class="row"> <div class="row">
<div class="col-lg-8 col-lg-offset-2"> <div class="col-lg-4 col-xs-6">
<h2>Segue-nos</h2> <p>© 2019 ENEI . Todos os direitos reservados</p>
<ul> </div>
<div class="col-lg-8 col-xs-6">
<ul id="social-network">
<li><a href="https://www.facebook.com/ENEIConf/" title="Facebook" target="_blank" <li><a href="https://www.facebook.com/ENEIConf/" title="Facebook" target="_blank"
class="icon-facebook"></a></li> class="icon-facebook"></a></li>
<li><a href="https://www.instagram.com/eneiconf/" title="Instagram" target="_blank" <li><a href="https://www.instagram.com/eneiconf/" title="Instagram" target="_blank"
class="icon-instagram"></a></li> class="icon-instagram"></a></li>
<li><a href="https://www.linkedin.com/company/enei/" title="Linkedin" target="_blank" <li><a href="https://www.linkedin.com/company/enei/" title="Linkedin" target="_blank"
class="icon-linkedin"></a></li> class="icon-linkedin"></a></li>
<li><a href="mailto:geral@enei.pt" title="Email" target="_blank" class="icon-email"></a></li> <li><a href="mailto:geral@enei.pt" title="Email" target="_blank" class="icon-email"></a>
</li>
</ul> </ul>
</div> </div>
</div> </div>
</div> </div>
</aside>
<!-- footer -->
<footer>
<div class="container">
<div class="row">
<div class="col-lg-12">
<p>© 2019 ENEI . Todos os direitos reservados</p>
</div>
</div>
</div>
</footer> </footer>
<!-- Scripts --> <!-- Scripts -->
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.4/jquery.min.js"></script> <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.4/jquery.min.js"></script>
<script type="text/javascript" src="js/scripts.js"></script> <script type="text/javascript" src="js/scripts.js"></script>
@ -230,4 +321,4 @@
</script> </script>
</body> </body>
</html> </html>

BIN
api/wwwroot/ctf/.DS_Store vendored Normal file

Binary file not shown.

Binary file not shown.

BIN
api/wwwroot/ctf/Burro.zip Normal file

Binary file not shown.

BIN
api/wwwroot/ctf/OLD.zip Normal file

Binary file not shown.

BIN
api/wwwroot/ctf/OLD2.zip Normal file

Binary file not shown.

BIN
api/wwwroot/ctf/THEEND.zip Normal file

Binary file not shown.

BIN
api/wwwroot/ctf/Try_Me.zip Normal file

Binary file not shown.

BIN
api/wwwroot/ctf/WHOAMI.zip Normal file

Binary file not shown.

Binary file not shown.

View File

@ -38,28 +38,9 @@
<h1 id="error-message">404</h1> <h1 id="error-message">404</h1>
</div> </div>
<!-- social network section -->
<aside id="social-network">
<div class="container">
<div class="col-lg-8 col-lg-offset-2">
<h2>Siga-nos</h2>
<ul>
<li><a href="https://www.facebook.com/ENEIConf/" title="Facebook" target="_blank" class="icon-facebook"></a></li>
<li><a href="https://www.instagram.com/eneiconf/" title="Instagram" target="_blank" class="icon-instagram"></a></li>
<li><a href="https://www.linkedin.com/company/enei/" title="Linkedin" target="_blank" class="icon-linkedin"></a></li>
<li><a href="mailto:geral@enei.pt" title="Email" target="_blank" class="icon-email"></a></li>
</ul>
</div>
</div>
</aside>
<!-- footer -->
<footer>
<div class="container">
<div class="col-lg-12">
<p>© 2018 ENEI . Todos os direitos reservados</p>
</div>
</div>
</footer>
<!-- Scripts --> <!-- Scripts -->
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.4/jquery.min.js"></script> <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.4/jquery.min.js"></script>
@ -67,13 +48,14 @@
<!-- Global site tag (gtag.js) - Google Analytics --> <!-- Global site tag (gtag.js) - Google Analytics -->
<script async src=“https://www.googletagmanager.com/gtag/js?id=UA-130588243-1“></script> <script async src=“https://www.googletagmanager.com/gtag/js?id=UA-130588243-1“></script>
<script> <!-- Global site tag (gtag.js) - Google Analytics -->
window.dataLayer = window.dataLayer || []; <script async src="https://www.googletagmanager.com/gtag/js?id=UA-130588243-1"></script>
function gtag(){dataLayer.push(arguments);} <script>
gtag(js, new Date()); window.dataLayer = window.dataLayer || [];
function gtag() { dataLayer.push(arguments); }
gtag(config, UA-130588243-1); gtag('js', new Date());
</script> gtag('config', 'UA-130588243-1');
</script>
</body> </body>

Binary file not shown.

BIN
api/wwwroot/imgs/caching/.DS_Store vendored Normal file

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 124 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 516 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 46 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 88 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 516 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 186 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 79 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 88 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 98 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 125 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 150 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 68 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 86 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 135 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 95 KiB

BIN
api/wwwroot/imgs/caching/nova/.DS_Store vendored Normal file

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 74 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 88 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 108 KiB

BIN
api/wwwroot/imgs/caching/porta/.DS_Store vendored Normal file

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 97 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 128 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 92 KiB

BIN
api/wwwroot/imgs/caching/praca/.DS_Store vendored Normal file

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 150 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 162 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 89 KiB

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 68 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 119 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 111 KiB

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 100 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 89 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 173 KiB

BIN
api/wwwroot/imgs/caching/velha/.DS_Store vendored Normal file

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 100 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 124 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 107 KiB

BIN
api/wwwroot/imgs/flag.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.3 KiB

235
api/wwwroot/main.css Executable file → Normal file
View File

@ -1730,12 +1730,23 @@ footer p {
.ctf-header .ctf-top10 td { .ctf-header .ctf-top10 td {
text-align: center; text-align: center;
} }
@media screen and (max-width: 769px) {
.ctf-header .ctf-top10 {
width: 95%;
padding-top: 20px;
}
}
.ctf-header .about-top { .ctf-header .about-top {
color: white; color: white;
font-size: 15px; font-size: 15px;
text-align: center; text-align: center;
margin: 2%; margin: 2%;
} }
@media screen and (max-width: 769px) {
.ctf-header {
width: 100%;
}
}
.container-app { .container-app {
background-image: linear-gradient(0deg, #d02e2c 20%, #e1494e 100%); background-image: linear-gradient(0deg, #d02e2c 20%, #e1494e 100%);
@ -1860,6 +1871,23 @@ footer p {
width: 60%; width: 60%;
height: 60%; height: 60%;
} }
.login-app .button-default {
padding: 20px;
font-size: 14px;
line-height: 14px;
color: black;
font-weight: 700;
text-transform: uppercase;
border: 1px solid #eeeeee;
padding: 30px 30px;
transition: border-color 150ms ease-out, background-color 150ms ease-out, color 150ms ease-out;
-webkit-transition: border-color 150ms ease-out, background-color 150ms ease-out, color 150ms ease-out;
}
.login-app .button-default:hover {
border-color: #cc1a17;
background-color: #cc1a17;
color: #ffffff;
}
@media screen and (max-width: 769px) { @media screen and (max-width: 769px) {
.login-app { .login-app {
flex-direction: column; flex-direction: column;
@ -2042,9 +2070,9 @@ footer p {
display: flex; display: flex;
color: blue; color: blue;
/* First we need to help some browsers along for this to work. /* First we need to help some browsers along for this to work.
Just because a vendor prefix is there, doesn't mean it will Just because a vendor prefix is there, doesn't mean it will
work in a browser made by that vendor either, it's just for work in a browser made by that vendor either, it's just for
future-proofing purposes I guess. */ future-proofing purposes I guess. */
-o-transition: 0.5s; -o-transition: 0.5s;
-ms-transition: 0.5s; -ms-transition: 0.5s;
-moz-transition: 0.5s; -moz-transition: 0.5s;
@ -2080,12 +2108,37 @@ footer p {
flex: 1; flex: 1;
display: flex; display: flex;
flex-direction: row; flex-direction: row;
padding: 50px;
justify-content: center;
background-image: url("./imgs/bg_phone.png"); background-image: url("./imgs/bg_phone.png");
} }
@media screen and (max-width: 769px) {
.explain-qr {
padding: 10px;
}
}
.explain-qr .explain {
margin: 30px;
}
@media screen and (max-width: 769px) {
.explain-qr .explain {
margin: 10px;
}
}
.explain-qr .explain h3 {
margin-bottom: 0;
color: white;
margin: 20px;
}
.explain-qr .explain p {
color: white;
margin-left: 20px;
}
.explain-qr img { .explain-qr img {
width: 20%; width: 20%;
height: 20%; height: 20%;
margin: 20px; margin: 20px;
align-self: center;
} }
@media screen and (max-width: 769px) { @media screen and (max-width: 769px) {
.explain-qr { .explain-qr {
@ -2096,13 +2149,181 @@ footer p {
height: 100%; height: 100%;
} }
} }
.explain-qr h3 {
color: white;
margin: 30px;
}
.ctf-explain { .ctf-explain {
flex: 1;
display: flex;
flex-direction: row;
background-color: #eeeeee; background-color: #eeeeee;
padding: 40px;
}
.ctf-explain h3 {
padding: 30px;
padding-bottom: 0px;
}
.ctf-explain p {
padding: 30px;
text-align: justify;
text-justify: inter-word;
}
.ctf-explain img {
width: 30%;
height: 30%;
}
@media screen and (max-width: 769px) {
.ctf-explain {
flex-direction: column;
padding: 1px;
}
.ctf-explain img {
width: 100%;
height: 100%;
}
.ctf-explain p {
width: 100%;
padding: 15px;
}
}
.ctf-levels .level1-ctf {
background-color: #de6d6b;
}
.ctf-levels .level2-ctf {
background-color: #d95856;
}
.ctf-levels .level3-ctf {
background-color: #d54341;
}
.ctf-levels .level4-ctf {
background-color: #d02e2c;
}
.ctf-levels .level5-ctf {
background-color: #cc1a17;
}
.ctf-levels .level {
padding: 80px;
}
@media screen and (max-width: 769px) {
.ctf-levels .level {
padding: 30px 10px;
}
}
.ctf-levels .level h3 {
color: white;
padding-left: 30px;
}
.ctf-levels .level .sub-container {
flex: 1;
display: flex;
flex-direction: row;
}
@media screen and (max-width: 769px) {
.ctf-levels .level .sub-container {
flex-direction: column;
}
}
.ctf-levels .level .sub-container .sub-level {
width: 100%;
border: 1px dashed white;
margin: 20px;
padding: 20px;
align-content: center;
flex: 1;
display: flex;
flex-direction: column;
justify-content: center;
}
@media screen and (max-width: 769px) {
.ctf-levels .level .sub-container .sub-level {
padding: 5;
margin: 10px 0;
}
}
.ctf-levels .level .sub-container .sub-level p {
color: black;
text-align: justify;
text-justify: inter-word;
}
.ctf-levels .level .sub-container .sub-level i {
color: #eeeeee;
font-size: 18px;
}
.ctf-levels .level .sub-container .sub-level .btn-dwn-ctf {
flex: 1;
display: flex;
flex-direction: row;
color: white;
width: 40%;
margin: 20px;
text-align: center;
margin: 0 auto;
}
.ctf-levels .level .sub-container .sub-level .btn-dwn-ctf i {
font-size: 30px;
}
.ctf-levels .level .sub-container .sub-level .btn-dwn-ctf:hover {
text-decoration: none;
}
.ctf-levels .level .sub-container .sub-level .btn-dwn-ctf:hover a:hover {
text-decoration: none;
}
.ctf-levels .level .sub-container .sub-level .btn-dwn-ctf h3 {
font-size: 20px;
margin: 10px;
align-content: center;
align-self: center;
}
.ctf-prizes {
padding: 50px;
}
.ctf-prizes h3 {
padding: 30px;
padding-bottom: 0px;
}
.ctf-prizes h5 {
padding-left: 30px;
color: #cc1a17;
}
@media screen and (max-width: 769px) {
.ctf-prizes {
padding: 0;
}
.ctf-prizes h3 {
padding: 20px;
text-align: center;
}
.ctf-prizes h5 {
text-align: center;
padding: 10px;
}
}
.ctf-prizes .prizes-container {
flex: 1;
display: flex;
flex-direction: row;
padding-top: 30px;
}
.ctf-prizes .prizes-container .prize {
flex: 1;
flex-direction: column;
display: flex;
width: 100%;
margin: 20px;
align-content: center;
align-items: center;
}
.ctf-prizes .prizes-container .prize .prize-logo {
font-size: 100px;
}
@media screen and (max-width: 769px) {
.ctf-prizes .prizes-container {
flex-direction: column;
padding-bottom: 20px;
}
.ctf-prizes .prizes-container .prize {
margin: 0;
}
} }
/*# sourceMappingURL=main.css.map */ /*# sourceMappingURL=main.css.map */

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff

BIN
website/.DS_Store vendored

Binary file not shown.

View File

@ -123,11 +123,12 @@
</p> </p>
<p>O login na app é feito usando esse QR code</p> <p>O login na app é feito usando esse QR code</p>
<p>Para obteres a password, deves efectuar reset através da APP, ou preenchendo o campo a baixo.</p> <p>Para obteres a password, deves efectuar reset através da APP, ou preenchendo o campo a baixo.</p>
<form>
<input type="email" placeholder="Introduz o teu email">
<input type="button" data-bind="click: buy" value="RESET PASSWORD"> <input id="email-input" type="email" name="email" placeholder="Introduz o teu email">
</form>
<button class="button-default" onclick="resetPassword()">Reset Password</button>
</div> </div>
</div> </div>
</div> </div>
@ -197,38 +198,38 @@
<h3>Aplicação disponível nas típicas lojas de aplicações.</h3> <h3>Aplicação disponível nas típicas lojas de aplicações.</h3>
<div class="buttons"> <div class="buttons">
<a href="https://itunes.apple.com/WebObjects/MZStore.woa/wa/viewSoftware?id=1457702417&mt=8"> <a href="https://itunes.apple.com/WebObjects/MZStore.woa/wa/viewSoftware?id=1457702417&mt=8">
<div class="button-app"> <div class="button-app">
<div class="button-logo">
<i class="fab fa-apple"></i>
</div>
<div class="button-text">
<h3>Available on the</h3>
<h2>App Store</h2>
</div>
</div>
</a>
<a href="https://play.google.com/store/apps/details?id=pt.enei">
<div class="button-app">
<div class="button-logo"> <div class="button-logo">
<i class="fab fa-google-play"></i> <i class="fab fa-apple"></i>
</div>
<div class="button-text">
<h3>Available on the</h3>
<h2>App Store</h2>
</div>
</div>
</a>
<a href="https://play.google.com/store/apps/details?id=pt.enei">
<div class="button-app">
<div class="button-logo">
<i class="fab fa-google-play"></i>
</div> </div>
<div class="button-text"> <div class="button-text">
<h3>Available on the</h3> <h3>Available on the</h3>
<h2>Play Store</h2> <h2>Play Store</h2>
</div> </div>
</div> </div>
</a> </a>
</div> </div>
</div> </div>
</div> </div>
<!-- faqs section --> <!-- faqs section -->
@ -368,10 +369,65 @@
</div> </div>
</footer> </footer>
<!-- Scripts --> <!-- Scripts -->
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.4/jquery.min.js"></script> <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.4/jquery.min.js"></script>
<script type="text/javascript" src="js/scripts.js"></script> <script type="text/javascript" src="js/scripts.js"></script>
<!-- Global site tag (gtag.js) - Google Analytics -->
<script async src="https://www.googletagmanager.com/gtag/js?id=UA-130588243-1"></script>
<script src="https://unpkg.com/aos@2.3.1/dist/aos.js"></script> <script src="https://unpkg.com/aos@2.3.1/dist/aos.js"></script>
<script src="https://unpkg.com/axios/dist/axios.min.js"></script>
<script>
resetPassword = () => {
var input = document.getElementById("email-input");
if (input != " ") {
console.log(input.value);
axios({
url: `https://tickets.enei.pt/internal/api/User/RecoverPassword?input=${input.value}&type=0`,
method: 'get',
}).then(a => {
console.log(a);
Swal.fire(
'Sucesso!',
'Foi enviado para o teu email um pedido de recuperação. Pode demorar demorar alguns minutos...',
'success'
)
}).catch(err => {
if (err.response.status === 500) {
Swal.fire(
'Utilizador não existe!',
'Verifica se o email é válido, caso o erro continue contacta a comissão organizadora',
'error'
)
}
else {
Swal.fire(
'Erro!',
'Aconteceu algum erro com o teu pedido...',
'error'
)
}
})
} else {
Swal.fire(
'Erro!',
'Deves preencher o campo de email.',
'warning'
)
}
}
</script>
<script src="https://cdn.jsdelivr.net/npm/sweetalert2@8"></script>
<script src="https://cdn.jsdelivr.net/npm/promise-polyfill"></script>
<!-- Global site tag (gtag.js) - Google Analytics --> <!-- Global site tag (gtag.js) - Google Analytics -->
<script async src="https://www.googletagmanager.com/gtag/js?id=UA-130588243-1"></script> <script async src="https://www.googletagmanager.com/gtag/js?id=UA-130588243-1"></script>
<script> <script>

View File

@ -35,6 +35,10 @@
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/js/bootstrap.min.js" <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/js/bootstrap.min.js"
integrity="sha384-ChfqqxuZUCnJSK3+MXmPNIyE6ZbWh2IMqE241rYiqJxyMiZ6OW/JmZQ5stwEULTy" integrity="sha384-ChfqqxuZUCnJSK3+MXmPNIyE6ZbWh2IMqE241rYiqJxyMiZ6OW/JmZQ5stwEULTy"
crossorigin="anonymous"></script> crossorigin="anonymous"></script>
<link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.8.1/css/all.css"
integrity="sha384-50oBUHEmvpQ+1lW4y57PTFmhCaXp0ML5d60M1M7uH2+nqUivzIebhndOJK28anvf" crossorigin="anonymous">
</head> </head>
<body> <body>
@ -98,33 +102,153 @@
</div> </div>
<h3 class="about-top">Estas pontuações refletem o somatório das pontuçãoes dos níveis cumpridos.</h3> <h3 class="about-top">Estas pontuações refletem o somatório das pontuações dos níveis cumpridos.</h3>
</div> </div>
<div class="ctf-explain"> <div class="ctf-explain">
<p>O CTF - capture the flag é um evento onde os participantes têm como objectivo encontrar as flags escondidas. </p> <div>
<p>O nosso CTF não é sobre </p> <h3>O que é o capture the flag?</h3>
<p>
O Capture The Flag é um concurso que vamos realizar diretamente relacionado com o jogo do ENEI, e com os
respetivos prémios espetaculares que temos a oferecer (Nintendo Switch, entre outros).
Este jogo é uma mistura de temas altamente relacionados com Informática, temas como WEB, CRYPTO,
REVERSE_ENGINNERING, e uma mistura de tantos outros. Todos os níveis têm o mesmo objetivo: Encontrar uma
frase (string) que por norma se encontra escondida.
Qualquer um pode participar no jogo (desde que já detenha um bilhete) apenas com um simples scan a este
QR code.
No fim de encontrares a string, deves gerar um QR code com ela e pronto, o nível está completo!
Basta então fazeres um scan a esse QR e obteres todos os pontos que mereces.
</p>
</div> <img src="imgs/flag.png" alt="app">
</div> </div>
<div class="prizes"> <div class="ctf-prizes">
<h3>O que posso ganhar ao realizar estes desafios?</h3> <h3>O que posso ganhar ao realizar estes desafios?</h3>
<p></p> <h5>O CTF vale cerca de 50% dos pontos do jogo do ENEI.</h5>
<div class="prizes-container">
<div class="prize">
<div class="prize-logo"><i class="fab fa-nintendo-switch"></i></div>
<h4>Nitendo Switch</h4>
</div>
<div class="prize">
<div class="prize-logo"><i class="fas fa-volume-up"></i></div>
<h4>Coluna Bluetooth Xiaomi</h4>
</div>
<div class="prize">
<div class="prize-logo"><i class="fas fa-headphones"></i></i></div>
<h4>Auscultadores AKG K518</h4>
</div>
<div class="prize">
<div class="prize-logo"><i class="fas fa-battery-full"></i></div>
<h4>Power Bank Xiaomi Mi 5000</h4>
</div>
</div>
</div> </div>
<div class="ctf-levels">
<div class="level1-ctf level">
<h3>Web</h3>
<div class="sub-container">
<div class="sub-level">
<h4>1 - WHATSTHEPASSWORD<i>(31 pontos)</i></h4>
<p>Começa esta jornada, com um desafio fácil relacionado com WEB. Talvez desta forma fiques motivado a continuar!</p>
<a href="#"><div class="btn-dwn-ctf"> <h3>Download</h3> <i class="fas fa-file-download"></i></div></a>
</div>
<div class="sub-level">
<h4>2 - ROT13 <i>(37 pontos)</i></h4>
<p> De forma a provares melhor o significado deste concurso, deixamos-te um desafio WEB com alguma análise.</p>
<a href="#"><div class="btn-dwn-ctf"> <h3>Download</h3> <i class="fas fa-file-download"></i></div></a>
</div>
</div>
</div>
<div class="level2-ctf level">
<h3>Analyse</h3>
<div class="sub-container">
<div class="sub-level">
<h4>3 - BURRO <i>(41 pontos)</i></h4>
<p>Com este desafio pomos à prova a tua análise de ficheiros e até pode ser que te rias a completar o 3º de muita diversão.</p>
<a href="https://enei.pt/ctf/Burro.zip"><div class="btn-dwn-ctf"> <h3>Download</h3> <i class="fas fa-file-download"></i></div></a>
</div>
<div class="sub-level">
<h4>4 - WHOAMI <i>(43 pontos)</i></h4>
<p> Vamos lá continuar a desenvolver esse raciocínio, mas desta vez com um pouco de pacotes à mistura. É uma confusão!! </p>
<a href="https://enei.pt/ctf/WHOAMI.zip"><div class="btn-dwn-ctf"> <h3>Download</h3> <i class="fas fa-file-download"></i></div></a>
</div>
</div>
</div>
<div class="level3-ctf level">
<h3>Reverse Engeneering </h3>
<div class="sub-container">
<div class="sub-level">
<h4>5 - REVERSEENGINNERING <i>(47 pontos)</i></h4>
<p> Daqui em diante a dificuldade começa a mudar de direção, vais acompanhar? Fica aqui um desafio de reverse_enginnering, nada de muito complicado (para ti).</p>
<a href="https://enei.pt/ctf/Try_Me.zip"><div class="btn-dwn-ctf"> <h3>Download</h3> <i class="fas fa-file-download"></i></div></a>
</div>
<div class="sub-level">
<h4>6 -OLD <i>(59 pontos)</i></h4>
<p>Prova o cerne destes desafios, explorando, analisando e percebendo como descobrir a flag escondida, o típico desafio crypto.</p>
<a href="https://enei.pt/ctf/OLD.zip"><div class="btn-dwn-ctf"> <h3>Download</h3> <i class="fas fa-file-download"></i></div></a>
</div>
</div>
</div>
<div class="level4-ctf level">
<h3> Crypto</h3>
<div class="sub-container">
<div class="sub-level">
<h4>7 - MASM_IS_LIFE <i>(61 pontos)</i></h4>
<p> Deixamos aqui um desafio destruidor de sonhos, é verdade.. Estás pronto para um bocadinho de assembly? </p>
<a href="https://enei.pt/ctf/ASM_IS_LIFE.zip"><div class="btn-dwn-ctf"> <h3>Download</h3> <i class="fas fa-file-download"></i></div></a>
</div>
<div class="sub-level">
<h4>8 - OLD2 <i>(89 pontos)</i></h4>
<p>Aqui fica a continuação do desafio nº 6, se ainda não o completas-te, não faz sentido continuares este. Se já o fizes-te, então estás pronto para experimentar esta aventura que teve início em 2002 (DosBox). </p>
<a href="https://enei.pt/ctf/OLD2.zip"><div class="btn-dwn-ctf"> <h3>Download</h3> <i class="fas fa-file-download"></i></div></a>
</div>
</div>
</div>
<div class="level5-ctf level">
<h3>Engeneering</h3>
<div class="sub-container">
<div class="sub-level">
<h4>9 - ZIPZIPZIPZIP <i>(101 pontos)</i></h4>
<p>(WARNING) Não aconselhado a pessoas sensíveis, este nível irá exigir de ti algum tempo, raciocínio e conhecimento. Descobre a flag neste desafio propício a dares em louco. (SPOILER ALERT) </p>
<a href="https://enei.pt/ctf/ZIPZIPZIPZIP.zip"><div class="btn-dwn-ctf"> <h3>Download</h3> <i class="fas fa-file-download"></i></div></a>
</div>
<div class="sub-level">
<h4>10 - THE_END <i>(109 pontos)</i></h4>
<p> (WARNING) Nem preciso de comentar... Um nível como este não requer descrições. Boa Sorte! </p>
<a href="https://enei.pt/ctf/THEEND.zip"><div class="btn-dwn-ctf"> <h3>Download</h3> <i class="fas fa-file-download"></i></div></a>
</div>
</div>
</div>
</div>
<div class="explain-qr"> <div class="explain-qr">
<img src="imgs/QRstart.png" alt="app"> <img src="imgs/QRstart.png" alt="app">
<div> <div class="explain">
<h3>No decorrer do concurso sempre que encontrares a Flag, deves criar um QR code com a mesma e efectuar a <h3>Como registar progresso no CTF?</h3>
leitura utilizando a aplicação do envento.</h3> <p>Depois de obter a flag (string) do nível, deves gerar um QR code com a mesma.</p>
<h3>Para começares lê este QR code com a APP</h3> <p>Em seguida, deves usar a App para ler este QR code.</p>
<p>Caso seja válida, a flag irá dar-te acesso ao cromo que representa o nível.</p>
<p>Para testar podes usar este QR code (free points).</p>
<p>Boa sorte, a equipa do ENEI'19</p>
</div> </div>
</div> </div>
<!-- faqs section --> <!-- faqs section -->
<section id="faqs"> <section id="faqs">
<div class="container"> <div class="container">
<div class="row"> <div class="row">
<div class="col-lg-5"> <div class="col-lg-5">
<div class="pre-h1">Perguntas Frequentes</div> <div class="pre-h1">Perguntas Frequentes</div>
<h1>Faq</h1> <h1>Faqs</h1>
<hr> <hr>
</div> </div>
</div> </div>
@ -132,52 +256,26 @@
<div class="col-lg-10"> <div class="col-lg-10">
<ul id="accordion"> <ul id="accordion">
<li> <li>
<a href="#" title="O que é o ENEI?" rel="nofollow" class="toggle">O que é o ENEI?</a> <a href="#" title="Como posso participar?" rel="nofollow" class="toggle">Como posso participar?</a>
<div class="content-accordion"> <div class="content-accordion">
<p>O Encontro Nacional de Estudantes de Informática (ENEI) é um evento que pretende <p> Tal como o descrito acima, basta efetuares a compra do bilhete e fazeres scan do QR code da página do CTF.
oferecer aos estudantes de todo o país um evento que promove a aprendizagem, a troca
de
ideias e o convívio, enquanto tenta criar fortes ligações com o mundo empresarial.
</p> </p>
<p>Esta versão do evento também incluirá os tradicionais momentos de diversão noturnos <p>Deves então prosseguir à descoberta das frases escondidas em cada desafio, e procederes à geração de um QR code com essa string.</p>
que
muito apelam a todos os participantes das antigas edições e são uma excelente via de
networking e transferência de conhecimento!</p>
</div> </div>
</li> </li>
<li> <li>
<a href="#" title="Onde me posso inscrever?" rel="nofollow" class="toggle">Onde me posso <a href="#" title="Quando posso começar?" rel="nofollow" class="toggle">Quando posso começar?
inscrever?</a> inscrever?</a>
<div class="content-accordion"> <div class="content-accordion">
<p>Podes adquirir o teu bilhete <a href="https://tickets.enei.pt" title="Aqui">AQUI</a>. <p> O concurso irá iniciar no domingo (dia 7) às 14:30 horas e terminar no sábado (dia 13) às 00:00 horas.</p>
</p>
</div> </div>
</li> </li>
<li> <li>
<a href="#" title="Quando é o programa vai estar disponível?" rel="nofollow" <a href="#" title="O que tenho eu a ganhar?" rel="nofollow"
class="toggle">Quando é o programa vai estar disponível?</a> class="toggle">O que tenho eu a ganhar?</a>
<div class="content-accordion"> <div class="content-accordion">
<p>O programa vai sendo lançado nas próximas semanas de forma iterativa.</p> <p>Com a realização do concurso não só irás evoluir as tuas competências gerais relacionadas com Informática e Raciocínio Mental, como estás sujeito a ganhar prémios fenomenais.</p>
</div>
</li>
<li>
<a href="#" title="Quem pode participar no evento?" rel="nofollow" class="toggle">Quem pode
participar no evento?</a>
<div class="content-accordion">
<p>Podem participar no ENEI19 todos os estudantes de cursos relacionados com
informática e
todos aqueles que querem aprender mais sobre os temas abordados!</p>
</div>
</li>
<li>
<a href="#" title="Tenho acesso a todas as sessões?" rel="nofollow" class="toggle">Tenho
acesso a todas as sessões?</a>
<div class="content-accordion">
<p>Não, as palestras e workshops necessitam de inscrições visto que têm lugares
limitados.</p>
<p>Brevemente poderás te inscrever na aplicação móvel do ENEI'19!</p>
</div> </div>
</li> </li>
</ul> </ul>
@ -186,36 +284,29 @@
</div> </div>
</section> </section>
<!-- social network section --> <footer>
<aside id="social-network">
<div class="container"> <div class="container">
<div class="row"> <div class="row">
<div class="col-lg-8 col-lg-offset-2"> <div class="col-lg-4 col-xs-6">
<h2>Segue-nos</h2> <p>© 2019 ENEI . Todos os direitos reservados</p>
<ul> </div>
<div class="col-lg-8 col-xs-6">
<ul id="social-network">
<li><a href="https://www.facebook.com/ENEIConf/" title="Facebook" target="_blank" <li><a href="https://www.facebook.com/ENEIConf/" title="Facebook" target="_blank"
class="icon-facebook"></a></li> class="icon-facebook"></a></li>
<li><a href="https://www.instagram.com/eneiconf/" title="Instagram" target="_blank" <li><a href="https://www.instagram.com/eneiconf/" title="Instagram" target="_blank"
class="icon-instagram"></a></li> class="icon-instagram"></a></li>
<li><a href="https://www.linkedin.com/company/enei/" title="Linkedin" target="_blank" <li><a href="https://www.linkedin.com/company/enei/" title="Linkedin" target="_blank"
class="icon-linkedin"></a></li> class="icon-linkedin"></a></li>
<li><a href="mailto:geral@enei.pt" title="Email" target="_blank" class="icon-email"></a></li> <li><a href="mailto:geral@enei.pt" title="Email" target="_blank" class="icon-email"></a>
</li>
</ul> </ul>
</div> </div>
</div> </div>
</div> </div>
</aside>
<!-- footer -->
<footer>
<div class="container">
<div class="row">
<div class="col-lg-12">
<p>© 2019 ENEI . Todos os direitos reservados</p>
</div>
</div>
</div>
</footer> </footer>
<!-- Scripts --> <!-- Scripts -->
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.4/jquery.min.js"></script> <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.4/jquery.min.js"></script>
<script type="text/javascript" src="js/scripts.js"></script> <script type="text/javascript" src="js/scripts.js"></script>
@ -230,4 +321,4 @@
</script> </script>
</body> </body>
</html> </html>

BIN
website/ctf/.DS_Store vendored Normal file

Binary file not shown.

BIN
website/ctf/ASM_IS_LIFE.zip Normal file

Binary file not shown.

BIN
website/ctf/Burro.zip Normal file

Binary file not shown.

BIN
website/ctf/OLD.zip Normal file

Binary file not shown.

BIN
website/ctf/OLD2.zip Normal file

Binary file not shown.

BIN
website/ctf/THEEND.zip Normal file

Binary file not shown.

BIN
website/ctf/Try_Me.zip Normal file

Binary file not shown.

BIN
website/ctf/WHOAMI.zip Normal file

Binary file not shown.

Binary file not shown.

View File

@ -38,28 +38,9 @@
<h1 id="error-message">404</h1> <h1 id="error-message">404</h1>
</div> </div>
<!-- social network section -->
<aside id="social-network">
<div class="container">
<div class="col-lg-8 col-lg-offset-2">
<h2>Siga-nos</h2>
<ul>
<li><a href="https://www.facebook.com/ENEIConf/" title="Facebook" target="_blank" class="icon-facebook"></a></li>
<li><a href="https://www.instagram.com/eneiconf/" title="Instagram" target="_blank" class="icon-instagram"></a></li>
<li><a href="https://www.linkedin.com/company/enei/" title="Linkedin" target="_blank" class="icon-linkedin"></a></li>
<li><a href="mailto:geral@enei.pt" title="Email" target="_blank" class="icon-email"></a></li>
</ul>
</div>
</div>
</aside>
<!-- footer -->
<footer>
<div class="container">
<div class="col-lg-12">
<p>© 2018 ENEI . Todos os direitos reservados</p>
</div>
</div>
</footer>
<!-- Scripts --> <!-- Scripts -->
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.4/jquery.min.js"></script> <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.4/jquery.min.js"></script>
@ -67,13 +48,14 @@
<!-- Global site tag (gtag.js) - Google Analytics --> <!-- Global site tag (gtag.js) - Google Analytics -->
<script async src=“https://www.googletagmanager.com/gtag/js?id=UA-130588243-1“></script> <script async src=“https://www.googletagmanager.com/gtag/js?id=UA-130588243-1“></script>
<script> <!-- Global site tag (gtag.js) - Google Analytics -->
window.dataLayer = window.dataLayer || []; <script async src="https://www.googletagmanager.com/gtag/js?id=UA-130588243-1"></script>
function gtag(){dataLayer.push(arguments);} <script>
gtag(js, new Date()); window.dataLayer = window.dataLayer || [];
function gtag() { dataLayer.push(arguments); }
gtag(config, UA-130588243-1); gtag('js', new Date());
</script> gtag('config', 'UA-130588243-1');
</script>
</body> </body>

BIN
website/imgs/.DS_Store vendored

Binary file not shown.

BIN
website/imgs/caching/.DS_Store vendored Normal file

Binary file not shown.

BIN
website/imgs/caching/aac/AAC.jpg Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 124 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 516 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 46 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 88 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 516 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 186 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 79 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 88 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 98 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 125 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 150 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 68 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 86 KiB

Some files were not shown because too many files have changed in this diff Show More