서버 내에 민감한 파일이나 디렉터리가 노출되어 외부에서 접근 가능한 상태일 때 발생하는 취약점.
구글 해킹(Google Dorking)을 통해
등의 키워드를 검색 시, 실제 사업자등록증 사본이나 서버 환경 설정 파일(phpinfo.php)이 무방비로 노출된 것을 확인할 수 있었다.



관리자 및 사용자 계정에 대한 보안 정책이 미흡하여 발생하는 취약점입니다.
단순한 계정 사용, 중복 로그인 허용, 계정 잠금 정책 미비.
초기 설정된 기본 관리자 계정이나 로그인 페이지가 그대로 방치되거나, 구글링을 통해 장비 매뉴얼(설명서)이 노출되면서 초기 관리자 ID/PW가 유출되는 경우.

회원가입이나 비밀번호 찾기 등에서 본인 확인 인증 절차가 미흡하거나 우회 가능한 경우 발생
발생 원인: 서버 측의 검증 없이 클라이언트(브라우저) 단에서만 인증 여부를 검증하거나, 본인 확인 API의 응답값을 조작하여 우회하는 경우.
대응 방안:
로그인 시 입력하는 ID/PW나 개인정보 등 민감한 데이터를 암호화하지 않고 평문으로 전송할 때 발생.
HTTPS가 아닌 비암호화 통신(HTTP)을 사용할 경우 , 패킷 스니핑 도구(예: Wireshark)를 통해 전송되는 패킷을 캡처하면 사용자의 ID(test)와 비밀번호(1234), 그리고 세션 ID가 평문으로 그대로 노출되는 것을 확인.



import requests
# 점검 대상 리스트
target_paths = [
"/phpinfo.php",
"/.env",
"/config.json",
"/admin/login.php",
"/.git/config"
]
def check_vulnerability(base_url):
print(f"[*] {base_url} 점검 시작...")
for path in target_paths:
url = base_url + path
try:
response = requests.get(url, timeout=5)
# 200 OK 응답이 오면 파일이 존재할 가능성 높음
if response.status_code == 200:
print(f"[!] 취약점 발견 위험: {url} (응답 코드: 200)")
# 특정 키워드로 디렉터리 리스팅 여부 추가 확인
if "Index of" in response.text:
print(f" -> [위험] 디렉터리 리스팅 활성화 확인!")
except requests.exceptions.RequestException as e:
print(f"[-] {url} 접속 실패")
# 실행 예시
check_vulnerability("http://example.com")