1. buf와 return address 사이 거리 구하기
return address의 정확한 위치를 구하는 것이 중요하다.
strcpy 전 인자로 %eax를 넣는데 이 eax 레지스터에 들어있는 주소 값을 확인해보면 buf임을 알 수 있다.
이 주소와 처음 bp를 잡았을 때 출력한 주소 값의 차이 20 바이트가 offset이다. (buf + SFP)
2. 환경변수 등록 + 환경변수 주소 구하기 (return address를 덮을)
3. exploit
NOP으로 쉘코드를 감싸줘야 제대로 익스가 된다.
더미를 주고 return address에 환경변수 주소를 주면 쉘이 따진다.
LOB 초기 설정 (0) | 2019.12.23 |
---|---|
[LOB] death_knight (0) | 2019.06.30 |
[LOB] level 20: xavius -> death_knight (0) | 2019.06.30 |
[LOB] level 19: nightmare -> xavius (0) | 2019.06.30 |
[LOB] level 20 소켓(socket) 생성 간단 정리 (0) | 2019.06.30 |