Nebula Level07 솔루션


First written by caliber50 on 2016. 12. 4. 15:01


[해설] 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
"언제나 신뢰할 수 있는 자료로 찾아뵙겠습니다"
"도움이 되셨다면 '좋아요' 부탁드리겠습니다."