문제
풀이
파일 형식을 보니 java인 것을 확인
bintext를 사용하여 코드를 확인
(문제를 푸는데 중요한 부분의 코드)
checkPassword를 분석
urlEncoded = urlEncode(password.getBytes());
password를 바이트로 변환한 것을 url인코딩을 하여 urlEncoded에 저장
※getBytes() 메소드 : Java 문자열을 바이트로 변환
base64Encoded = base64Encode(urlEncoded.getBytes());
urlEncoded를 바이트로 변환하여 base64인코딩을 하여 base64Encoded에 저장
return base64Encoded.equals(expected);
base64Encoded와 expected의 내용을 비교
base64Encoded와 expected의 내용을 같으면 문제가 해결
-> expected의 값을 가지고 거꾸로 진행하여 password 값을 알아내면 된다
※이 사이트를 이용하여 문제를 풀었다
expected의 값을 정리하여 넣어준 다음
base64로 인코딩한 값이 해당 값이 되도록 설정
-> 왼쪽의 text와 bytes를 통해 urlEncoded의 값을 알아냄
이를 url인코딩한 값이 되도록 설정
-> 왼쪽의 text 값이 password 값이 된다
picoCTF{c0nv3rt1ng_fr0m_ba5e_64_0b957c4f}
'Wargame & CTF > picoCTF' 카테고리의 다른 글
[picoCTF][Reverse Engineering]asm2 문제 풀이 (1) | 2021.01.07 |
---|---|
[picoCTF][Web Exploitation]Irish-Name-Repo 1 문제 풀이 (0) | 2021.01.05 |
[picoCTF][Web Exploitation]where are the robots 문제 풀이 (0) | 2021.01.03 |
[picoCTF][Web Exploitation]dont-use-client-side 문제 풀이 (0) | 2021.01.02 |
[picoCTF][Web Exploitation]logon 문제 풀이 (0) | 2021.01.02 |