Skip to content

Commit 4395e7e

Browse files
author
patched.codes[bot]
committed
Patched introduction/mitre.py
1 parent 3afd6ec commit 4395e7e

File tree

1 file changed

+25
-7
lines changed

1 file changed

+25
-7
lines changed

introduction/mitre.py

Lines changed: 25 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -150,6 +150,13 @@ def mitre_top24(request):
150150
def mitre_top25(request):
151151
if request.method == 'GET':
152152
return render(request, 'mitre/mitre_top25.html')
153+
import os
154+
import hashlib
155+
import secrets
156+
from django.shortcuts import render, redirect
157+
import jwt
158+
from .models import CSRF_user_tbl
159+
from datetime import datetime, timedelta
153160

154161
@authentication_decorator
155162
def csrf_lab_login(request):
@@ -158,23 +165,33 @@ def csrf_lab_login(request):
158165
elif request.method == 'POST':
159166
password = request.POST.get('password')
160167
username = request.POST.get('username')
161-
password = md5(password.encode()).hexdigest()
162-
User = CSRF_user_tbl.objects.filter(username=username, password=password)
168+
salt = secrets.token_bytes(16)
169+
password_hash = hashlib.scrypt(password.encode(), salt=salt, n=16384, r=8, p=1)
170+
User = CSRF_user_tbl.objects.filter(username=username, password=password_hash)
163171
if User:
164172
payload ={
165173
'username': username,
166-
'exp': datetime.datetime.utcnow() + datetime.timedelta(seconds=300),
167-
'iat': datetime.datetime.utcnow()
174+
'exp': datetime.utcnow() + timedelta(seconds=300),
175+
'iat': datetime.utcnow()
168176
}
169-
cookie = jwt.encode(payload, 'csrf_vulneribility', algorithm='HS256')
177+
jwt_secret = os.environ.get('JWT_SECRET')
178+
if not jwt_secret:
179+
raise ValueError("JWT_SECRET environment variable not set")
180+
cookie = jwt.encode(payload, jwt_secret, algorithm='HS256')
170181
response = redirect("/mitre/9/lab/transaction")
171-
response.set_cookie('auth_cookiee', cookie)
182+
response.set_cookie('auth_cookiee', cookie, secure=True, httponly=True, samesite='Lax')
172183
return response
173184
else :
174185
return redirect('/mitre/9/lab/login')
186+
from django.shortcuts import render, redirect
187+
from django.views.decorators.csrf import ensure_csrf_cookie
188+
from .models import CSRF_user_tbl
189+
import jwt
190+
from .auth import authentication_decorator
191+
175192

176193
@authentication_decorator
177-
@csrf_exempt
194+
@ensure_csrf_cookie
178195
def csrf_transfer_monei(request):
179196
if request.method == 'GET':
180197
try:
@@ -188,6 +205,7 @@ def csrf_transfer_monei(request):
188205
except:
189206
return redirect('/mitre/9/lab/login')
190207

208+
191209
def csrf_transfer_monei_api(request,recipent,amount):
192210
if request.method == "GET":
193211
cookie = request.COOKIES['auth_cookiee']

0 commit comments

Comments
 (0)