전체 글에 해당하는 글 157

  1. SQL Injection2022.11.07
반응형

SQL Injection

Devel/그 외 ...|2022. 11. 7. 16:01
반응형

SQL Injection

 

 

웹 사이트의 보안상 허점을 이용해 특정 SQL 쿼리 문을 삽입하여 공격자가 원하는 데이터베이스의 중요한 정보 열람 or 조작할 수 있는 취약점이 있다.

 

웹서버의 로그인 페이지로 이동하여 아이디와 패스워드 아래 문자열을 입력하여 결과 확인한다.

ID : ' or 1=;--
PW : ' or 1=1;--

인증 실패 메시지가 나타날 경우는 SQL Injection취약점은 존재하지 않지만, 로그인이 될 경우는 취약점이 존재한다.

웹서버 오류 메시지가 나타날 경우도 SQL Injection 가능성이 있으므로 세부적인 점검이 필요하다.

 

로그인과 패스워드 입력 칸에 필터링을 해줄 필요가 있는데, 

'or 1=1;- - or 1=1-- ')or('a'='a + or 1=1- -
' ' or 1=1- - 'or 'a'='a sql' or 1=1- - "
"or 1=1 -- " or "a"="a sql" or 1=1-- '

위의 값들은 필터링이 필요하다.

 

ID: test' UNION SELECT 1,1 --
PW: test
->
SELECT * FROM users WHERE ID='test' UNION SELECT 1,1 -- and PW='test'

 

웹 서버의 오류 정보가 사용자에게 노출되지 않아야하며, 연동되는 데이터베이스의 접근 권한이 최소화되어야하며, 사용자 입력 폼(로그인 폼, 검색 폼, URL 등)을 대상으로 특수문자, 특수구분 필터링 규칙 적용이 필요하다.

 

ID, PASSWORD, 게시판 제목, 본문, 검색창, 주소검색창 등의 모든 입력란에 특수문자 (등호, 부등호, 인용부호 등)를 직접 입력하지 못하도록 웹서버의 소스코드를 수정이 필요하며, 입력폼이 문자인 경우 정규표현식을 이용하여 특수문자를 치환이 필요하다. sql문에서 활용되는 문자(', ", ;, --, or 등)는 반드시 치환해야한다.

 

 

댓글()
loading