64bit system 함수 segmentation fault 오류

2022. 7. 19. 21:45·To do list/Complete
728x90
반응형

system 함수로 익스플로잇 시 간혹 제대로 코드를 작성하였음에도 불구하고 segmentation fault 오류가 발생하는 경우가 있다.

1. 왜 그런지 알아보고

2. ret gadget 추가 시 왜 작동되는지 알아보자.

2022.07.19 당일 clear.

  1. 왜 그런지 알아보고
    system 함수 내에 movaps 명령어가 있기 때문.
    movaps = mov aligned packed values이며 한번에 데이터를 다량으로 옮길때 사용되며 그 크기는 16 byte이다.
    그래서 데이터들이 16byte로 묶을 수 있는가를 확인하기 때문이다.
  2. ret gadget 추가 시 왜 작동되는지 알아보자.
    movaps로 16 byte씩 묶인다고 가정했을때 seg. fault가 뜬다는 것은 8 byte의 남는 (또는 모자란) 데이터가 발생한다는 의미이다. 그렇기에 nop gadget을 추가하여 8 byte를 뒤로 밀어버리면 16 byte씩 묶인다.

    그렇게 사용되는 nop sled gadget이 ret gadget이다.
    system 함수를 사용하여 익스플로잇 한다는 의미는 페이로드가
    (pop rdi, ret gadget) + (&/bin/sh) + (&system)
    이며,
    어셈블리어 ret의 역할은
    pop rip, jmp rip 이기 때문에 이를 묶어주면
    (ret) + (pop rdi, ret gadget) + (&/bin/sh) + (&system)
    = (pop rip, jmp rip) + (pop rdi, ret gadget) + (&/bin/sh) + (&system)
    가 되고, pop rip 시 어차피 pop rdi, ret gadget의 주소를 가져오기 때문에 nop sled 역할을 하는 것이다.
728x90
반응형
저작자표시 비영리 변경금지 (새창열림)

'To do list > Complete' 카테고리의 다른 글

for "one" - rao  (0) 2022.11.16
[dreamhack] basic_exploitation_003  (0) 2022.08.01
plt와 got  (0) 2022.07.20
[Root-Me] ELF x86 - Stack buffer overflow basic6 : /bin/sh 주소 찾아 넣어서 실행해보기.  (0) 2022.07.14
[Root-Me] ELF x86 - BSS buffer overflow : python 코딩해서 풀어보기.  (0) 2022.07.12
'To do list/Complete' 카테고리의 다른 글
  • [dreamhack] basic_exploitation_003
  • plt와 got
  • [Root-Me] ELF x86 - Stack buffer overflow basic6 : /bin/sh 주소 찾아 넣어서 실행해보기.
  • [Root-Me] ELF x86 - BSS buffer overflow : python 코딩해서 풀어보기.
wyv3rn
wyv3rn
아저씨의 흔한 취미. wyv3rn#1249
  • wyv3rn
    think storage
    wyv3rn
  • 전체
    오늘
    어제
    • 분류 전체보기 (500) N
      • To do list (7) N
        • Doing (1) N
        • Complete (6)
      • Diary (35)
      • Tips & theory (77)
      • Kernel Exploit (27) N
        • Theory (15)
        • Exercise (5) N
      • Wargame (313)
        • pwn.college (34)
        • Dreamhack (148)
        • pwnable.kr (15)
        • Lord of Sqlinjection (3)
        • Cryptohack (20)
        • Root me (27)
        • CodeEngn (4)
        • Exploit Education (22)
        • ROP Emporium (8)
        • H4C (10)
        • Hackerchool (22)
      • CTF (41) N
        • Solved (39) N
        • Unsolved (2)
      • Script (0)
  • 블로그 메뉴

    • 홈
    • 방명록
  • 링크

  • 공지사항

    • PWN wargame 모음 (및 느낀점)
    • 비공개 글들에 대해.
    • 뭐라도 하나 얻어가시길...
  • 인기 글

  • 태그

    CANARY
    Format String Bug
    tcache
    docker
    BOF
    32bit
    root-me
    pwnable.kr
    cryptohack
    Me
    lob
    dreamhack
    heap
    la ctf
    root
    pwntools
    rop
    x86
    vtable
    libc
    phoenix
    ROOT ME
    exploit education
    FSB
    _IO_FILE
    RTL
    Buffer Overflow
    64bit
    x64
    hackerschool
  • 최근 댓글

  • 최근 글

  • 250x250
    반응형
  • hELLO· Designed By정상우.v4.10.3
wyv3rn
64bit system 함수 segmentation fault 오류
상단으로

티스토리툴바