본문 바로가기

IT 엔지니어/Security

XSS

XSS

Cross-Stie Scripting

[ XSS ]

  • 클라이언트 측에서 악성 스크립트를 실행시키는 공격
  • 웹 애플리케이션에서 사용자의 입력을 검증 없이 출력할 때 발생하는 스크립트 삽입 공격
    • 사용자 입력을 필터링 없이 HTML에 직접 출력할 때 문제가 생기기 때문에 입력값을 글자로 바꿔서 출력해 주면 안전
  • 공격자는 자바스크립트 같은 악성 스크립트 코드를 삽입하여, 피해자의 브라우저에서 실행되도록 유도
    • 누군가 웹사이트에 몰래 자바스크립트 코드를 심는 행위
    • 웹사이트에 악성코드가 몰래 들어가는 공격

  • XSS 종류
    • Reflected XSS
      • 쿼리스크링 등을 통해 입력값이 즉시 응답에 반영되어 실행
    • Stored XSS
      • 게시판/댓글 등에 저장된 악성 스크립트가 다른 사용자에게 전달됨
    • DOM-based XSS
      • 서버가 아닌 자바스크립트(클라이언트)에서 입력값을 조작하여 발생
  • XSS 공격 시 피해
    • 사용자 쿠키(정보) 탈취 / 세션 하이재킹(Session Hijacking), 웹사이트 내용 변조, 피싱 페이지 생성, 악성코드 유포 등

MODSECURITY (WEB 방화벽)

[ 프로그램 설치 ]

# dnf -y install mod-security

[ WEB 방화벽 RULE 설치 ]

# dnf -y install mod_security_crs

[ 환경설정 파일 ]

# vi /etc/httpd/conf.d/mod_security.conf

OWASP 추천 보안 규칙 활성화 (OWASP CRS를 적용하겠다 선언)

# vi /etc/httpd/conf.d/mod_security.conf

55 IncludeOptional /usr/share/mod_security_csr/owasp-crs.load

# systemctl restart httpd

< XSS 시도 >

자바 스크립트 코드를 넣으면 웹페이지가 스크립트 코드를 그대로 실행함

Apache가 요청을 공격이라고 판단하고 접근을 차단하여 403 Forbidden

http://ok.co.kr/index.html?<script>alert</script>

 

 
 
 
 
 
 
 
 

 


WEB 서비스 보안 점검 도구

Whatweb
Nikto
정보 수집
취약점 점검

WHATWEB

[ WHTAWEB ]

  • 웹사이트의 기술 스택을 빠르게 확인할 수 있는 툴
    • 웹 서버 종류, 서버 운영체제, 사용된 기술, 버전 정보, 이메일 주소, 타이틀
  • 주로 보안 진단이나 정보 수집 단계에서 사용
# whatweb [IP 주소 / Domain ]

[ ServerTokens ]

  • 웹 서버가 HTTP 응답 헤더에 표시하는 정보의 양을 조절하는 설정
  • Apache 설정 파일 (/etc/httpd.conf/httpd.conf) 에서 ServerTokens으로 서버 정보를 외부에 얼마나 노출할지 정할 수 있음

Prod : Apache만 노출됨 (버전, OS 다 숨겨짐)

ServerTokens Prod 설정 전 / 후

NIKTO

[ Nikto ]

  • 웹 서버의 보안 취약점을 찾아주는 자동화 도구 (자동 점검 도구)
    • 위험한 설정, 취약한 파일, 오래된 버전 등 점검
      • 기본 취약점, 취약한 서버 버전, 잘못된 설정, 기본 관리자 페이지
# nikto -h [IP 주소 / Domain ] -C all

OWASP ZAP

Zed Attack Proxy

[ ZAPROXY ]

  • 웹 애플리케이션의 보안 취약점을 찾기 위해 사용하는 오픈소스 보안 진단 도구
    • 웹사이트의 보안 취약점 진단 도구

로그인 후 Static IP 변경

# sudo su

# vi /etc/network/interfaces

Kali Linux에서 Meta IP로 접속

DVWA

[ ZAPROXY 패키지 설치 ]

# apt -y install zaproxy*
# zaproxy
zaproxy 실행

설정(톱니바퀴) - Network - Server Certificates - Generate -Y - Save - Save

Settings

proxy - Settings...

cert - view Certificates...

Authorities - Import...

위치 : root/zap_root_ca.cer

Other Locations - Computer

192.168.10.10 접속 (Meta IP Add)

# zaproxy

Automated Scan

Attack

Attack - Active Scan

Show Advanced Options - 세부적인 Active Scan 설정

URL 복

붙 - ZAP+인코딩 도구를 활용해 공격 URL 세부적으로 분석 (인코딩 도구 화면)

빨강 - 위험

< 설명 >

🔴 Hash Disclosure - MD5 Crypt

설명

서버가 MD5 해시값을 노출하고 있음

MD5는 오래된 암호화 방식이라 쉽게 깨질 수 있음

위험

해커가 이 해시값을 복호화해서 비밀번호나 민감한 정보를 알아낼 수 있음

보안

MD5 사용 금지 (SHA-256 이상으로 HASH 알고리즘 교체)

HASH 노출 방지 (로그, 에러 메시지, 응답값에 HASH값 포함 X)

Salt 사용 (Hash 생성 시 랜덤한 Salt를 추가해 복호화 어렵게 만들기)

🔴 Path Traversal

설명

해커가 URL 같은 데에 ../ 이런 식으로 입력해서, 원래 볼 수 없는 서버 내부 파일에 접근할 수 있음

위험

시스템 설정파일, 데이터베이스 파일 등을 빼돌릴 수 있어서 매우 위험

보안

입력값 필터링 (특수 경로 문자 차단)

화이트 리스트 방식 사용 (접근 가능한 파일명 / 경로만 사전에 지정된 목록에서 선택)

파일 경로 하드코딩 금지 (사용자 입력값을 통해 직접 파일 경로 조합 X)

 

 

'IT 엔지니어 > Security' 카테고리의 다른 글

XSS  (0) 2025.04.17
Burpsuite, Hydra, DVWA,  (1) 2025.04.15
Directory Indexing  (0) 2025.04.11
SNORT RULEs  (0) 2025.04.10
SNORT / IDS  (0) 2025.04.08