01DEFINITION
한 줄로 말하면
파일 목록이 그대로 보이는 폴더는 공격자에게 지도를 건네는 것과 같습니다. 업로드 폴더에서 다른 사람이 올린 파일이 보이고, 백업 폴더에서는 데이터베이스 덤프가 이름째 드러납니다. 색인 파일 하나를 두거나 서버 설정 한 줄로 막을 수 있는 일입니다.
02RISK
없으면 무슨 일이 생기나
이 항목의 크기는 옆 항목과 겹칠 때 정해집니다. 링크 없는 파일을 찾는 공격은 원래 이름을 맞혀야 합니다. 흔한 이름 목록을 넣어 보고 200 이 나오기를 기다리는 일이라 맞히지 못하면 지나갑니다. 그런데 폴더 목록이 열려 있으면 그 단계가 통째로 사라집니다. 서버가 그 안에 무엇이 있는지 정확한 이름으로 알려 주기 때문입니다.
업로드 폴더가 가장 아픕니다. 회원이 올린 사업자등록증, 계약서 스캔본, 이력서 같은 것이 한 폴더에 쌓여 있고 파일명이 순번이나 원본 이름 그대로인 경우가 많습니다. 목록이 열려 있으면 로그인도 필요 없이 전부 내려받을 수 있습니다. 이때 유출되는 것은 우리 자료가 아니라 고객의 개인정보라, 사고가 나면 통지 의무가 따라옵니다.
백업이나 로그 폴더는 규모가 다릅니다. 데이터베이스 덤프 파일 하나가 이름째 드러나면 그 한 줄이 곧 전체 유출입니다. 그리고 목록 화면에는 파일 크기와 수정 시각이 함께 나오므로, 공격자는 어느 것이 최신이고 어느 것이 큰지 보고 가장 값나가는 하나만 골라 갑니다.
03CHECK IT YOURSELF
직접 확인하는 방법
아래는 저희를 거치지 않고 지금 해 보실 수 있는 방법입니다. 결과를 저희에게 보내실 필요도 없습니다.
-
01
흔한 폴더를 열어 본다
파일 목록이 표로 그려지면 걸린 것입니다. 아파치는 "Index of /경로" 라는 제목을 쓰고, Nginx 도 비슷한 목록을 그립니다. 403 이면 막혀 있는 것이고 404 는 그 폴더가 없는 것입니다.
$ for d in /uploads/ /files/ /data/ /backup/ /images/ /assets/ /logs/; do printf "%-12s %s\n" "$d" "$(curl -s https://example.com$d | grep -o 'Index of[^<]*' | head -1)" done
나머지 확인 방법 2단계는 셀프수리 가이드에 있습니다.
04HOW TO FIX
고치는 방법
서버 환경에 따라 적을 자리가 다릅니다. 아래는 가장 흔한 구성 기준이고, 적용 전에 현재 설정을 백업하십시오.
가장 확실한 방법이고 하위 폴더 전체에 걸립니다. 아파치는 Options 에서 Indexes 를 빼고, Nginx 는 autoindex 를 off 로 둡니다. 이 설정은 전역에서 끄고 필요한 곳만 켜는 방향이 맞습니다.
가이드 안내 보기 · 먼저 무료로 진단받기
이미 열람권을 구매하셨다면 안내 메일의 가이드 링크로 바로 열립니다 — 링크를 잃으셨다면 문의 주시면 다시 보내 드립니다.
05FAQ
자주 묻는 질문
이미지 폴더가 보이는 것도 문제인가요
- 내용에 따라 다릅니다. 상품 사진만 있다면 잃을 것이 적습니다. 다만 그 목록이 사이트의 구조와 파일 명명 규칙을 알려 주고, 아직 공개하지 않은 신제품 이미지나 시안이 섞여 있는 경우가 흔합니다. 위험도가 낮다고 열어 둘 이유는 없습니다 — 끄는 데 한 줄이 듭니다.
index.html 을 넣었는데도 이 항목에 걸립니다
- 하위 폴더 중 하나가 남아 있을 가능성이 큽니다. 연도·월로 자동 생성되는 업로드 폴더는 새로 만들어질 때 색인 파일이 안 들어갑니다. 그래서 이 방법은 보조 수단이고, 서버 설정에서 끄는 쪽이 새 폴더까지 함께 막습니다.
목록이 보여야 편한 폴더가 있는데요
- 내부에서 파일을 주고받는 용도라면 그 폴더만 접근 IP 를 제한하거나 인증을 걸고 목록을 켜십시오. 전역에서 끄고 예외를 하나 두는 것이, 전역에서 켜고 위험한 곳을 하나씩 막는 것보다 안전합니다. 빠뜨렸을 때 어느 쪽으로 기우는지가 다릅니다.
이 항목과 링크 없는 파일 항목은 무엇이 다른가요
- 순서가 다릅니다. 링크 없는 파일은 이름을 맞혀야 열리고, 이 항목은 서버가 이름을 알려 줍니다. 그래서 둘이 함께 걸리면 앞의 것이 쉬워지는 정도가 아니라 필요 없어집니다. 조치도 짝으로 하시는 것이 맞습니다.
GET STARTED
내 사이트는
이 항목을 통과할까요
주소만 넣으시면 이 항목을 포함해 58가지를 판정해 점수와 실패 개수를 보여 드립니다. 로그인도, 소유 확인도 필요 없습니다 — 전부 밖에서 관찰만 하는 항목이기 때문입니다.