본문 바로가기

Wargame, CTF/protostar

stack6

소스코드

쉘을 실행시키는 문제

if문을 보면 ret가 실행할 스택의 주소가 FF******인지 검사하고

여기에 걸리면 나가버리는 문장이다 

이구간을 피하면서 쉘을 실행 시켜야하는데 5번이랑 똑같이 풀면된다

system함수의 주소는FF로 시작하지 않기 때문에 걸리지 않을 것임

gdb main문
gdb getpath문

구해야할 것

buffer에서 ret까지의 거리

system함수의 위치

/bin/sh의 위치

 

buffer에서 ret까지의 길이를 구할 때

이번 문제는 buffer도 입력 부분도 main이아닌 getpath에 있기 때문에

bp를 main의 ret가 아닌 getpath에서의 ret에 걸어야 구하기 편하다

(main의 ret에 걸어도 구할 수 있으나 이해하기 힘들다)

 

buffer에서 ret(getpath)의 길이 80바이트

 

system의 위치
'/bin/sh'의 위치
exploit 코드
exploit코드 실행

 

성공

'Wargame, CTF > protostar' 카테고리의 다른 글

format1  (0) 2020.02.24
stack7  (0) 2019.08.26
stack5  (0) 2019.08.26
stack4  (0) 2019.08.25
stack3  (0) 2019.08.25