[FC3] evil_wizard -> dark_stone : POP POP RET / Remote
-TCP 8888
Dark_eyes와 hell_fire의 짬뽕이다.
지난 레벨과 payload는 똑같고, dark_stone 권한으로 xinetd.d가 실행하므로 recv 후 payload 전달, recv 하면 될 듯 하다.
&Strcpy_plt
&Printf_plt
&Printf_got
&Ppr
&Binsh
system 함수 각 문자 주소
buffer+SFP는 더미로 채운다. 여기서 buffer가 0으로 초기화되지만 사용하지 않으므로 상관X
ppr 시 esp가 원하는 곳을 가리킬 수 있게 한다. 여기서는 printf_got를 가리키게 해서, 처음 4 byte 값을 system 각 문자 4개로 덮는다. 그러기 위해 4번 POP POP RET 수행, for문으로 반복
printf_plt로 이동,
Printf_plt : 0x8048408
Printf_got : 0x804984c
#strcpy_plt : 0x8048438
# POP POP RET 주소
ppr addr : 0x80484f3
# system 함수 내 “/bin/sh” 주소 : 0x833603
# System 함수 각 문자 주소 구하기
# exploit 코드
(솔직히 문자 주소를 구하는 기준을 잘 모르겠다...)
찾아보니까, “c0” null 바이트가 멀리 있으면 안 된다.
Null 바이트가 뒤쪽 기준으로 근처에 있는 주소를 선택해야 한다.
따라서 0x80484d0이 주소로 적합
"c0"은 알겠는데 다른 문자 주소의 기준이 뭔지 찾아봐도 안 나온다...
“let there be light”
[FC4] 환경요약 (0) | 2019.07.13 |
---|---|
[FC3] dark_stone (0) | 2019.07.12 |
[FC3] hell_fire -> evil_wizard (0) | 2019.07.12 |
[FC3] dark_eyes -> hell_fire (0) | 2019.07.12 |
[FC3] iron_golem -> dark_eyes (0) | 2019.07.06 |