zer0pts 2021 - not beginners rev

2021. 3. 12. 05:280x07 CTF/[스스로 푼 것]

728x90

새벽에 잠이 안와서 최근 대회 문제 중 zer0pts의 문제를 풀어보기로 했다. 14명 밖에 풀지 못하여 꽤 어려울 거 같지만 도전! 

오늘의 컨셉은 실시간으로 푸는 듯한 컨셉으로 진행한다. 며칠이 걸릴 수도 있다... 

 

시작 시간 : 12 March 4:00 AM (SGT) 

 


1. 프로그램 취지를 파악하라.

프로그램의 취지를 파악하기 좋은 방법 중 하나는 직접 실행해보는 것이다. 2번의 실행을 통해 고정 값이 3개임을 파악할 수 있다.

  • 입력 값 한번 입력하는 구간 존재
  • 입력 값을 통해 특정 연산을 취하는 구간 존재 

2. 고정 된 3개의 값은 어디에? 

상단의 동적분석에서 얻게 된 값이 어디에 있는지 파악해보면 좋을 거 같다는 생각을 할 수 있다. 

0x5aaf63e5c1f262bf, 0xa967ff06da3b455c, 0xee8d95ecc2ae3151

 

그전에 Lucky ! 해당 바이너리는 non strip 상태이다. 입력함수에 브레이크 포인트를 쉽게 설치할 수 있다.

입력 값을 hello로 주었을 때 R13 레지스터에 hello의 시작주소가 들어가게 된다.

 

아래의 2개 사진은 무슨 값인지 잘 모르겠다.

잠깐? stack_shadow는 뭘까?

  • 스택에 저장 된 반환주소가 변조되지 않도록 보호하는 것

 

위의 2개의 사진은 

>>> hex(0x6a09e667f3bcc908^0xe23d6f05889479ca)
'0x883489627b28b0c2L' 아직 위에서 바라 봤던 고정 값이 아니다.

main 코드가 너무 긴 것 같으니 정적으로 쓱 훑어보면, ........ 

다른 거 할일이 있어 to be continue... 

'0x07 CTF > [스스로 푼 것]' 카테고리의 다른 글

HacktheBox CTF coding problem  (0) 2021.04.24
AeroCTF2021 Dummyper  (0) 2021.03.02
[REV] COMPEST - CreeptiCity  (0) 2020.09.12
HexionCTF XOR - Crypto  (0) 2020.04.18
ISITDTU CTF Reversing inter  (0) 2018.08.03