웹해킹 취약점 정리 - 크게 9가지로 해보았다
사용자 입력값이 SQL 쿼리에 그대로 포함되어 데이터베이스 쿼리를 변조하는 취약점. 공격자는 인증 우회, 데이터 유출, 데이터 수정 등을 수행할 수 있다.
일반, Error/Union Based, Blind 같은 유형이 있다.
| 방어 방식 | 우회 방식 |
|---|---|
‘ , union 등 문자나 공백 필터링 |
URL encoding(%2527), 문자열 파싱(., /**/) |
대소문자 바꾸기, 단어 중간에 추가(UNunionION) |
사용자 입력이 HTML에 그대로 출력되어 브라우저에서 악성 JavaScript가 실행되는 취약점.
Stored, Reflected, DOM based XSS 유형이 있다.
| 방어 방식 | 우회 방식 |
|---|---|
<script> 등 문자 필터링 |
다른 태그 사용(img, onload, onerror, onfocus 등) |
단어 중간에 추가(<scscriptript>) |
|
| HTML Entity 인코딩 |
사용자 입력이 운영체제 명령으로 연결되어 공격자가 쉘 명령을 실행. 웹앱이 system(), exec(), popen()같은 API를 사용할 때 자주 발생
| 방어 방식 | 우회 방식 |
|---|---|
; , cat 등 문자 필터링 |
다른 문자 사용(&&, ` |
공백 우회(${IFS}) |
Local File Inclusion - 서버 내부 파일을 포함
Remote File Inclusion - 외부 파일을 로드
PHP 같은 환경에서 include, require, 템플릿 로딩 함수에 나타남