티스토리 뷰

SYSTEM/bof

LEVEL13 (darkknight -> bugbear) : RTL1

Notchicken 2013. 7. 19. 13:59

bugbear.c

#include <stdio.h>

#include <stdlib.h>

 

main(int argc, char *argv[])

{

char buffer[40];

int i;

 

if(argc < 2){

printf("argv error\n");

exit(0);

}

 

if(argv[1][47] == '\xbf')

{

printf("stack betrayed you!!\n");

exit(0);

}

 

strcpy(buffer, argv[1]);

printf("%s\n", buffer);

}

 

bugbear는 아주 간단한 문제였다.

argv[1][47]\xbf가 아니여야 하는 거였는데 이 부분은 ret의 주소 맨 앞자리에 해당된다.

그래서 system함수를 이용하여 풀기로 하였다.

 

buffersfp 44bytenop로 채운뒤 retsystem함수의 주소를 넣고 4bytenop/bin/sh의 주소를 넣어 성공하였다.

 

 

댓글
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday