웹해킹 취약점 정리 - 크게 9가지로 해보았다

SQL Injection

사용자 입력값이 SQL 쿼리에 그대로 포함되어 데이터베이스 쿼리를 변조하는 취약점. 공격자는 인증 우회, 데이터 유출, 데이터 수정 등을 수행할 수 있다.

일반, Error/Union Based, Blind 같은 유형이 있다.

방어 방식 우회 방식
‘ , union 등 문자나 공백 필터링 URL encoding(%2527), 문자열 파싱(., /**/)
대소문자 바꾸기, 단어 중간에 추가(UNunionION)

XSS

사용자 입력이 HTML에 그대로 출력되어 브라우저에서 악성 JavaScript가 실행되는 취약점.

Stored, Reflected, DOM based XSS 유형이 있다.

방어 방식 우회 방식
<script> 등 문자 필터링 다른 태그 사용(img, onload, onerror, onfocus 등)
단어 중간에 추가(<scscriptript>)
HTML Entity 인코딩

Command Injection

사용자 입력이 운영체제 명령으로 연결되어 공격자가 쉘 명령을 실행. 웹앱이 system(), exec(), popen()같은 API를 사용할 때 자주 발생

방어 방식 우회 방식
; , cat 등 문자 필터링 다른 문자 사용(&&, `
공백 우회(${IFS})

LFI / RFI

Local File Inclusion - 서버 내부 파일을 포함

Remote File Inclusion - 외부 파일을 로드

PHP 같은 환경에서 include, require, 템플릿 로딩 함수에 나타남