( 1 ) 문제 정보
Our web developer tells us that the intranet he has developed is secure because it contains very few functionalities. Prove him wrong by reading the server configuration.
저희 웹 개발자는 자신이 개발한 인트라넷이 기능이 매우 적어 안전하다고 말합니다. 서버 구성을 읽어서 그의 주장이 틀렸음을 증명해 보세요.
server {
listen 80;
server_name _;
root /etc/nginx;
location = / {
return 302 /login/login.html;
}
location /login/ {
alias /usr/share/nginx/html/login/;
}
location /static/ {
alias /var/www/app/static/;
}
location / {
try_files $uri $uri/ =404;
default_type text/plain;
}
error_page 404 =200 /error.txt;
location /error.txt {
internal;
}
}
( 2 ) 문제 요점
위 주어진 Nginx 설정을 보면 "root /etc/nginx;" 로 되어 있음.
웹 루트가 Nginx 설정 디렉터리 자체 폴더로 잘못 잡힌 오배치 문제임.
( 3 ) /etc/nginx 폴더
Nginx 기본 설치의 설정 루트는 보통 /etc/nginx 임.
nginx.conf 가 최상위 설정 파일이고, 여기에 include 로 각종 하위 설정 조각들을 불러와 계층적으로 합쳐 쓰는 구조임.
/etc/nginx 핵심 구성은 아래와 같음.
1. nginx.conf
메인 설정 파일임.
events {}, http {}, (선택) stream {} 블록을 포함하고, 이 안에서 또 다른 설정 파일들을 include로 불러옴.
설정 구조와 컨텍스트(문맥: main/http/server/location 등)는 공식 가이드가 잘 정리되어 있으니 참고 바람.
링크 : https://nginx.org/en/docs/beginners_guide.html
2. include 지시문
다른 파일(또는 와일드카드로 매칭되는 여러 파일)을 현재 설정에 삽입함.
ex. include mime.types;, include conf.d/*.conf;
3. mime.types
확장자 → MIME 타입 매핑.
보통 http {} 블록에서 include mime.types;로 불러옴.
4. 파라미터 파일들(배포판 기본 제공)
fastcgi_params, uwsgi_params, scgi_params, proxy_params 등 각 게이트웨이/프록시 프로토콜에 전달할 기본 헤더 및 변수를 정의한 조각들임. (필요 시 include)
대표 폴더/파일별 상세 정보는 아래와 같음.
1. /etc/nginx/nginx.conf
최상위 진입점임.
여기에서 include 로 conf.d/*.conf 나 sites-enabled/* 등을 불러오며, 로드 순서가 동작에 영향을 줄 수 있음.
2. /etc/nginx/conf.d/*.conf
개별 vhost 또는 공통 설정을 나눠 담는 디렉터리임. (특히 RHEL 계열에서 표준)
패키지 기본 가이드에서도 여기로 조각을 넣는 흐름을 보여줌.
3. /etc/nginx/sites-available/ & /etc/nginx/sites-enabled/ (주로 Debian/Ubuntu 계열)
sites-available/에 정의 → sites-enabled/로 심볼릭 링크 → nginx.conf에서 sites-enabled 를 include 함.
이 패턴은 "필수" 는 아니지만 운영 편의상 권장되는 관례임.
4. /etc/nginx/snippets/ (주로 Debian/Ubuntu 계열)
재사용 블록(보안 헤더, 공통 프록시 설정, 인증 스니펫 등)을 저장해 여러 서버블록에서 include 로 재활용함.
5. mime.types / fastcgi_params / uwsgi_params / scgi_params / proxy_params
MIME 매핑 및 게이트웨이/프록시 파라미터의 기본값 모음임.
필요할 때 특정 서버/로케이션에서 include 로 끼워 넣음. (ex. PHP-FPM FastCGI)
( 4 ) flag 찾기
1. 사이트 화면
2. nginx.conf 파일 접근
웹 루트가 Nginx 설정 디렉터리 자체 폴더로 nginx.conf 파일에 접근이 가능함.
nginx.conf 파일를 확인한 결과, /etc/nginx/conf.d/default.conf 파일이 존재함을 확인함.
3. /conf.d/default.conf 파일 접근
해당 파일에서 flag 값을 확인함.
참고 사이트 :
https://nginx.org/en/docs/beginners_guide.html






댓글 없음:
댓글 쓰기