목차
-
웹 해킹(Web Hacking)
-
1. SQL 인젝션 (SQL Injection)
-
2. 크로스 사이트 스크립팅 (XSS, Cross-Site Scripting)
-
3. 크로스 사이트 요청 위조 (CSRF, Cross-Site Request Forgery)
-
4. 디도스 (DDoS, Distributed Denial of Service)
-
5. 파일 포함 공격 (File Inclusion)
-
6. 디렉토리 트래버설 (Directory Traversal)
-
7. 세션 하이재킹 (Session Hijacking)
-
8. 클릭재킹 (Clickjacking)
-
9. 자바스크립트 인젝션 (JavaScript Injection)
웹 해킹(Web Hacking)

- 공격자가 웹 애플리케이션의 취약점을 악용하여 비정상적인 접근이나 조작을 통해 데이터를 훔치거나, 시스템을 손상시키거나, 다른 악의적인 행위를 수행하는 행위
- 웹 해킹은 인터넷과 웹 애플리케이션의 보급으로 인해 매우 흔해졌으며, 다양한 기법과 도구를 사용하여 이루어진다.
1. SQL 인젝션 (SQL Injection)
- SQL 인젝션은 공격자가 웹 애플리케이션의 입력 필드를 통해 악의적인 SQL 코드를 삽입하여 데이터베이스를 조작하거나 민감한 정보를 탈취하는 공격
작동 방식
웹 애플리케이션이 사용자 입력을 직접 SQL 쿼리에 포함시킬 때 발생한다.
공격자는 SQL 구문을 삽입하여 쿼리를 변조하고, 데이터베이스에서 데이터를 읽거나 수정할 수 있다.
SELECT * FROM users WHERE username = 'admin' AND password = 'password';
이 쿼리에서 `username` 입력 필드에 `' OR '1'='1`을 입력하면
SELECT * FROM users WHERE username = '' OR '1'='1' AND password = 'password';
이렇게 되어 모든 사용자 정보가 반환될 수 있습니다.
대응 방법
- 입력값 검증 및 필터링
- 준비된 구문(Prepared Statements) 사용
- ORM(Object-Relational Mapping) 도구 사용
2. 크로스 사이트 스크립팅 (XSS, Cross-Site Scripting)
- XSS는 공격자가 웹 애플리케이션에 악의적인 스크립트를 삽입하여 다른 사용자가 그것을 실행하도록 만드는 공격(주로 사용자의 세션 쿠키를 탈취하거나 피싱 공격에 사용)
종류
- 반사형 XSS (Reflected XSS): 악의적인 스크립트가 웹 애플리케이션의 응답에 포함되어 피해자가 특정 링크를 클릭할 때 실행
- 저장형 XSS (Stored XSS): 악의적인 스크립트가 데이터베이스에 저장되어 여러 사용자에게 전파
- DOM 기반 XSS (DOM-based XSS): 클라이언트 측 스크립트가 DOM을 직접 수정하면서 발생하는 공격
대응 방법
- 사용자 입력 값 이스케이프 및 검증
- 보안 헤더 설정 (Content Security Policy 등)
- XSS 필터링 라이브러리 사용
3. 크로스 사이트 요청 위조 (CSRF, Cross-Site Request Forgery)
- CSRF는 공격자가 인증된 사용자의 권한을 도용하여 사용자가 의도하지 않은 요청을 서버에 보내도록 하는 공격
작동 방식
- 공격자는 피해자가 미리 로그인된 상태임을 이용하여 악의적인 요청을 보내도록 유도한다.
- 예를 들어, 피해자가 로그인된 상태에서 공격자가 만든 악성 링크를 클릭하면 피해자의 권한으로 요청이 서버에 전달된다.
대응 방법
- CSRF 토큰 사용
- Referrer 헤더 검증
- SameSite 속성을 사용한 쿠키 설정
4. 디도스 (DDoS, Distributed Denial of Service)
- DDoS 공격은 다수의 시스템이 동시에 특정 웹 서버나 네트워크 자원을 과도하게 요청하여 정상적인 서비스를 방해하는 공격
작동 방식
- 공격자는 봇넷(Botnet)을 이용하여 대규모 트래픽을 생성하고, 대상 시스템에 과부하를 일으켜 서비스가 정상적으로 작동하지 않도록 한다.
대응 방법
- 트래픽 모니터링 및 분석
- DDoS 방어 솔루션 사용
- 네트워크 용량 확장 및 CDN(Content Delivery Network) 사용
5. 파일 포함 공격 (File Inclusion)
- 파일 포함 공격은 공격자가 웹 애플리케이션의 파일 포함 기능을 악용하여 서버의 임의 파일을 읽거나 실행하는 공격
종류
- 로컬 파일 포함 (LFI, Local File Inclusion): 서버의 로컬 파일을 포함시켜 민감한 정보를 읽어낸다.
- 원격 파일 포함 (RFI, Remote File Inclusion): 원격 서버의 파일을 포함시켜 악성 코드를 실행한다.
대응 방법
- 입력값 검증 및 필터링
- 파일 경로의 화이트리스트 설정
- 디렉토리 트래버설 공격 방지
6. 디렉토리 트래버설 (Directory Traversal)
- 디렉토리 트래버설 공격은 공격자가 웹 서버의 디렉토리 구조를 탐색하고, 의도하지 않은 파일에 접근할 수 있도록 하는 공격
작동 방식
- 공격자는 `../` 시퀀스를 이용하여 상위 디렉토리로 이동하고, 민감한 파일을 읽어낸다.
대응 방법
- 입력값 검증 및 필터링
- 파일 경로의 화이트리스트 설정
- 웹 서버 설정을 통해 디렉토리 접근 제한
7. 세션 하이재킹 (Session Hijacking)
- 세션 하이재킹은 공격자가 사용자의 세션 ID를 탈취하여 사용자로 가장하여 서버와 통신하는 공격
작동 방식
- 공격자는 XSS, 스니핑(Sniffing), 또는 기타 방법을 통해 세션 ID를 획득하고, 이를 사용하여 피해자의 세션을 가로챈다.
대응 방법
- HTTPS를 통한 세션 데이터 암호화
- 세션 타임아웃 설정
- 세션 ID의 주기적 변경
- HttpOnly 및 Secure 속성을 사용한 쿠키 설정
8. 클릭재킹 (Clickjacking)
- 클릭재킹은 공격자가 사용자가 의도하지 않은 버튼이나 링크를 클릭하도록 유도하는 공격
- 이를 통해 공격자는 사용자의 행동을 조작할 수 있다.
작동 방식
- 공격자는 투명한 프레임을 사용하여 사용자가 특정 요소를 클릭하게 만든다.
- 사용자는 다른 것을 클릭했다고 생각하지만, 실제로는 공격자가 설정한 요소를 클릭하게 된다.
대응 방법
- X-Frame-Options 헤더 설정
- Content Security Policy(CSP) 설정
- 중요한 버튼에 이중 확인 절차 추가
9. 자바스크립트 인젝션 (JavaScript Injection)
- 자바스크립트 인젝션은 공격자가 웹 애플리케이션에 악의적인 자바스크립트를 삽입하여 클라이언트 측에서 실행되도록 하는 공격
작동 방식
- 입력값에 자바스크립트를 포함하여 웹 페이지에 삽입하고, 사용자가 페이지를 열면 자바스크립트가 실행된다.
- 이는 XSS의 한 형태로 볼 수 있다.
대응 방법
- 사용자 입력 값 이스케이프 및 검증
- Content Security Policy(CSP) 설정
- 자바스크립트 코드 검토 및 보안 강화
'CS' 카테고리의 다른 글
IA란? (0) | 2024.06.28 |
---|---|
UX와 CX의 개념 차이점 (0) | 2024.06.26 |
OSI 7계층 모델 (0) | 2024.06.17 |
모놀리식 vs. 마이크로서비스 아키텍처 (0) | 2024.05.30 |
WebRTC와 시그널링 (0) | 2024.05.23 |
웹 해킹(Web Hacking)

- 공격자가 웹 애플리케이션의 취약점을 악용하여 비정상적인 접근이나 조작을 통해 데이터를 훔치거나, 시스템을 손상시키거나, 다른 악의적인 행위를 수행하는 행위
- 웹 해킹은 인터넷과 웹 애플리케이션의 보급으로 인해 매우 흔해졌으며, 다양한 기법과 도구를 사용하여 이루어진다.
1. SQL 인젝션 (SQL Injection)
- SQL 인젝션은 공격자가 웹 애플리케이션의 입력 필드를 통해 악의적인 SQL 코드를 삽입하여 데이터베이스를 조작하거나 민감한 정보를 탈취하는 공격
작동 방식
웹 애플리케이션이 사용자 입력을 직접 SQL 쿼리에 포함시킬 때 발생한다.
공격자는 SQL 구문을 삽입하여 쿼리를 변조하고, 데이터베이스에서 데이터를 읽거나 수정할 수 있다.
SELECT * FROM users WHERE username = 'admin' AND password = 'password';
이 쿼리에서 `username` 입력 필드에 `' OR '1'='1`을 입력하면
SELECT * FROM users WHERE username = '' OR '1'='1' AND password = 'password';
이렇게 되어 모든 사용자 정보가 반환될 수 있습니다.
대응 방법
- 입력값 검증 및 필터링
- 준비된 구문(Prepared Statements) 사용
- ORM(Object-Relational Mapping) 도구 사용
2. 크로스 사이트 스크립팅 (XSS, Cross-Site Scripting)
- XSS는 공격자가 웹 애플리케이션에 악의적인 스크립트를 삽입하여 다른 사용자가 그것을 실행하도록 만드는 공격(주로 사용자의 세션 쿠키를 탈취하거나 피싱 공격에 사용)
종류
- 반사형 XSS (Reflected XSS): 악의적인 스크립트가 웹 애플리케이션의 응답에 포함되어 피해자가 특정 링크를 클릭할 때 실행
- 저장형 XSS (Stored XSS): 악의적인 스크립트가 데이터베이스에 저장되어 여러 사용자에게 전파
- DOM 기반 XSS (DOM-based XSS): 클라이언트 측 스크립트가 DOM을 직접 수정하면서 발생하는 공격
대응 방법
- 사용자 입력 값 이스케이프 및 검증
- 보안 헤더 설정 (Content Security Policy 등)
- XSS 필터링 라이브러리 사용
3. 크로스 사이트 요청 위조 (CSRF, Cross-Site Request Forgery)
- CSRF는 공격자가 인증된 사용자의 권한을 도용하여 사용자가 의도하지 않은 요청을 서버에 보내도록 하는 공격
작동 방식
- 공격자는 피해자가 미리 로그인된 상태임을 이용하여 악의적인 요청을 보내도록 유도한다.
- 예를 들어, 피해자가 로그인된 상태에서 공격자가 만든 악성 링크를 클릭하면 피해자의 권한으로 요청이 서버에 전달된다.
대응 방법
- CSRF 토큰 사용
- Referrer 헤더 검증
- SameSite 속성을 사용한 쿠키 설정
4. 디도스 (DDoS, Distributed Denial of Service)
- DDoS 공격은 다수의 시스템이 동시에 특정 웹 서버나 네트워크 자원을 과도하게 요청하여 정상적인 서비스를 방해하는 공격
작동 방식
- 공격자는 봇넷(Botnet)을 이용하여 대규모 트래픽을 생성하고, 대상 시스템에 과부하를 일으켜 서비스가 정상적으로 작동하지 않도록 한다.
대응 방법
- 트래픽 모니터링 및 분석
- DDoS 방어 솔루션 사용
- 네트워크 용량 확장 및 CDN(Content Delivery Network) 사용
5. 파일 포함 공격 (File Inclusion)
- 파일 포함 공격은 공격자가 웹 애플리케이션의 파일 포함 기능을 악용하여 서버의 임의 파일을 읽거나 실행하는 공격
종류
- 로컬 파일 포함 (LFI, Local File Inclusion): 서버의 로컬 파일을 포함시켜 민감한 정보를 읽어낸다.
- 원격 파일 포함 (RFI, Remote File Inclusion): 원격 서버의 파일을 포함시켜 악성 코드를 실행한다.
대응 방법
- 입력값 검증 및 필터링
- 파일 경로의 화이트리스트 설정
- 디렉토리 트래버설 공격 방지
6. 디렉토리 트래버설 (Directory Traversal)
- 디렉토리 트래버설 공격은 공격자가 웹 서버의 디렉토리 구조를 탐색하고, 의도하지 않은 파일에 접근할 수 있도록 하는 공격
작동 방식
- 공격자는 `../` 시퀀스를 이용하여 상위 디렉토리로 이동하고, 민감한 파일을 읽어낸다.
대응 방법
- 입력값 검증 및 필터링
- 파일 경로의 화이트리스트 설정
- 웹 서버 설정을 통해 디렉토리 접근 제한
7. 세션 하이재킹 (Session Hijacking)
- 세션 하이재킹은 공격자가 사용자의 세션 ID를 탈취하여 사용자로 가장하여 서버와 통신하는 공격
작동 방식
- 공격자는 XSS, 스니핑(Sniffing), 또는 기타 방법을 통해 세션 ID를 획득하고, 이를 사용하여 피해자의 세션을 가로챈다.
대응 방법
- HTTPS를 통한 세션 데이터 암호화
- 세션 타임아웃 설정
- 세션 ID의 주기적 변경
- HttpOnly 및 Secure 속성을 사용한 쿠키 설정
8. 클릭재킹 (Clickjacking)
- 클릭재킹은 공격자가 사용자가 의도하지 않은 버튼이나 링크를 클릭하도록 유도하는 공격
- 이를 통해 공격자는 사용자의 행동을 조작할 수 있다.
작동 방식
- 공격자는 투명한 프레임을 사용하여 사용자가 특정 요소를 클릭하게 만든다.
- 사용자는 다른 것을 클릭했다고 생각하지만, 실제로는 공격자가 설정한 요소를 클릭하게 된다.
대응 방법
- X-Frame-Options 헤더 설정
- Content Security Policy(CSP) 설정
- 중요한 버튼에 이중 확인 절차 추가
9. 자바스크립트 인젝션 (JavaScript Injection)
- 자바스크립트 인젝션은 공격자가 웹 애플리케이션에 악의적인 자바스크립트를 삽입하여 클라이언트 측에서 실행되도록 하는 공격
작동 방식
- 입력값에 자바스크립트를 포함하여 웹 페이지에 삽입하고, 사용자가 페이지를 열면 자바스크립트가 실행된다.
- 이는 XSS의 한 형태로 볼 수 있다.
대응 방법
- 사용자 입력 값 이스케이프 및 검증
- Content Security Policy(CSP) 설정
- 자바스크립트 코드 검토 및 보안 강화
'CS' 카테고리의 다른 글
IA란? (0) | 2024.06.28 |
---|---|
UX와 CX의 개념 차이점 (0) | 2024.06.26 |
OSI 7계층 모델 (0) | 2024.06.17 |
모놀리식 vs. 마이크로서비스 아키텍처 (0) | 2024.05.30 |
WebRTC와 시그널링 (0) | 2024.05.23 |