4번째 풀이 문제이다!
Solveme는 몇일을 고민하게 했지만 다른문제로 실력을 더 쌓은 뒤 풀기로 기약하고..!
(내 스스로 500문제를 풀어내는것이 목표이기 때문에!)

CodeShell 이란 사이트! 이 사이트는 회원가입하는 것부터 문제가 있었지만
음.. 문제로 치기에는 양심이..! 
정식 문제로 500문제를 채울것이다!

첫 문제로 dummy64!
웹 문제이다. 포너블 문제 등은 지금 시스템 공부가 어느정도 되면 어서어서 해보고 싶다.!!



(dummy64)


문제 페이지 이다.



(문제 코드)



문제 코드를 보니! 예전에 다른 비슷한 문제를 푼 기억이 난다.
이 문제는 역으로 계산해서 flag를 찾아야 하는 것이다.!
우선 출력되는 것을 확인해보자!



(flag)



코드에 따르면 이 값은 역순으로 되어있다. 차근차근 하나씩 역으로 올라가면서 풀어주면 쉽겠구나! 생각이 들었다.

파이썬을 이용했다.



(문자열 뒤집기)



얻은 값을 Base 64로 인코딩!



(Base64 인코딩)



인코딩 후 이제 이 값이 encode 함수에 의해 처리되었으므로 
return 부분을 살펴보면 base64로 디코딩되서 bin2hex니까 나는 반대로
hex2bin 해준 후 base64로 인코딩하면 원래 data가 나온다.


(원래 data)




이제 이 data들을 XOR 연산을 해주는데
XOR 연산의 특징이 기억났다.
바로 
A ^ B = C
A ^ C = B
라는 것! 가물가물해서 다시 확인해보았다. ㅎㅎ



(14 ^ 2 = 12)


(12 ^ 2 = 14)




맞는걸 확인 할 수 있다!

값을 보면 길이가 2보다 작으면 자세히는 뭔지 모르겠지만 안되는것 같다.!
즉 2개씩 끊어서 해석해주면 된다.

2개씩 끊어서 역으로 아스키코드값을 구해낸다.



(아스키 코드)




이 값을 문자로 치환해주니 
flag가 바로 나왔다 :)


(문제 해결)




문제 해결!

'WarGame > 500 Project' 카테고리의 다른 글

(6/500) Wargame.kr - flee button  (0) 2017.04.11
(5/500) Wargame.kr - QR Code Puzzle  (0) 2017.04.11
(3/500) Solve Me - Winter Sleep  (0) 2017.04.06
(2/500) Solve Me - Bad Compare  (0) 2017.04.06
(1/500) Solve Me - Warm up  (0) 2017.04.06

+ Recent posts