[LOB] cobolt -> goblin

Posted by dw0rdptr
2015. 3. 20. 15:54 System/LOB
1
2
3
4
5
6
7
8
9
10
11
12
/*
        The Lord of the BOF : The Fellowship of the BOF
        - goblin
        - small buffer + stdin
*/
 
int main()
{
    char buffer[16];
    gets(buffer);
    printf("%s\n", buffer);
}
cs

- goblin 소스


gets로 buffer에 입력을 받아 출력하는데 gets함수 역시 입력문자열의 길이를 제한하지 않아
버퍼오버플로우 취약점이 발생한다.


스택에 16바이트 할당했으므로
메모리구조
| buffer(16) | sfp(4) | ret(4) |


전레벨과 똑같은 환경변수 shellcode를 등록하고 주소를 찾는다.

앞의 문제와는 다르게 실행할 때 인자를 받지 않고 프로그램 내에서 입력을 받으므로
파이프 명령어 | (shift + \)를 이용해 스크립트를 전달한다.


성공

Password


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

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