얼마전에 정보보안 팀으로 부터 아래와 같은 메세지를 받았습니다.
소스 아이피는 러시아 시키들에서 들어왔고 DMZ에 있는 웹서버로 SQL 인젝션에 대한 시도가 있었습니다.
IPS는 아래와 같이 탐지해서 차단을 했습니다.
※ IPS(Intrusion Prevention System) 침입방지시스템
: 네트워크에서 공격 서명을 찾아내여 자동으로 조치를 취함으로 비정상적인 트래픽을 중단시키는 보안 솔루션
크게 String Function 과 UNION 두가지 이벤트가 있었고, String Function은 허용되고, UNION은 차단이 된거 같습니다.
(로그를 보니 동시 수행되는거 같은데..UNION은 차단되어 웹서버 로그에 안나오는 것일 수 있고..)
정보보안솔루션 업체에 확인해 보면 String Function을 차단할 경우 시스템 상 문제가 될 수 있어 권고하지 않는다고 합니다.
그래서 웹서버에는 어떻게 들어왔는지 로그를 찾아 봅니다.
침입IP - - [10/Jun/2020:02:26:24 +0900] "GET /aa/0000000?totalPage=00&searchText=%EC%9B%90%ED%94%BC%EC%8A%A4&selectOption=&nowPage=11111111111111%20UNION%20SELECT%20CHAR(45,120,49,45,81,45),CHAR(45,120,50,45,81,45),CHAR(45,120,51,45,81,45),CHAR(45,120,52,45,81,45),CHAR(45,120,53,45,81,45),CHAR(45,120,54,45,81,45),CHAR(45,120,55,45,81,45),CHAR(45,120,56,45,81,45),CHAR(45,120,57,45,81,45),CHAR(45,120,49,48,45,81,45),CHAR(45,120,49,49,45,81,45),CHAR(45,120,49,50,45,81,45),CHAR(45,120,49,51,45,81,45),CHAR(45,120,49,52,45,81,45),CHAR(45,120,49,53,45,81,45),CHAR(45,120,49,54,45,81,45),CHAR(45,120,49,55,45,81,45),CHAR(45,120,49,56,45,81,45),CHAR(45,120,49,57,45,81,45),CHAR(45,120,50,48,45,81,45),CHAR(45,120,50,49,45,81,45),CHAR(45,120,50,50,45,81,45),CHAR(45,120,50,51,45,81,45),CHAR(45,120,50,52,45,81,45),CHAR(45,120,50,53,45,81,45),CHAR(45,120,50,54,45,81,45),CHAR(45,120,50,55,45,81,45),CHAR(45,120,50,56,45,81,45),CHAR(45,120,50,57,45,81,45),CHAR(45,120,51,48,45,81,45),CHAR(45,120,51,49,45,81,45),CHAR(45,120,51,50,45,81,45),CHAR(45,120,51,51,45,81,45),CHAR(45,120,51,52,45,81,45),CHAR(45,120,51,53,45,81,45),CHAR(45,120,51,54,45,81,45),CHAR(45,120,51,55,45,81,45),CHAR(45,120,51,56,45,81,45),CHAR(45,120,51,57,45,81,45),CHAR(45,120,52,48,45,81,45),CHAR(45,120,52,49,45,81,45),CHAR(45,120,52,50,45,81,45),CHAR(45,120,52,51,45,81,45),CHAR(45,120,52,52,45,81,45),CHAR(45,120,52,53,45,81,45),CHAR(45,120,52,54,45,81,45),CHAR(45,120,52,55,45,81,45),CHAR(45,120,52,56,45,81,45),CHAR(45,120,52,57,45," 408 162
위에서 딱 봐도 nowPage뒤에 %20UNION%20SELECT%20CHAR(어쩌고 저쩌고)... 이렇게 들어왔습니다.
"%20"은 스페이스문자이며 이를 깔끔하게 정리하면!!
"UNION SELECT CHAR(45,120,49,45,81,45)...." 형식으로 붙여서 들어왔습니다.
ASCII코드로 맵핑을 해보면, "-x1-Q-"가 되는군요.
그런데 이게 뭥미??
SQL INJECTION인건 알겠는데, 저 뒤에 붙은 내역이 무엇을 의미하는지 잘 이해가 안가서 구글링을 해봤습니다.
"This is just a test for injection. If an attacker can see xQs in the output then they'll know injection is possible.
There is no "risk" from this particular query.
A developer should pay no attention to whatever injection mechanisms, formats or meanings - these are none of his business."
해석해 보면,
"이건 인젝션 테스트를 한거다. 만약 공격자가 xQ같은 문자를 ouput으로 볼 수 있으면 injection이 가능하다는 것을 알 수 있다
이 쿼리만으로는 리스크가 없다"
그 뒤에건 필요 없는 문장인거 같고..
웹서버에 위와 같이 SQL 인젝션 문구를 넣어 request를 하고,
CHAR()에 해당하는 문자들이 나오면 SQL 인젝션 공격이 가능한 상태로 추가적인 SQL 인젝션 공격으로 이어질 수 있다는 것 같습니다.
위와 같은 검색을 해보니 구글링이 잘 되지 않아 내역을 자체적으로 작성해 봤습니다.
잘못된 부분이 있으면 댓글 주세요.
'IT' 카테고리의 다른 글
여러 폴더에 나눠져 있는 사진 그림 파일 이미지 일괄 변환 (크기, 사이즈, 회전, 이름, 포맷, 확장자 등) (0) | 2022.05.03 |
---|---|
이미지 또는 사진에 있는 글자(텍스트) 추출해서 온라인 쇼핑몰 상품정보에 활용하기, 상품정보 쉽게 발라내기 (초보, 구글, 스마트스토어, 쇼피) (0) | 2022.04.27 |
레드마인(Redmine) 일감 검색기능을 통한 프로젝트 관리 방버 (0) | 2020.04.02 |
유플러스 공유기 포트포워딩 (feat. 시놀로지 NAS) (0) | 2020.03.30 |
애플 아이패드 사파리(Safari) 브라우져 데스크톱 보기 해제 방법 (0) | 2020.03.27 |