Django fixes
This commit is contained in:
1 parent
30b8c224c1
commit
80dd9e0d07
8 files changed
+50
-87
No files matched your search
@@ -1,17 +1,10 @@
|
|||||||
$(function () {
|
$(function () {
|
||||||
|
|
||||||
var changed = false;
|
|
||||||
|
|
||||||
// Hints
|
// Hints
|
||||||
|
|
||||||
|
|
||||||
function processHints() {
|
|
||||||
$('.hint').replaceWith(function () {
|
$('.hint').replaceWith(function () {
|
||||||
return '<div><a href="#" class="hintlink" onclick="$(this).next().slideToggle(); return false;">Bekijk hint</a>' + $(this).hide()[0].outerHTML + '</div>';
|
return '<div><a href="#" class="hintlink" onclick="$(this).next().slideToggle(); return false;">Bekijk hint</a>' + $(this).hide()[0].outerHTML + '</div>';
|
||||||
});
|
});
|
||||||
$('#difficulty').trigger('change');
|
$('#difficulty').trigger('change');
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
$('#difficulty').change(function (e) {
|
$('#difficulty').change(function (e) {
|
||||||
var option = $(this).find(':selected').val();
|
var option = $(this).find(':selected').val();
|
||||||
@@ -34,40 +27,4 @@ $(function () {
|
|||||||
}).prop('selected', true);
|
}).prop('selected', true);
|
||||||
$('#difficulty').trigger('change');
|
$('#difficulty').trigger('change');
|
||||||
|
|
||||||
function loadPage(page) {
|
|
||||||
$('#quiz').load('/' + page + '.html?cachebuster=' + Math.random(), processHints);
|
|
||||||
}
|
|
||||||
|
|
||||||
function getPage(link) {
|
|
||||||
if (link.lastIndexOf('?') === -1) {
|
|
||||||
return '';
|
|
||||||
}
|
|
||||||
return link.substring(link.lastIndexOf('?') + 1);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Dynamically load pages
|
|
||||||
$('#menu a').click(function (e, element) {
|
|
||||||
var page = getPage(e.target.href);
|
|
||||||
|
|
||||||
window.history.pushState({ page: page }, 'Security', e.target.href);
|
|
||||||
loadPage(page);
|
|
||||||
e.preventDefault();
|
|
||||||
});
|
|
||||||
|
|
||||||
window.onpopstate = function (event) {
|
|
||||||
if (event.state) {
|
|
||||||
loadPage(event.state.page);
|
|
||||||
} else {
|
|
||||||
window.location.href = '/';
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Load page
|
|
||||||
var page = getPage(window.location.href);
|
|
||||||
if (page !== '') {
|
|
||||||
loadPage(page);
|
|
||||||
} else {
|
|
||||||
loadPage('sql');
|
|
||||||
}
|
|
||||||
|
|
||||||
});
|
});
|
||||||
+17
-14
@@ -2,7 +2,7 @@
|
|||||||
<html>
|
<html>
|
||||||
|
|
||||||
<head>
|
<head>
|
||||||
<title>Security 1</title>
|
<title>Web Application Security</title>
|
||||||
<link href="/static/css/bootstrap.min.css" rel="stylesheet" type="text/css">
|
<link href="/static/css/bootstrap.min.css" rel="stylesheet" type="text/css">
|
||||||
<link href="/static/css/bootstrap-responsive.min.css" rel="stylesheet" type="text/css">
|
<link href="/static/css/bootstrap-responsive.min.css" rel="stylesheet" type="text/css">
|
||||||
<link href="/static/css/style.css" rel="stylesheet" type="text/css">
|
<link href="/static/css/style.css" rel="stylesheet" type="text/css">
|
||||||
@@ -12,13 +12,11 @@
|
|||||||
</head>
|
</head>
|
||||||
|
|
||||||
<body>
|
<body>
|
||||||
<form method="POST" id="form-quiz">
|
|
||||||
{% csrf_token %}
|
|
||||||
|
|
||||||
<div class="row-fluid">
|
<div class="row-fluid">
|
||||||
<div class="well span3" id="menu">
|
<div class="well span3" id="menu">
|
||||||
|
|
||||||
<h5>Security 1</h5>
|
<h5>Web Application Security</h5>
|
||||||
<ul>
|
<ul>
|
||||||
<li>
|
<li>
|
||||||
<a href="/sql">SQL Injection</a>
|
<a href="/sql">SQL Injection</a>
|
||||||
@@ -27,34 +25,39 @@
|
|||||||
<a href="/xss">Cross-site Scripting</a>
|
<a href="/xss">Cross-site Scripting</a>
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li>
|
||||||
<a href="/wachtwoorden">Wachtwoorden</a>
|
<a href="/path">Insecure Direct Object References</a>
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li>
|
||||||
<a href="/oauth">OAuth</a>
|
<a href="/wachtwoorden">Wachtwoorden</a>
|
||||||
</li>
|
</li>
|
||||||
|
<!--<li>
|
||||||
|
<a href="/oauth">OAuth</a>
|
||||||
|
</li>-->
|
||||||
<li>
|
<li>
|
||||||
<a href="/certificaten">Certificaten</a>
|
<a href="/certificaten">Certificaten</a>
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<!-- <li>
|
||||||
<a href="/encryptie">Encryptie</a>
|
<a href="/encryptie">Encryptie</a>
|
||||||
</li>
|
</li>-->
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
Moeilijkheidsgraad:
|
Moeilijkheidsgraad:
|
||||||
<select id="difficulty">
|
<select id="difficulty">
|
||||||
<option value="easy">Makkelijk (hints zichtbaar)</option>
|
<option value="easy">Hints zichtbaar</option>
|
||||||
<option value="normal">Normaal (hints optioneel)</option>
|
<option value="normal">Hints optioneel</option>
|
||||||
<option value="hard">Moeilijk (geen hints)</option>
|
<option value="hard">Geen hints</option>
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
<a href="/vm">Download VM</a>
|
||||||
|
</p>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div id="quiz">
|
<div id="quiz" class="span8 offset3">
|
||||||
|
|
||||||
{% block content %}{% endblock %}
|
{% block content %}{% endblock %}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</form>
|
|
||||||
</body>
|
</body>
|
||||||
|
|
||||||
</html>
|
</html>
|
||||||
+11
-28
@@ -42,10 +42,7 @@
|
|||||||
<code class="terminal">openssl x509 -text -in certificaat.crt</code>
|
<code class="terminal">openssl x509 -text -in certificaat.crt</code>
|
||||||
|
|
||||||
<div class="question">
|
<div class="question">
|
||||||
<span class="question-string">Kopieer/plak de inhoud van certificaat.crt (inclusief begin en einde
|
<span class="question-string">Maak een certificaat met je eigen gegevens</span>
|
||||||
<code>-----BEGIN CERTIFICATE-----</code>)</span>
|
|
||||||
{% include "points.html" with points=answers.answer_openssl_selfsigned_certificate.points max="10" %}
|
|
||||||
<textarea class="question-input" name="answer_openssl_selfsigned_certificate">{{ answers.answer_openssl_selfsigned_certificate.string }}</textarea>
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<p>Een certificaat heeft ook altijd een
|
<p>Een certificaat heeft ook altijd een
|
||||||
@@ -65,19 +62,16 @@
|
|||||||
<p>
|
<p>
|
||||||
|
|
||||||
<div class="question">
|
<div class="question">
|
||||||
<span class="question-string">Hoeveel basis verstrekkers vertrouwt jouw systeem? (je mag ook ongeveer een antwoord geven als het lastig tellen is)</span>
|
<span class="question-string">Hoeveel basis verstrekkers vertrouwt jouw systeem?</span>
|
||||||
{% include "points.html" with points=answers.answer_openssl_number_of_issuers.points max="5" %}
|
|
||||||
<input class="question-input" name="answer_openssl_number_of_issuers" value="{{ answers.answer_openssl_number_of_issuers.string }}">
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="question">
|
<div class="question">
|
||||||
<span class="question-string">Bekijk het certificaat van
|
<span class="question-string">Bekijk het certificaat van
|
||||||
<a href="https://facebook.com/" target="_blank">Facebook</a>, welk bedrijf heeft dit certificaat verstrekt?</span>
|
<a href="https://facebook.com/" target="_blank">Facebook</a>, welk bedrijf heeft dit certificaat verstrekt?</span>
|
||||||
{% include "points.html" with points=answers.answer_openssl_facebook_issuer.points max="5" %}
|
|
||||||
<input class="question-input" name="answer_openssl_facebook_issuer" value="{{ answers.answer_openssl_facebook_issuer.string }}">
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<p class="hint">Hint: Het certificaat kan je in alle browsers bekijken door op het slot-ikoontje te klikken</p>
|
<p class="hint">Hint: Het certificaat kan je in de meeste browsers bekijken door op het slot-ikoontje te klikken. In Chrome moet je de
|
||||||
|
Developer Tools openen en kijken in het mapje 'Security'.</p>
|
||||||
|
|
||||||
<h2>Mag ik uw handtekening?</h2>
|
<h2>Mag ik uw handtekening?</h2>
|
||||||
|
|
||||||
@@ -97,20 +91,12 @@
|
|||||||
<p>Zo'n verzoekje kan je vervolgens bij een certificaat autoriteit zoals Thawte of VeriSign inleveren. Voor een paar honderd
|
<p>Zo'n verzoekje kan je vervolgens bij een certificaat autoriteit zoals Thawte of VeriSign inleveren. Voor een paar honderd
|
||||||
euro zijn ze dan bereid om hun handtekening eronder te zetten.</p>
|
euro zijn ze dan bereid om hun handtekening eronder te zetten.</p>
|
||||||
|
|
||||||
<p>Om deze les relatief goedkoop te houden heeft deze site ook een certificaat autoriteit waar je certificaten kan laten ondertekenen:
|
<p>Om deze cursus relatief goedkoop te houden heeft deze site ook een certificaat autoriteit waar je certificaten kan laten
|
||||||
|
ondertekenen:
|
||||||
<a href="/sign" target="signen">Certificaat Autoriteit</a>. Gebruik deze site om jouw certificaat te laten ondertekenen</p>
|
<a href="/sign" target="signen">Certificaat Autoriteit</a>. Gebruik deze site om jouw certificaat te laten ondertekenen</p>
|
||||||
|
|
||||||
<div class="question">
|
<div class="question">
|
||||||
<span class="question-string">Bekijk het certificaat wat je hebt teruggekregen. Welke persoon heeft dit certificaat aan jou verstrekt?</span>
|
<span class="question-string">Bekijk het certificaat wat je hebt teruggekregen. Welke persoon heeft dit certificaat aan jou verstrekt?</span>
|
||||||
{% include "points.html" with points=answers.answer_openssl_site_issuer.points max="5" %}
|
|
||||||
<input class="question-input" name="answer_openssl_site_issuer" value="{{ answers.answer_openssl_site_issuer.string }}">
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="question">
|
|
||||||
<span class="question-string">Plak jouw ondertekende certificaat in onderstaand tekstveld (inclusief begin en einde
|
|
||||||
<code>-----BEGIN CERTIFICATE-----</code>)</span>
|
|
||||||
{% include "points.html" with points=answers.answer_openssl_signed_cert.points max="10" %}
|
|
||||||
<textarea class="question-input" name="answer_openssl_signed_cert">{{ answers.answer_openssl_signed_cert.string }}</textarea>
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<h2>Zelf verstrekken</h2>
|
<h2>Zelf verstrekken</h2>
|
||||||
@@ -118,20 +104,17 @@
|
|||||||
<blockquote>Sometimes, the only one you can trust is yourself.</blockquote>
|
<blockquote>Sometimes, the only one you can trust is yourself.</blockquote>
|
||||||
|
|
||||||
<p>Om zelf verstrekker te spelen heb je helemaal geen speciale certificaten nodig. Je kan namelijk gewoon je eigen certificaat
|
<p>Om zelf verstrekker te spelen heb je helemaal geen speciale certificaten nodig. Je kan namelijk gewoon je eigen certificaat
|
||||||
en sleutel gebruiken die je aan het begin van de les hebt gemaakt. Vraag een medestudent om een Certificate Signing Request
|
en sleutel gebruiken die je aan het begin van de les hebt gemaakt.</p>
|
||||||
van zijn certificaat te geven en onderteken dat met je eigen certificaat. Zoek op internet het commando op waarmee je
|
|
||||||
dat kan doen.</p>
|
|
||||||
|
|
||||||
<div class="question">
|
<div class="question">
|
||||||
<span class="question-string">Plak de inhoud van het certificaat van een medestudent, waar je zelf verstrekker van bent. (inclusief begin en einde
|
<span class="question-string">Vraag een medecursist om een Certificate Signing Request van zijn certificaat te geven en onderteken dat met je eigen
|
||||||
<code>-----BEGIN CERTIFICATE-----</code>)</span>
|
certificaat. Zoek op internet het commando op waarmee je dat kan doen.</span>
|
||||||
{% include "points.html" with points=answers.answer_openssl_sign_other.points max="10" %}
|
|
||||||
<textarea class="question-input" name="answer_openssl_sign_other">{{ answers.answer_openssl_sign_other.string }}</textarea>
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<p>Tip: zorg ervoor dat jouw certificaat standaard wordt geinstalleerd op alle besturingsystemen. Dan kan je goud geld verdienen
|
<p>Tip: zorg ervoor dat jouw certificaat standaard wordt geinstalleerd op alle besturingsystemen. Dan kan je goud geld verdienen
|
||||||
met het ondertekenen van andere certificaten ;)</p>
|
met het ondertekenen van andere certificaten ;)</p>
|
||||||
|
|
||||||
|
<!--
|
||||||
<h2>Websites beveiligen</h2>
|
<h2>Websites beveiligen</h2>
|
||||||
|
|
||||||
<p>Leuk die certificaten, maar laten we niet vergeten dat we er ook nog wat nuttigs mee kunnen doen. Namelijk onze internetverbindingen
|
<p>Leuk die certificaten, maar laten we niet vergeten dat we er ook nog wat nuttigs mee kunnen doen. Namelijk onze internetverbindingen
|
||||||
@@ -320,5 +303,5 @@ sudo service apache2 reload</code>
|
|||||||
{% include "points.html" with points=answers.answer_openssl_letsencrypt_screenshot.points max="0" %}
|
{% include "points.html" with points=answers.answer_openssl_letsencrypt_screenshot.points max="0" %}
|
||||||
<input class="question-input" name="answer_openssl_letsencrypt_screenshot" type="url" value="{{ answers.answer_openssl_letsencrypt_screenshot.string }}">
|
<input class="question-input" name="answer_openssl_letsencrypt_screenshot" type="url" value="{{ answers.answer_openssl_letsencrypt_screenshot.string }}">
|
||||||
</div>
|
</div>
|
||||||
|
-->
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
@@ -1,3 +1,5 @@
|
|||||||
|
{% extends 'base.html' %} {% block content %}
|
||||||
|
|
||||||
<h1>Insecure Direct Object References</h1>
|
<h1>Insecure Direct Object References</h1>
|
||||||
|
|
||||||
<img src="/static/img/imgr.png">
|
<img src="/static/img/imgr.png">
|
||||||
@@ -76,3 +78,5 @@
|
|||||||
<div class="question">
|
<div class="question">
|
||||||
<span class="question-string">Beschrijf hoe je met deze site de inhoud van /etc/geheim.txt kan achterhalen</span>
|
<span class="question-string">Beschrijf hoe je met deze site de inhoud van /etc/geheim.txt kan achterhalen</span>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
{% endblock %}
|
||||||
@@ -1,3 +1,5 @@
|
|||||||
|
{% extends 'base.html' %}{% block content %}
|
||||||
|
|
||||||
<h1>Virtuele machine</h1>
|
<h1>Virtuele machine</h1>
|
||||||
|
|
||||||
<p>Tijdens deze cursus gaan we hacken leren door het te doen. Helaas voor ons zijn de meeste bedrijfsnetwerken zeer pinnig op
|
<p>Tijdens deze cursus gaan we hacken leren door het te doen. Helaas voor ons zijn de meeste bedrijfsnetwerken zeer pinnig op
|
||||||
@@ -26,3 +28,5 @@
|
|||||||
<li>Maak een
|
<li>Maak een
|
||||||
<a href="https://www.ubuntu.com/download/desktop" target="_blank">Ubuntu</a> VM en ga in deze VM met Firefox naar het IP adres</li>
|
<a href="https://www.ubuntu.com/download/desktop" target="_blank">Ubuntu</a> VM en ga in deze VM met Firefox naar het IP adres</li>
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
|
{% endblock %}
|
||||||
@@ -1,3 +1,5 @@
|
|||||||
|
{% extends 'base.html' %} {% block content %}
|
||||||
|
|
||||||
<h1>Wachtwoorden</h1>
|
<h1>Wachtwoorden</h1>
|
||||||
|
|
||||||
<img src="/static/img/password.png" class="center-block">
|
<img src="/static/img/password.png" class="center-block">
|
||||||
@@ -35,7 +37,8 @@
|
|||||||
</i>. Aanvallers hebben de hashes van alle veel gebruikte wachtwoorden, korte lettercombinaties en woordenboekwoorden al berekend
|
</i>. Aanvallers hebben de hashes van alle veel gebruikte wachtwoorden, korte lettercombinaties en woordenboekwoorden al berekend
|
||||||
en opgeslagen in zogenaamde rainbow tables. Terug opzoeken wat de originele waarde van een hash was wordt dan zo simpel
|
en opgeslagen in zogenaamde rainbow tables. Terug opzoeken wat de originele waarde van een hash was wordt dan zo simpel
|
||||||
als een simpele query uitvoeren. Mits de waarde in de tabel zit natuurlijk, en dat is meteen ook de verdediging tegen deze
|
als een simpele query uitvoeren. Mits de waarde in de tabel zit natuurlijk, en dat is meteen ook de verdediging tegen deze
|
||||||
aanval:</p>
|
aanval:
|
||||||
|
</p>
|
||||||
|
|
||||||
<h3>Salt</h3>
|
<h3>Salt</h3>
|
||||||
<p>Om te voorkomen dat zwakke veelvoorkomende kunnen worden teruggevonden in een rainbow table kan je er een salt achter plakken
|
<p>Om te voorkomen dat zwakke veelvoorkomende kunnen worden teruggevonden in een rainbow table kan je er een salt achter plakken
|
||||||
@@ -386,4 +389,4 @@
|
|||||||
|
|
||||||
return temp.toLowerCase();
|
return temp.toLowerCase();
|
||||||
}
|
}
|
||||||
</script>
|
</script> {% endblock %}
|
||||||
@@ -1,3 +1,4 @@
|
|||||||
|
{% extends 'base.html' %} {% block content %}
|
||||||
<style>
|
<style>
|
||||||
.screenshot {
|
.screenshot {
|
||||||
box-shadow: 0 0 15px #888;
|
box-shadow: 0 0 15px #888;
|
||||||
@@ -242,3 +243,5 @@
|
|||||||
<div class="question">
|
<div class="question">
|
||||||
<span class="question-string">Met welke URL kan je 'XSS' in een alert printen?</span>
|
<span class="question-string">Met welke URL kan je 'XSS' in een alert printen?</span>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
{% endblock %}
|
||||||
@@ -25,9 +25,15 @@ def home(request, url):
|
|||||||
template = 'bonus.html'
|
template = 'bonus.html'
|
||||||
elif url == 'oauth':
|
elif url == 'oauth':
|
||||||
template = 'oauth.html'
|
template = 'oauth.html'
|
||||||
|
elif url == 'vm':
|
||||||
|
template = 'vm.html'
|
||||||
else:
|
else:
|
||||||
return HttpResponseNotFound('404')
|
return HttpResponseNotFound('404')
|
||||||
|
|
||||||
|
# Temp
|
||||||
|
if 'vm' in request.GET:
|
||||||
|
template = 'vm.html'
|
||||||
|
|
||||||
return render(request, template)
|
return render(request, template)
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in new issue
Block a user