[LOB] gate->gremlin
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 |