반응형
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 인젝션에서 대량 노출 예방
2021 버전도 포스팅 예정입니다.
728x90
'Security > 정보보안기사' 카테고리의 다른 글
[OWASP 2017] A3 민감한 데이터 노출 (0) | 2023.01.26 |
---|---|
[OWASP 2017] A2 취약한 인증 (0) | 2023.01.25 |
[정보보안기사] #10. 보안솔루션의 정의와 보안용어 정리 (1) | 2022.11.17 |
[정보보안기사] #9. 정보보안기사 실기 기출 요약 (2) (0) | 2022.11.16 |
[정보보안기사] #8. 정보보안기사 실기 기출 요약 (1) (1) | 2022.11.16 |
댓글