본문 바로가기

Pwnable/Dreamhack

[Pwnable] Dreamhack_ basic_exploitation_000

https://dreamhack.io/wargame/challenges/2/

 

basic_exploitation_000

Description 이 문제는 서버에서 작동하고 있는 서비스(basicexploitation000)의 바이너리와 소스 코드가 주어집니다. 프로그램의 취약점을 찾고 익스플로잇해 셸을 획득한 후, "flag" 파일을 읽으세요. "fla

dreamhack.io


먼저 실행을 시켜보자!

실행시킬 때마다 버퍼의 위치가 달라진다.

 

코드를 확인해보니 버퍼는 128바이트고 scanf로 141만큼 입력받을 수 있단다.

그리고 직접 입력해보니 버퍼 출력 후 132개의 문자를 입력하면 아무 반응이 없는데 133개부터 Segmentation fault가 발생했다.

 

찾아보니 pwntool에서 shell 주소를 제공하는데

Scanf는  \x09, \x0a, \x0b, \x0c, \x0d, \x20를 못 읽어서 25바이트 쉘코드를 사용하지 않는다고 한다.

 

그러면 26바이트 쉘코드를 사용해야 하는데, 132개 문자 중에 26바이트를 쉘코드로 넣고 나머지 106바이트는 아무 값으로 채워준 후에

실행시킬 때마다 바뀌는 버퍼의 값을 넣어주면 쉘을 얻을 수 있을 것 같다!

 

실행 때마다 바뀌는 버퍼 값을 받아오는 코드는 처음 작성해보았다!

머리에 잘 남겨둬야지

 

위 코드를 실행시키면 쉘을 탈취할 수 있고, 이전 문제들과 같이 flag 파일을 열어서 확인하면 된다!

'Pwnable > Dreamhack' 카테고리의 다른 글

[Pwnable] Dreamhack_ basic_exploitation_002  (0) 2022.08.26
[Pwnable] Dreamhack_out_of_bound  (0) 2022.08.26
[Pwnable] Dreamhack_oneshot  (0) 2022.08.26