시스템 해킹

 1576, 1/79 회원가입  로그인  
   gorani
   안녕하세요 퍼미션공부하고 있습니다.

http://www.hackerschool.org/HS_Boards/zboard.php?AllArticle=true&no=1556 [복사]


공부하다보니

해킹서버

level1 에서 level2 uid 권한을 얻은후에.

my-pass 를 입력해서 비밀번호를 알아내서 다음 레벨로 가는 형식이던데

my-pass는 실제 존재하는 명령어가 아니라고 들었습니다.


그렇다면 실제로는 어떻게 uid 를 얻은 후 암호를 알아내나요 ?

  Hit : 3499     Date : 2011/12/31 05:17



    
havu 이미 저장된 패스워드를 출력하는것 같습니다.

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <sys/types.h>

#define MAXLEVEL 3

char *uid_pass[MAXLEVEL] =
{
"level1 password",
"level2 password",
"level3 password"
};

int main(void)
{
int i = 0;
uid_t init_uid = 3001, my_uid = 0;

my_uid = getuid();
if((i = (my_uid%init_uid)) > MAXLEVEL) {
fprintf(stderr, "illegal uid.\n");
exit(EXIT_FAILURE);
} else {
fprintf(stdout, "%s\n", uid_pass[i]);
}

exit(EXIT_SUCCESS);
}
참고.
2011/12/31  
phpmyadmin 윗분 말씀대로 FTZ에선 코딩해서 저장한 패스워드를 그대로 출력합니다.

FTZ나 FTZ와 유사한 모의 해킹서버에서 보통 my-pass 명령어를 제공합니다.
FTZ의 경우엔 /bin 디렉토리에 들어있는데 간단한 소스는 이러합니다.

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int main(){

int i,a;

i = geteuid();
a = getuid();
system("clear");

if( i == 3001 ) printf("\nLevel1 Password is \"블라블라블라\".\n\n");
if( i == 3002 ) printf("\nLevel2 Password is \"블라블라블라\".\n\n");
....
}
2012/01/01