orw 쉘코드 분석

동글래차·2023년 5월 25일
0

pwnable

목록 보기
2/9
post-thumbnail

orw run_sh 분석

  • 작성했던 쉘코드 실행 부분에 breakpoint를 걸고 실행 한 사진

  • run_sh+12까지 실행하고 나면 0x7fffffffe0b8에 /tmp/flag가 push 된 것을 확인 할 수 있음

syscall(open)

  • 첫번째 syscall(open)에 bp걸고 인자 확인 file:/tmp/flag / syscall:open


  • rax의 값이 이상해서 확인해보니 -2가 나옴. 생각해보니 파일을 안만들어서 그런것 같음. 파일이 없을때 return -2 하나 봄

  • 경로에 다시 파일 만들어주고 return 값 확인하니 3 나옴

syscall(read)

  • run_sh+55에 bp 걸고 실행
  • fd:/tmp/flag
  • buf: 0x7fffffffe088 ~ 0x7fffffffe0b7(run_sh+37에서 0x30만큼 만들어 줌)

  • 실행하고 나면 지정해줬던 버퍼 RSI에 /tmp/flag를 불러와 저장해놓은 것을 볼수 있음

  • 메모리 값

syscall(write)

  • run_sh+71에 bp 걸고 실행
  • fd: 0x1
  • buf: 0x7fffffffe088 : 읽어온 버퍼
  • n: 0x30 :버퍼 크기

  • 출력됬는데 뒤에 이상한 값이 따라서 나옴
  • \n 개행문자 안넣어줘서 그런 것으로 추정 -> 내일 다시 자세히 알아보자 -> null 연산자 안넣어줘서 그럼
profile
동글동글

0개의 댓글