김승현
[PicoGym] picoCTF JAuth 풀이 본문
이번 문제는 설명이 긴데 그냥 다른 툴이나 그런 걸 그대로 가져다 써서 취약점이 발견되는 경우도 많고 뭐 그냥 admin으로 로그인 하라는 내용이고 test/Test123!로 임시 로그인 해볼 수 있다고 한다.
접속해보자.
접속하면 이런 로그인창이 뜬다. test/Test123!로 로그인 해보자.
testing page에 접속은 했지만 아무것도 볼 순 없다고 한다. cookie 값도 확인 해보자.
토큰이라는 이름으로 쿠키 값이 하나 있다.
eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJhdXRoIjoxNjg0ODI0MDIxNjg1LCJhZ2VudCI6Ik1vemlsbGEvNS4wIChXaW5kb3dzIE5UIDEwLjA7IFdpbjY0OyB4NjQpIEFwcGxlV2ViS2l0LzUzNy4zNiAoS0hUTUwsIGxpa2UgR2Vja28pIENocm9tZS8xMTMuMC41NjcyLjEyNyBTYWZhcmkvNTM3LjM2Iiwicm9sZSI6InVzZXIiLCJpYXQiOjE2ODQ4MjQwMjJ9.jIaO1kFiaM82QqwJGm7LAD8xRJDHsinE-JTLnhotFug
잘 보면 두 개의 점이 찍혀있다. 이런 식으로 된 거는 jwt라는 json web token이 있다. 해독 사이트에 가보자.
오른쪽을 보면 role이 일단 user로 되어있다. 헤더의 alg를 none으로, role을 admin으로 바꾸고 시그니쳐를 삭제해주자
이렇게 바꿔줬다. 여기서 디코더 내용을 바꾸면 인코딩 내용이 바뀔 수도 있는데 이때는 그냥 base64로 인코딩해서
값을 넣어줘도 된다. 인코딩된 값을 쿠키에 넣어보자.
아래는 입력한 쿠키 값이다. (원래 점 두 개를 이용해서 헤더, 페이로드, 시그니쳐 세 개의 파트로 나눠지기 때문에
none을 이용해서 시그니쳐를 무시한다고 해도 payload[보라색] 끝에 .을 붙여줘야 된다)
eyJ0eXAiOiJKV1QiLCJhbGciOiJub25lIn0.eyJhdXRoIjoxNjg0ODI3NTkwNjY5LCJhZ2VudCI6Ik1vemlsbGEvNS4wIChXaW5kb3dzIE5UIDEwLjA7IFdpbjY0OyB4NjQpIEFwcGxlV2ViS2l0LzUzNy4zNiAoS0hUTUwsIGxpa2UgR2Vja28pIENocm9tZS8xMTMuMC4wLjAgU2FmYXJpLzUzNy4zNiIsInJvbGUiOiJhZG1pbiIsImlhdCI6MTY4NDgyNzU5MX0.
이렇게 넣고 f5(새로고침)을 하면
짠
까먹고 끝에 .을 안 넣어서 계속 flag가 안 나와서 당황했다ㅎㅎ....
'Web > PicoGym' 카테고리의 다른 글
[PicoGym] picoCTF Cookies 풀이 (0) | 2023.05.23 |
---|---|
[PicoGym] picoCTF GET aHEAD 풀이 (0) | 2023.05.23 |
[PicoGym] picoCTF Client-side-again 풀이 (0) | 2023.05.23 |
[PicoGym] picoCTF Roboto Sans 풀이 (0) | 2023.05.23 |
[PicoGym] picoCTF Irish-Name-Repo 3 풀이 (0) | 2023.05.23 |