완료됨
포맷스트링 질문이용
AAAA0Ðýÿ%x%x%x%x%???x%n
의 경우에서 AAAA(4) + 0Ðýÿ(4) + x*5(5) + ???(3) 이기 때문에 255 - 16 = 239라서 ???에 239가 들어가야하는거 아닌가요 ㅠㅠ
다른 답변에서 맞추신분 답변 보면 229를 넣으셨던데... 어떻게 계산해야 229가 나오는질 모르겠습니다!
#시스템해킹
작성자 정보
답변
1
Dreamhack
대표 업적 없음
"AAAA0Ðýÿ%x%x%x%x%299x%n" 공격 코드에서 299 개의 문자를 출력하여 삽입하는 이유는 다음과 같습니다.
처음에 삽입한 AAAA 문자열의 길이는 4, 0Ðýÿ(auth의 주소)의 길이는 4, "%x%x%x%x"의 경우 해당 문자열을 길이로 합산하는 것이 아닌 "%x" 포맷 스트링을 통해 출력되는 문자열의 길이가 중요합니다. 따라서 최종 공격 코드는 "AAAA0Ðýÿ%x%x%x%x%229x%n"가 맞습니다.