두번째 문제 System분야는 정말 경험이 없어서 맨땅에 헤딩으로 도전하려니 겁이난다.. 어쨋든 두번째 문제.

 

 

 

 

접속 후에 다음과 같이 system200의 권한을 확인했더니 1번과 같이 root200의 uid와 system200의 gid가 보인다 일단은 실행해 보았다.

 

 

다음과 같이 1번을 선택하고 게임을 시작하게되면 1~100사이에 나오는 숫자를 맞추면 내가이기고 쉘을 얻게 되는 문제인데 1000번을 해보면 아마도 맞지 않았을까 싶었다 ㅎㅎㅎ 막막했다 이것을 어떻게 해야하는지...

 

 신기하게도 User Name Change라는 부분이 있어서 여기에 삽질을 했다. 어디서 보았던 이것저것 삽질을 해보았다.

 

 

 

결론은 그냥 아무것도 아니었다 그래서 그냥 게임을 했다 ㅎㅎㅎㅎㅎㅎㅎ

게임을 하던 도중에 아래와 같은 값을 넣었더니 이상한 증상을 보였다.

입력값이 없었음에도 무한 반복을 도는것이다.

물론 무한 반복인지는 확실히 알수는 없었고 가장먼저 떠오른것은..특수문자를 ASCII코드와 연관이 있을 것 이라고 생각했지만 말이 안됫다..

 

 

 

!는 ASCII값은 21이다. 이 프로그램은내가 던진 숫자까지 루프를 도는 프로그램이 아닌데 왜 루프를 돌까

루프를 돈다고 해도 21번만 돌아야 하는것이 아닌가?

그러면 루프를 돌면 내가 숫자 20을 넣어도 20번만 돌아야하는게 아닌가?

점점 이해가 되지 않았다.

 

여담이지만 내가 처음에 ASCII가 이상하다고 느꼇을때 A라는 값을 입력했다. 대충 100번을 돈다고 가정 했을 때 반정도면 대충 나오지 않을까 싶어서 였다. 무한 반복이 돌고 있을 때 shark로 보았는데 언뜻 보기에는 DoS를 하는것만 같은 좌불안석이었다. 그런데 얼마정도 지났을까 다음과 같은 결과가 나왔다.

 

 

A라는 값이 계속 입력이 되는 거 같다. 프로그램은 계속 난수를 생성하여 비교하는 작업을 하다가 A의 ascii code와 맞는 값이 나와서 정답이 된것이다.

 

프로그램이 scanf("%d",&input);

이라고 가정을했을때 버퍼에 1이 들어가나.. A이 들어가나 차이가 뭐길래 계속 반복이 되는지는 도무지 이해가 안된다.

????????????????????????????????????????????????????????????????????

멘탈이 붕괴됬다. 풀긴 풀었는데 뭐지????????????????????????????????????

?????????????????????????????????????????????????????????????????????

 

 

 

 

어쨋든 키도 찾아서 정답을 맞췄다.

아이러니해서 다른사람들이 풀은것을 찾아보았다. 나처럼 된사람들도 있지만 명확한 내용은 없었다.

펄이나 스크립트를 이용해서 한사람들도 있었다. 그중에 Enter the Number 에서 `perl -e 'print "1"x500"`을 입력 한사람도 있는데 결국엔 저게 실행되서가 아닌 `때문에 실행이 된거 같기도하다

왜냐하면 1이 들어갔다면 (1~100) : 뒤에 1이라는 값이 있어야 하지만 아무값도 없기 때문에....

 

 

 

결론은 미궁속으로 사라졌다......

그래서 똘끼가 발동했다. 내 손으로 해보겟노라고...

 

 

 

 

직접 손으로 1, Enter를 반복한지 3분정도 흘렀을때 쉘을 얻었다 운이 좋았다 알다가도모르겟는 워게임이다..

 

 

반응형

'War.Game > KISA' 카테고리의 다른 글

[System] 취약한 메아리 프로그램  (0) 2014.10.07

 

처음에 접속을 하게 되면 다음과 같은 상태를 볼 수 있었다.

 

 

 

파일명은 system100이고 주어진 permission은 다음과 같다

 

   owner  group   other  하드링크수  소유자ID      그룹ID

r-s      r-x      ---         1           root100     system100    

 

실행을 하여 입력을 몇가지 해보았다.

 

 

hi belie를 입력 하게 되면 동일하게 hi belie를 출력해주는 프로그램이다.

 

 

 

 

특수 문자도 넣어 보았다. 몇가지 문자에서 다양한 출력 결과를 볼 수 있었다.

주어진 조건 어설픈 보안설정, 잘못구현되었다고 하니 뭐가 잘못 되었는지 지금까지 가장 쉽게 알아볼 수 있는 점은 일단..권한 문제이다.

 

소유자 ID는 root100이지만 그룹권한에 실행권한이 있으므로 system100은 실행 할 수 있었고, 실행중인동안 system100은 root100의 권한을 받을 수 있다.

 

 

 

실행 중 &(bg)를 이용하여 bash를 실행시켰다 id명령어를 확인하니 root100의 권한을 얻을수 있었다.

 

 

 

 

이제 key값을 찾기 위해 상위폴더로 이동하여 확인하게 되면 여러 디렉토리가 나오게 되고 그중 root100 디렉토리의 root100_key라는 파일이 끌린다. 다른것은 권한이 없으므로....

 

 

 

다음과 같이 파일을 오프하게 되면 key값이 뙇 나온다.

 

 

 

 

System의 문제를 처음 해보는것이라서 지레 겁을 먹었는데.. 쉽게쉽게 단순하게 생각하니 금방 해결 된다.

 

 

 

 

 

반응형

'War.Game > KISA' 카테고리의 다른 글

[System] 확률 게임에서 이겨라!  (0) 2014.10.07
반응형