FTZ WriteUp

Level9

 

먼저 level10소유의 파일을 먼저 찾는다

 

 

디버깅을 하려했지만 권한이 없다 어차피 소스코드가 있으니 컴파일하고 디버깅한다

 

 

이번 문제는 다른 내용들은 크게 중요하지 않다

 

먼저 스택 프레임, , 프로그램이 로딩될 때 얼마의 용량을 차지하는지에 대한 부분을 볼것이다

 

 

0x28, 40바이트가 할당된다 소스코드를 보면

char buf2[10];

char buf[10]; 이렇게 총 20바이트가 할당된다 더미가 들어간다는 것이다 그럼 더미가 어디에, 얼마나 들어가는지 알아보자

 

 

저 부분을 보면 ebp-40 fget함수를 사용하고 0x10을 정리한다 즉 ebp-40부터 10만큼을 사용하는 것이다

 

그리고 ebp-24 strcmp에 사용하면서 0x10을 정리한다 ebp-24부터 10만큼 사용하는 것이다

 

소스코드를 보면

fgets(buf,40,stdin);

 

if ( strncmp(buf2, "go", 2) == 0 )

 

이다 즉 ebp-40부터 10만큼 사용하는곳은 buf가 되고 ebp-24부터 10만큼사용하는 것은 buf2가 된다 스택을 그려보면

 

 

 

이렇게 되지 않을까 생각한다

 

답을 넣어보자

 

 

펄로 ax16, go를 넣어보려 했는데 good skill!!이라고만뜨고 setreuid가 실행되질않는다

 

어쨌든 level9를 클리어했다

Phantom@TeamH4C

댓글

댓글 본문
버전 관리
홍승표
현재 버전
선택 버전
graphittie 자세히 보기