CTF 🚩/2022

Square CTF 2022 - ezpwn1

L_Chae 2022. 11. 22. 15:32

 

vi 명령어로 코드부터 살펴보면

16만큼의 command 배열이 있고

8만큼의 way_too_small_input_buf 배열을 확인할 수 있음

 

프로그램을 실행하면 다음과 같이 puts()의 안의 문자열이 출력되면서

way_ ~와 command를 합친 0에서 24까지의 문자를 읽어오는것 같음

 

no를 입력할 경우 if문의 해당 메시지를 출력하며 프로그램을 종료하고

way_too_small_input_buf에 적힌 문자열을 출력하면서 command 명령어를 시작하는것 같음

= command 배열 안에다가 뭘 적거나 하면 flag를 출력할 수 있을듯?

 

문제 힌트를 살펴봤더니 aaaaaaaa/bin/bash 라는 힌트가 있어서

way_too_small_input_buf를 모두 a로 채우고 뒤에 system이 들어가는 곳에다가 디렉토리를 이동해서 cat으로 flag를 출력하는 코드를 입력하면 될것같음

 

근데 코드가 길어서 command에 다 안들어가는것 같음..

그래서 검색 명령어 옵션을 이용해서 flag를 출력하도록 했음

 

참고한 블로그 글 : https://coding-factory.tistory.com/804