Juice Shop Broken Access Control [ Basket Access Tier 1 ]
이 취약점 SQL Injection 을 통해 로그인창을 우회하여 관리자 계정으로 로그인이 되는지 진단한다.
아래와 같이
진단결과 다음과 같이 SQL Injection 에 성공하여 관리자 계정으로 로그인이 가능한것을 볼수있다.
이 취약점 SQL Injection 을 통해 로그인창을 우회하여 관리자 계정으로 로그인이 되는지 진단한다.
아래와 같이
' or 1=1 --
를 통해 SQL Injection 취약점이 발생하는지 진단한다.진단결과 다음과 같이 SQL Injection 에 성공하여 관리자 계정으로 로그인이 가능한것을 볼수있다.
SQL Injection 대응 방안
1) 입력값 검증
사용자의 입력이 DB Query에 동적으로 영향을 주는 경우 입력된 값이 개발자가 의도한 값(요효값) 인지 검증합니다.
|
등과 같은 의도하지 않은 입력값에 대해 검증하고 차단해야 합니다.
2) 저장 프로시저 사용
저장 프로시저는 사용하자고 하는 Query에 미리 형식을 지정하는 것을 말합니다. 지정된 형식의 데이터가 아니면 Query가 실행되지 않기 때문에 보안성을 크게 향상시킵니다.
3) 서버 보안
- 최소 권한 유저로 DB 운영
- 사용하지 않는 저장 프로시저와 내장함수 제거 또는 권한 제어
- 목적에 따라 Query권한 수정
- 공용 시스템 객체의 접근 제어
- 신뢰할 수 있는 네트워크, 서버에 대해서만 접근 허용
- 에러 메시지 노출 차단
댓글
댓글 쓰기