( 1 ) 문제 정보
Find a vulnerabilty in this service and exploit it.
You must manage to read index.php
이 서비스의 취약점을 찾아 악용하세요.
index.php를 읽을 수 있어야 합니다.
( 2 ) 문제 요점
기초적인 Command Injection 취약점 문제임.
( 3 ) Command Injection
Command Injection 은 일명 Shell Injection 이기도 하며 공격자가 취약한 애플리케이션을 통해 호스트 운영 체제에서 임의의 명령어를 실행할 수 있는 공격 유형임.
이 취약점은 애플리케이션이 안전하지 않은 사용자 제공 데이터(Form, 쿠키, HTTP 헤더 등)를 시스템 쉘에 전달할 때 발생할 수 있음.
일반적으로 시스템 쉘은 Unix 또는 Linux 시스템에서 실행될 명령어를 처리하는 명령줄 인터페이스임.
Command Injection 의 위험은 공격자가 시스템에서 모든 명령을 실행할 수 있게 하여 잠재적으로 시스템 전체가 손상될 수 있다는 점임.
아래 명령어 체이닝은 반드시 알아둬야 함. 중요함!!!
많은 명령줄 인터페이스, 특히 유닉스 계열 시스템에서는 명령어를 연결하거나 조작하는 데 사용할 수 있는 여러 문자가 있음.
;(세미콜론) : 여러 명령어를 순차적으로 실행할 수 있음.
&&(AND) : 첫 번째 명령어가 성공하는 경우에만 두 번째 명령어를 실행함. (종료 상태 0 을 반환함)
||(OR) : 첫 번째 명령어가 실패한 경우에만 두 번째 명령어를 실행함. (0 이 아닌 종료 상태를 반환함)
&(백그라운드) : 백그라운드에서 명령어를 실행하여 사용자가 쉘을 계속 사용할 수 있도록 함.
|(파이프) : 첫 번째 명령어의 출력을 가져와 두 번째 명령어의 입력으로 사용함.
( 4 ) flag 찾기
1. 사이트 화면
IP 입력 시 ping 서비스를 해주는 사이트임.
2. ; ls 명령어 입력 및 결과
index.php 파일이 존재함을 확인함.
3. ; cat index.php 명령어 입력 및 결과
응답 화면에 ping 서비스를 해주는 입력란이 생김.
소스보기로 확인한 결과, flag 정보는 .passwd 파일에 있음을 확인함.
4. ; cat .passwd 명령어 입력 및 결과
flag 값 찾음.
참고 사이트 :
https://swisskyrepo.github.io/PayloadsAllTheThings/Command%20Injection/#methodology
댓글 없음:
댓글 쓰기