본문 바로가기
Security/정보보안기사

[OWASP 2017] A1 인젝션

by Berasix 2023. 1. 25.
반응형

1. 개요

매우 일반적이며, 과거의 코드에서 나타난다.

SQL, LDAP, XPath, NoSQL 쿼리, 운영체제 명령어, XML 파서, SMTP 헤더, 표현식 언어, ORM 쿼리등.

2. 영향

데이터 손실, 파괴, 정보 누출, 정보 공개, 서비스 거부의 등의 결과

3. 취약점 확인

소스코드를 리뷰하고, 모든 파라미터, 헤더, URL, 쿠키, JSON, SOAP, XML 데이터 입력에 대한 자동화 테스트

4. 시나리오

String query = "SELECT * FROM accounts WHERE custID='" + request.getParameter("id") + "'";
Query HQLQuery = session.createQuery("FROM accounts WHERE custID='" + request.getParameter("id") + "'");

위의 코드에서 아래처럼 접근 시 테이블의 모든 레코드가 반환될 수 있다.

http://example.com/app/accountView?id=' or '1'='1

5. 보안 대책

데이터를 지속적으로 명령어와 쿼리로부터 분리시킨다.

1) 안전한 API 사용

2) 화이트리스트나 입력값 유효성 검증

3) 동적 쿼리를 위한 특정 필터링 구문 사용. 특수 문자 필터링

4) LIMIT과 같은 쿼리 사용으로 SQL 인젝션에서 대량 노출 예방

출처 : OWASP Top Ten Web Application Security Risks | OWASP

2021 버전도 포스팅 예정입니다.

728x90

댓글