|
About[해설] : 위 프로그램은 임의 프로그램을 실행시킬 수 있는 취약점이 존재한다. 이 레벨을 수행하기 위하여, level02 계정으로 로그인하며 패스워드는 level02이다. 관련 파일들은 /home/flag02에서 확인할 수 있다.
□ 목표 : flag02 계정으로 getflag 명령을 실행하고 "You have successfully executed getflag on a target account" 메시지를 확인
□ 취약점 : 이전 글(Nebula Level02 힌트) 참조
□ 소스코드 해석
○ asprintf 함수는 환경변수 USER의 값을 buffer 변수에 저장
○ system 함수는 "/bin/echo USER is cool" 명령 실행
□ 풀이 전략
○ setUID를 활용하여, 프로그램 실행 간 flag02의 권한을 사용
○ 환경 변수를 활용하여, getflag 명령을 실행
/home/flag02로 이동하여 ./flag02를 실행하면 위 그림과 같은 결과가 나온다.
환경 변수 USER에 "dummy;getflag" 값을 넣는다. 세미콜론으로 인해 두 개의 문장으로 구분된다.
위 그림과 같이 flag02를 실행하면 echo 명령은 dummy 문자열을 출력하고, 그런 다음 세미콜론 오른쪽의 getflag 명령이 실행된다.
클리어
'정보보안_테크닉 > 워게임_Nebula' 카테고리의 다른 글
Nebula Level07 솔루션 (0) | 2016.12.04 |
---|---|
Nebula Level06 솔루션 (0) | 2016.11.23 |
Nebula Level05 솔루션 (0) | 2016.11.19 |
Nebula Level04 솔루션 (0) | 2016.11.18 |
Nebula Level03 솔루션 (0) | 2016.10.17 |
Nebula Level03 힌트 (0) | 2016.10.15 |
Nebula Level02 힌트 (0) | 2016.09.23 |
Nebula Level01 솔루션 (0) | 2016.08.18 |
Nebula Level00 솔루션 (0) | 2016.08.11 |
Nebula 소개 (0) | 2016.08.11 |
"도움이 되셨다면 '좋아요' 부탁드리겠습니다."
|