[LOB] gate->gremlin

Posted by dw0rdptr
2015. 3. 17. 19:43 System/LOB

LOB 첫문제다. gate:gate로 접속하면 실행파일 gremlin과 소스가 보인다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
/*
    The Lord of the BOF : The Fellowship of the BOF 
    - gremlin
    - simple BOF
*/
 
int main(int argc, char *argv[])
{
    char buffer[256];
    if(argc < 2){
        printf("argv error\n");
        exit(0);
    }
    strcpy(buffer, argv[1]);
    printf("%s\n", buffer);
}
cs

(Color Scripter 개꿀)

단순히 인자를 받아 strcpy 함수로 버퍼에 복사하고 출력하는 프로그램이다


gdb로 까보자



스택에 256바이트가 할당되었다.

메모리구조를 보자면

| buffer(256Byte) | sfp(4Byte) | ret(4Byte) |

이렇게 간단하게 구성되어있다.



브포걸어주고 buffer의 시작주소를 찾는다. 대충 원하는 NOP 주소를 골라서,


페이로드를 작성하고 실행한결과





참고로 LOB에서는 bash에 버그가있어 메모리주소를 입력할 때 00이나 \xff가 있으면 널값으로 보기 때문에 bash2를 써야한다




'System > LOB' 카테고리의 다른 글

[LOB] wolfman -> darkelf  (0) 2015.03.25
[LOB] orc -> wolfman  (0) 2015.03.24
[LOB] goblin -> orc  (0) 2015.03.21
[LOB] cobolt -> goblin  (0) 2015.03.20
[LOB] gremlin -> cobolt  (0) 2015.03.18