Wargame & CTF/picoCTF

[picoCTF][Reverse Engineering]vault-door-5 문제 풀이

seomj 2021. 1. 4. 12:07

문제

 

풀이

파일 형식을 보니 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 값을 알아내면 된다

 

※이 사이트를 이용하여 문제를 풀었다

 

Modular conversion, encoding and encryption online

Web app offering modular conversion, encoding and encryption online. Translations are done in the browser without any server interaction. This is an Open Source project, code licensed MIT.

cryptii.com

 

expected의 값을 정리하여 넣어준 다음

base64로 인코딩한 값이 해당 값이 되도록 설정

-> 왼쪽의 text와 bytes를 통해 urlEncoded의 값을 알아냄

 

이를 url인코딩한 값이 되도록 설정

-> 왼쪽의 text 값이 password 값이 된다

 

 

picoCTF{c0nv3rt1ng_fr0m_ba5e_64_0b957c4f}