@@ -150,6 +150,13 @@ def mitre_top24(request):
150150def 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
155162def 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
178195def 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+
191209def csrf_transfer_monei_api (request ,recipent ,amount ):
192210 if request .method == "GET" :
193211 cookie = request .COOKIES ['auth_cookiee' ]
0 commit comments