300x250
Notice
Recent Posts
Recent Comments
Link
JG Story
[2] 웹 해킹 기법( Sql injection & XSS Attack ) 본문
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