CTF/리버싱

[Space Heroes CTF] Acheron - 리버싱 / IDA

SecurityMan 2023. 4. 30. 11:00

 

beginniner-friendly 난이도의 리버싱 문제

 

IDA 만 사용할 줄 안다면 쉽게 풀 수 있다.

 

친절하게 문제 서버에 접속할 수 있는 pwntool 파이썬 코드도 같이 주어진다.

 

반응형

 

 

우선 주어진 파이썬 코드로 접속해봤다.

 

접속하니 적대적인 외계 행성에서 길을 잃었다고

 

우주선으로 돌아가야 한다고 한다.

 

그리고 사용자 입력을 받는데

 

입력값은 N, S, E, W 만 가능하다고 나와있다.

 

상상해본건데 체스판 같은곳에 내가 있고

 

동서남북으로 특정한 패턴으로 움직이면 우주선에 도달할 수 있는듯 하다.

 

 

입력값에 N, S, E, W 가 아닌 test 라고 입력해봤는데

 

우주선을 찾지 못했다면서 interactive 가 꺼져버린다.

 

 

문제에서 주어진 바이너리 파일인 Acheron 을 IDA 로 열어본다.

 

 

main 함수의 수도코드르 ㄹ보면

 

s 에 사용자 입력값을 담아 s의 각 자리의 값이 특정한 값과 일치하는지 비교하고 있다.

 

비교한 뒤 다르면 sub_1169() 가 실행되는데

 

 

sub_1169() 은 아까 봤던 실패문구이다.

 

 

모든 과정을 다 통과하면 success() 가 실행되고

 

 

success() 가 실행되면 플래그를 읽을 수 있다.

 

그럼 간단하게 각 자리에 맞는 입력값을 넣어주기만 하면 된다.

 

 

CyberChef(https://gchq.github.io/CyberChef) 에서 디코딩을 해보면

 

이렇게 어느방향으로 움직여야 하는지 쉽게 알 수 있다.

 

 

다시 접속해서 올바른 방향을 입력해주면

 

플래그가 출력되는것을 볼 수 있다.

반응형