본문 바로가기
취약점/웹 취약점

[Web 취약점] Injection 공격 탐지(Snort : union based injection 탐지)

by 인성패밀리 2021. 10. 27.
반응형

본문의 내용을 가지고

어떠한 프로그램에 공격을 시행하여 발생하는 일은

전적으로 공격을 시행한 본인에게 있습니다.

반드시 실습은 본인이 구축하여 시행하시길 바랍니다.

========================================================

실습 환경 : VMware

실습 com1 : kali linux

실습용 취약한 server : bee-box

 

※ kali와 bee-box는 검색하여 쉽게 설치가 가능합니다.

========================================================


지난 시간

 

[Web 취약점] Injection 공격 방법(SQL Injection 2 : union based injection)

본문의 내용을 가지고 어떠한 프로그램에 공격을 시행하여 발생하는 일은 전적으로 공격을 시행한 본인에게 있습니다. 반드시 실습은 본인이 구축하여 시행하시길 바랍니다. ========================

c-i-s.tistory.com

 

지난 시간 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  

 

실제 탐지 결과 

총 6개의 http 패킷이 검출

 

현재 만든 snort rule이 union based injection 공격에 대해서 완벽하다라고 말할 수는 없지만 오탐을 줄이고 범용성을 높이는 방법을 꾸준히 연구해보겠습니다.

 

 

오류가 있는 부분이 있거나 설명이 빈약하면

댓글로 지적해주시면 감사하겠습니다.

반응형

댓글