이번에 풀어볼 문제는 Protostar의 Format 4이다.
문제의 사이트는 아래에서 확인할 수 있다.
old.liveoverflow.com/binary_hacking/protostar/format4.html
Format 4 - LiveOverflow
Solving format1 from exploit-exercises.com with a simple Format String vulnerability, exploited with %n.
old.liveoverflow.com
1. 문제 확인
exit() 함수를 hello() 함수로 바꿔주어야 한다.
exit()함수의 주소와 hello()함수의 주소를 구해주어야 한다.
AAAA를 입력후 포맷 %08x로 값을 확인해보니,
4번째 주소에 41414141이 나왔다.
odjump -TR ./format4 명령어를 사용해서 exit 함수 주소 값을 구했다.
여기서 주소 값은 0x08049724이다.
이번에는 objdump -t ./format4를 이용해서 hello 함수 주소 값을 구했다.
여기서 주소 값은 0x080484b4이다.
이걸 10진수로 바꾸면 134513844이다.
134513844에서 exit함수 주소 4 + %08x * 2 = 20이다.
여기서 134,513,844 - 20을 하면 134513824가 된다.
이것을 이용해서 다음과 같이 코드를 작성해주면 된다.
'security > 시스템' 카테고리의 다른 글
시스템 리눅스 용어 정리 1 (0) | 2021.01.10 |
---|---|
Protostar - Heap 0 (0) | 2020.11.08 |
Protostar - Format 3 (0) | 2020.11.05 |
Protostar - Format 2 (0) | 2020.11.05 |
Protostar - Format 0 (0) | 2020.11.03 |
댓글