SQL Injection 개념과 실습
데이터베이스(DB)와 연동된 응용 프로그램에서 입력된 데이터에 대한 유효성 검증을 하지 않는 경우, 공격자가 입력 데이터에 SQL 쿼리문을 삽입하여 DB로부터 정보를 열람하거나 조작할 수 있는 취약점입니다.
앞서 미니 로그인 서버와 DB를 실제로 생성하여 SQL Injection 실습을 진행했었습니다. 이번에는 WAF(웹 방화벽)을 통해 SQL Injection을 차단하는 실습을 진행해보고자 합니다.
https://younngjun.tistory.com/63
실습에서 제공하는 Attacker의 가상환경의 브라우저로 접근한 후 KISA 홈페이지의 로그인 화면으로 이동합니다. 먼저 해당 브라우저를 통해 SQL Injection 공격 실습을 수행하겠습니다.
아이디: test' or '1' = '1' #
비밀번호: (아무거나)
비밀 번호 부분은 주석(#)처리가 되어 있으므로, 검증이 일어나지 않으며, 아이디 또한 or '1' = '1'로 항상 참이므로 로그인이 성공하게 되며, 계정 중 제일 첫 번째 계정인 관리자 모드로 로그인이 성공한 것을 확인할 수 있습니다.
WAF를 이용하여 SQL Injection 탐지(로그 분석) / 필터링
AdminConsole로 접속한 후, 웹 브라우저를 실행한 다음 'https://192.168.0.222:222'에 접속하면 APPLICATION INSIGHT WAF 이라는 웹 방화벽 사이트가 나옵니다. 로그인 후, 탐지 로그를 조회하면 다음과 같이 SQL Injection 로그를 확인할 수 있습니다.
그럼 이제 차단 실습을 수행하도록 하겠습니다.
[정책 설정] → [도메인별 정책] → [KISA]의 SQL Injection을 확인하면 [조치]란에 녹색의 '탐지'로 되어있습니다. 이를 한번 더 눌러 '차단'으로 변경하고 적용합니다.
또한 [정책 설정] → [기본 설정] → [운영 모드]를 '차단 모드'로 변경하고 적용합니다.
이제 다시 공격자의 가상환경으로 돌아가서 다시 공격을 수행해보도록 하겠습니다. 위와 마찬가지로 아이디와 비밀번호를 입력하였을 때 요청이 막혔다는 메시지가 떴습니다. 공격이 차단되었다는 의미입니다.
'보안 > 2023 KISA 정보보호 제품군 실습 훈련 - 중급' 카테고리의 다른 글
인프라 구축 시나리오 실습 3(업무망 방화벽/NAT 정책 설정) (0) | 2023.02.18 |
---|---|
인프라 구축 시나리오 실습 2(UTM, WAF 설정 및 정책 적용) (0) | 2023.02.18 |
인프라 구축 시나리오 실습 1(인터페이스 객체 생성 및 웹, 파일 서버 접근 설정) (0) | 2023.02.18 |
웹 방화벽 WAF 실습 2(Command Injection 탐지/차단) (0) | 2023.02.17 |
통합 보안 시스템 UTM 실습(HFS rejetto 공격 탐지/차단) (0) | 2023.02.15 |