RELRO, NX bit, PIE 적용 중
main 함수의 소스 코드
v5 == -559869752 이면 print_flag
s의 크기는 59byte
실행 결과, main 함수에서 if문의 조건에 따라 값을 입력해 봄
print_flag() 함수 소수 코드
print_flag의 조건은 v5 == -559869752인데
이를 Hex로 변경하면 0xdea110c8이라는 값이 나옴
> v5의 값은 0xdea110c8로 변조하면 됨
> 입력 값인 s의 overflow 취약점을 이용
0x3B – 0x10(v5의 크기) = 0x2b = 43(dec)
따라서 더미 43 + 0xdea110c8의 주소 전달
‘Right. Off you go.’가 출력된 것을 보면
본래 flag.txt를 보여주는 print_flag 함수가 실행되었음을 알 수 있음