merge duvidoso
|
@ -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"
|
||||||
}
|
}
|
||||||
|
|
|
@ -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>
|
||||||
|
|
|
@ -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),
|
||||||
|
|
||||||
|
|
|
@ -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");
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,7 @@
|
||||||
|
namespace api.Dtos
|
||||||
|
{
|
||||||
|
public class reset
|
||||||
|
{
|
||||||
|
public string email { get; set; }
|
||||||
|
}
|
||||||
|
}
|
|
@ -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>
|
||||||
|
|
|
@ -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>
|
|
@ -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>
|
|
@ -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>
|
|
@ -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>
|
|
@ -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>
|
||||||
|
|
|
@ -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 ENEI’19 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>
|
||||||
|
|
|
@ -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>
|
||||||
|
|
||||||
|
|
After Width: | Height: | Size: 124 KiB |
After Width: | Height: | Size: 516 KiB |
After Width: | Height: | Size: 46 KiB |
After Width: | Height: | Size: 88 KiB |
After Width: | Height: | Size: 6.6 KiB |
After Width: | Height: | Size: 516 KiB |
After Width: | Height: | Size: 186 KiB |
After Width: | Height: | Size: 79 KiB |
After Width: | Height: | Size: 88 KiB |
After Width: | Height: | Size: 98 KiB |
After Width: | Height: | Size: 125 KiB |
After Width: | Height: | Size: 150 KiB |
After Width: | Height: | Size: 68 KiB |
After Width: | Height: | Size: 86 KiB |
After Width: | Height: | Size: 135 KiB |
After Width: | Height: | Size: 95 KiB |
After Width: | Height: | Size: 74 KiB |
After Width: | Height: | Size: 88 KiB |
After Width: | Height: | Size: 108 KiB |
After Width: | Height: | Size: 97 KiB |
After Width: | Height: | Size: 128 KiB |
After Width: | Height: | Size: 92 KiB |
After Width: | Height: | Size: 150 KiB |
After Width: | Height: | Size: 162 KiB |
After Width: | Height: | Size: 89 KiB |
After Width: | Height: | Size: 68 KiB |
After Width: | Height: | Size: 119 KiB |
After Width: | Height: | Size: 111 KiB |
After Width: | Height: | Size: 100 KiB |
After Width: | Height: | Size: 89 KiB |
After Width: | Height: | Size: 173 KiB |
After Width: | Height: | Size: 100 KiB |
After Width: | Height: | Size: 124 KiB |
After Width: | Height: | Size: 107 KiB |
After Width: | Height: | Size: 9.3 KiB |
|
@ -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 */
|
||||||
|
|
102
website/app.html
|
@ -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>
|
||||||
|
|
213
website/ctf.html
|
@ -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 ENEI’19 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>
|
||||||
|
|
|
@ -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>
|
||||||
|
|
||||||
|
|
After Width: | Height: | Size: 124 KiB |
After Width: | Height: | Size: 516 KiB |
After Width: | Height: | Size: 46 KiB |
After Width: | Height: | Size: 88 KiB |
After Width: | Height: | Size: 6.6 KiB |
After Width: | Height: | Size: 516 KiB |
After Width: | Height: | Size: 186 KiB |
After Width: | Height: | Size: 79 KiB |
After Width: | Height: | Size: 88 KiB |
After Width: | Height: | Size: 98 KiB |
After Width: | Height: | Size: 125 KiB |
After Width: | Height: | Size: 150 KiB |
After Width: | Height: | Size: 68 KiB |
After Width: | Height: | Size: 86 KiB |