|
[해설] flag07 유저는 첫 perl 프로그램을 작성했다. 이 프로그램은 핑 테스트를 하며 접근 가능한지 확인합니다. 이 레벨을 수행하기 위해 level07 계정에(PW:level07) 로그인하며, /home/flag07 경로에서 관련 파일들을 확인할 수 있다.
□ 목표 : flag07 계정으로 getflag 명령을 실행하여 "You have successfully executed getflag on a target account" 메시지를 확인
□ 소스 코드 분석
○ `ping -c 3 $host 2>&1`;는 ping 테스트를 수행하며 그 결과를 @output 배열에 저장되고, 그리고 그 결과는 모두 foreach에 출력됨
○ 이 소스 코드는 웹 서버를 통해 구동됨
□ 취약점
○ 마지막 줄 param("Host")에서 사용자의 입력을 필터링 없이 함수의 인수로 사용
해당 디렉터리(/home/flag07)에 thttpd.conf 파일이 있다. thttpd 서비스가 돌아가는 것 같다. 이 것을 열어보면 port 번호와 권한을 확인할 수 있다. 서비스 포트 번호는 7007이고 권한은 flag07이다. 주의할 사항으로, nebula가 구동 된 후 일정 시간이 지나면 thttpd 서비스가 종료되므로 신속히 문제를 풀어야 한다.
웹 브라우저에서 Host 파라미터에 데이터를 넣으면, 핑 테스트 결과를 확인할 수 있다. 하지만 이 프로그램은 Host 파라미터의 값을 필터링 없이 사용하므로, 위와같이(%3B==;) 입력하면 flag07 계정으로 getflag 명령을 실행할 수 있다.
'정보보안_테크닉 > 워게임_Nebula' 카테고리의 다른 글
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.24 |
Nebula Level02 힌트 (0) | 2016.09.23 |
Nebula Level01 솔루션 (0) | 2016.08.18 |
Nebula Level00 솔루션 (0) | 2016.08.11 |
Nebula 소개 (0) | 2016.08.11 |
"도움이 되셨다면 '좋아요' 부탁드리겠습니다."
|