본문의 내용을 가지고
어떠한 프로그램에 공격을 시행하여 발생하는 일은
전적으로 공격을 시행한 본인에게 있습니다.
반드시 실습은 본인이 구축하여 시행하시길 바랍니다.
========================================================
실습 환경 : VMware
실습 com1 : kali linux
실습용 취약한 server : bee-box
※ kali와 bee-box는 검색하여 쉽게 설치가 가능합니다.
========================================================
지난 시간
지난 시간 union based sql injection 공격에 대해서 Snort Rule 구성을 통해 탐지를 해보도록 하겠습니다.
네트워크 망도
kali에 snort를 설치하였습니다. 설치 명령어는 다음과 같습니다.
$ sudo apt-get install snort
이따가 패킷 캡쳐를 위해 가상 머신들은 전부 네트워크를 host-only로 쓸데없는 네트워크 트래픽을 끊었습니다.
먼저 union based sql injection 공격 과정을 살펴보겠습니다.
1. sql 공격이 가능한지 '(따옴표)를 넣어 확인해본다.
2. 공격 구문을 통해서 맞는 컬럼 수를 찾는다(' union select all 1,2,3,4,5,6,7#)
3. 테이블 및 컬럼 조회를 통해 상세한 부분까지 조회를 해봄
그에 대한 룰입니다.
라인 | 탐지 rules |
1 | alert tcp any any -> any 80 (msg : "SQL Injection[single quote]"; content : "%27"; sid : 3000001;) |
2 | alert tcp any any -> any 80 (msg : "SQL Injection[union based]"; content : "%27"; content : "union"; content : "select"; content : "%23"; sid : 3000002;) |
3 | alert tcp any any -> any 80 (msg : "SQL Injection[union based select table_name]"; content : "%27"; content : "union"; content : "select"; content : "information_schema"; content : "table_name", sid : 3000003;) |
4 | alert tcp any any -> any 80 (msg : "SQL Injection[union based select column_name]"; content : "%27"; content : "union"; content : "select"; content : "information_schema"; content : "column_name", sid : 3000004;) |
5 | alert tcp any any -> any 80 (msg : "SQL Injection"; content : "%27"; content : "select"; content : "from"; sid : 3000005;) |
6 |
실제 탐지 결과
현재 만든 snort rule이 union based injection 공격에 대해서 완벽하다라고 말할 수는 없지만 오탐을 줄이고 범용성을 높이는 방법을 꾸준히 연구해보겠습니다.
오류가 있는 부분이 있거나 설명이 빈약하면
댓글로 지적해주시면 감사하겠습니다.
'취약점 > 웹 취약점' 카테고리의 다른 글
[Web 취약점] Injection 공격 방법(SQL Injection 2 : union based injection이 성공할 수 있었던 이유) (0) | 2021.10.26 |
---|---|
[Web 취약점] Injection 공격 방법(SQL Injection 2 : union based injection) (0) | 2021.10.26 |
[Web 취약점] Injection 공격 방법(SQL Injection 1) (0) | 2021.10.11 |
댓글