one gadget 이 여러개 있을때,

여러개 중 선택하는 기준이 있을까요? 그냥 brute force하게 넣어보는 방법 뿐인지요?

하나씩 넣다보니까 성공하긴 했는데, 정확한 이유를 알고 싶습니다.

0x45216 execve("/bin/sh", rsp+0x30, environ)
constraints:
  rax == NULL

0x4526a execve("/bin/sh", rsp+0x30, environ)
constraints:
  [rsp+0x30] == NULL

0xf02a4 execve("/bin/sh", rsp+0x50, environ)
constraints:
  [rsp+0x50] == NULL

0xf1147 execve("/bin/sh", rsp+0x70, environ)
constraints:
  [rsp+0x70] == NULL
#pwnable
작성자 정보
답변 2
avatar
Dreamhack
대표 업적 없음

안녕하세요,
아래 주어진 constraints가 해당 one gadget이 성공적으로 실행되기 위한 조건입니다.
gdb에서 pc control 이 성공하는 순간 (e.g. rip 가 0x41414141이 된 시점)에 해당 값들을 확인해 보는것이 가장 확실한 방법입니다.

2022.04.16. 16:02
anous
대표 업적 없음

gdb로 확인해서 constraint를 확인해야 하는군요.. 그런데 remote의 경우에는 gdb를 어떻게 실행시킬수 있나요? 보통 remote환경에서 gdb가 가능한지요?

2022.04.18. 23:15
질문에 대한 답을 알고 계신가요?
지식을 나누고 포인트를 획득해보세요.
답변하고 포인트 받기