HITCON Training lab4: ret2libc

133210·2021년 7월 26일
0

2020 시스템

목록 보기
20/25
post-thumbnail

32비트 / NX bit 적용

main 코드
read 함수에서 256 바이트를 src에 저장

Print_message 함수에서 strcpy 함수로 src를 dest 변수에 복사
dest 변수의 크기는 56byte > overflow 발생

See_something 함수
해당 주소에 저장된 값 출력

printf와 system 사이 거리는 0xe8d0
printf와 “/bin/sh” 사이 거리는 0x11239b

elfprintf.got의 주소를 가져옴
(GOT에는 함수의 실제 주소가 쓰여있음)
이를 이용해 printf 함수의 실제 주소를 알아내고
앞에서 구한 offset을 이용하여 system과 binsh의 주소를 계산
dest 변수의 크기가 56이므로 +SFP(4)로 60바이트의 더미를 넣어주고
system 주소 > “BBBB” > binsh 주소를 차례로 넣어줌

0개의 댓글