JG Story

[2] 웹 해킹 기법( Sql injection & XSS Attack ) 본문

IT/보안

[2] 웹 해킹 기법( Sql injection & XSS Attack )

JG_lee 2021. 11. 8. 10:09

 

SQL Injection

 

* 기존 SQL에 악의적인 SQL 구문을 삽입하여 데이터 탈취, 삭제

 

* SQL Injection 공격방식

  • Error based SQL Injection
    • 일부러 SQL 에러를 발생시켜서 원하는 정보를 취득하는 공격 기법이다. 에러가 발생하면 DB에 대한 정보를 단편적으로 얻을 수 있게 되므로 에러 메시지가 노출되지 않도록 조심해야한다.
  • Blind SQL Injection
    • 쿼리 결과의 참/거짓 정보를 보고 원하는 정보가 존재하는지 추론할 수 있다. 이를 통해 데이터베이스, 테이블, 컬럼 명을 파악할 수 있다.
  • Union SQL Injection
    • Union 명령을 이용해서 정보를 취득할 수 있다.

 

[대응방법]

 

 문제가 될 수 있는 문자열을 필터링하는건데 SQL Injection \n, \t, |, #, --, & 같은 문자열을 필터링하는 것으로 쉽게 방어가 가능하다. 즉 정리하면 다음과 같다.

  • SQL에서 특별한 의미를 가지는 문자를 이스케이프한다. ex) \n, \t, |, /, &, #, ...
  • 준비된 선언을 사용한다.

준비된 선언은 조금 생소할 수 있는데 Placeholder를 넣은 쿼리를 먼저 DB에 보낸 후 Placeholder에 해당하는 데이터를 DB로 보내는 방법이다. 이를 통해 SQL Injection을 방어할 수 있다.

 

 

 

XSS Attack

 

* XSS는 공격자가 상대방의 브라우저에 Script를 실행할 수 있게 하여 사용자의 Session을 가로채거나 웹 사이트 변조, 악의적 컨텐츠 삽입, 피싱 공격을 할 수 있다.

 

* XSS 공격방식

1) stored XSS

 - 스크립트를 저장해뒀다가 공격하는 방법

2) reflected XSS

 - 스크립트를 입력하면 바로 반사되어 바로 실행이 되는 방법

3) Dom XSS

- 피해자의 브라우저가 HTML 페이지를 구문 분석할 때마다 공격 스크립트가 DOM 생성의 일부로 실행되면서 공격

- 페이지 자체는 변하지 않으나, 페이지에 포함되어 있는 브라우저측 코드가 DOM 환경에서 악성코드로 실행

- Cookie Sniffing, 스크립트 암호화 및 우회, 악성코드 유포, Key Logger, Mouse Sniffer, 거짓정보 추가의 형태로 공격.

 

[대응방법]

  • 스크립트 등 해킹에 사용될 수 있는 코딩에 사용되는 입력 및 출력 값에 대해서 검증하고 무효화 진행
  • > 입력 값 제한,  입력 값 치환, 
  • 스크립트 영역에 출력 자제

'IT > 보안' 카테고리의 다른 글

[1] 2021 OWASP TOP 10  (0) 2021.11.06
Comments