감자 텃밭

[HackCTF] 1996 본문

my_study/HackCTF

[HackCTF] 1996

g2h 2021. 8. 9. 21:39

이번에 풀어볼 문제는 Hackctf의 1996 문제이다 이번 문제는 생각보다? 단순했다

일단 해당 프로그램을 실행시켜 보았다.

특정 문자열이 출력되고 입력을 받을 수 있도록 되어있다.. 흠 일단 어떠한

메모리 보호 기법이 적용되어있는지도 확인해 보았다.

이번 프로그램에도 NX가 걸려있었다 그럼 쉘코드는 실행이 되지 않는 것이다.

IDA를 통해 좀 더 상세히 분석을 해보았다.

이번 프로그램도 C++로 작성되어있었다 C++에 무지한 나에게는 정말 당황스러운 코드였다

하지만 침착히 살펴보았다

name변수에  1040만큼의 공간이 할당되었고 name에 특정 값을 입력하는 거 같았다 (추측)

그럼 일단 bof가 일어난다는 것이고 쉘 코드는 실행이 되지 않는다면 해당 프로그램에 힌트가 될만한 함수가 있는지 확인해보았다 

역시.. /bin/bash 쉘을 실행시켜주는 함수가 존재하였다 이를 통해 1040+8+spawn_shell함수를 넣으면 쉘이 따지는 단순한 문제였다!! 이때까지도 의심을 했다 이렇게 단순하다고?? 해당 코드는 아래와 같이 작성하였다.

그 후 실행시켰더니

성공적으로 쉘을 획득하였다

c++이라 당황했지만 침착하게 추측하면서 풀었더니 매우 단순한 문제였다.

'my_study > HackCTF' 카테고리의 다른 글

[HackCTF] Beginner_Heap  (0) 2021.08.10
[HackCTF] random  (0) 2021.08.09
[HackCTF] Poet  (0) 2021.08.09
g++ pwn  (0) 2021.07.23
bof_pie  (0) 2021.07.22