[정보보안] SQL 인젝션(Injection)
[정보보안] SQL 인젝션(Injection)
응용 프로그램 보안 상의 허점을 의도적으로 이용하여, 개발자가 생각지 못한 SQL문을 실행되게 함으로써 데이터베이스를 비정상적으로 조작하는 공격방법입니다.SQL Injection 공격의 원리
- SQL 인젝션 공격에 취약점이 발생하는 곳은 웹 애플리케이션과 데이터베이스가 연동되는 부분에 공격자가 임의의 SQL 명령어를 삽입하여 공격합니다.
- 보통 사용자 로그인 부분, 게시물 검색 부분, 우편번호 검색 부분, 자료실 등이 대표적이다.
SQL Injection 공격 예시
SQL Injection 공격 : "파라미터를 이용한 쿼리의 재구성"-> 웹 어플리케이션이 뒷 단에 있는 Databae에 질의(쿼리)를 하는 과정 사이에 일반적인 값 외에 악의적인 의도를 갖는 구문을 함께 삽입하여 공격자가 원하는 SQL 쿼리문을 실행하는 대표적인 웹 해킹 기법
Where절에 id='' or 1=1 이라는 문장이 들어간다면?
id =''는 id에 들어가는 내용이 없으므로 거짓으로 판정됩니다.하지만 1=1라는 문장은 항상 참입니다.
그 두 문장 사이에는 OR가 쓰였습니다. 둘 중 한 문장이 참이면 무조건 참이 되죠
즉, if문의 의미가 사라집니다! 무조건 참이 출력되기 때문이죠.
따라서 저렇게 문장을 쓰면 모든 행이 출력됩니다!
SQL Injection 공격의 종류
- 인증우회 : AB(Auth Bypass)
- 데이터노출 : DD(Data Disclosure)
- 원격명령 실행 : RCE(Remote Command Execute)
출처
댓글
댓글 쓰기