[LOB] cobolt -> goblin
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 |