보안 테스트-주입

주입 기술은 응용 프로그램의 입력 필드를 사용하여 SQL 쿼리 또는 명령을 주입하는 것으로 구성됩니다.

웹 애플리케이션-주입

성공적인 SQL 주입은 데이터베이스에서 민감한 데이터를 읽고 수정할 수 있으며 데이터베이스에서 데이터를 삭제할 수도 있습니다. 또한 해커가 DBMS 종료 / 데이터베이스 삭제와 같은 데이터베이스 관리 작업을 수행 할 수 있습니다.

간단한 다이어그램을 통해이 결함의 위협 원, 공격 벡터, 보안 약점, 기술적 영향 및 비즈니스 영향을 이해하겠습니다.

이 응용 프로그램은 다음과 같은 취약한 SQL 호출의 구성에 신뢰할 수없는 데이터를 사용합니다.

String query = "SELECT * FROM EMP WHERE EMPID = '" + request.getParameter("id") + "'";

손에

Step 1 − 아래와 같이 애플리케이션의 SQL Injection 영역으로 이동합니다.

Step 2− 실습에서 주어진 것처럼, 인증을 우회하기 위해 String SQL Injection을 사용합니다. SQL 주입을 사용하여 올바른 암호를 사용하지 않고 보스 ( 'Neville')로 로그인합니다. Neville의 프로필을 볼 수 있고 모든 기능 (검색, 생성 및 삭제 포함)을 사용할 수 있는지 확인합니다.

Step 3 − 매개 변수를 'a'= 'a'또는 1 = 1로 전송하여 암호를 우회 할 수 있도록 SQL을 주입합니다.

Step 4 − Exploitation 이후, 아래와 같이 Admin 인 Neville로 로그인 할 수 있습니다.

SQL 주입 방지

SQL 주입을 방지하는 방법에는 여러 가지가 있습니다. 개발자는 코드를 작성할 때 그에 따라 특수 문자를 처리하는지 확인해야합니다. 확실히 개발자를위한 가이드 인 OWASP에서 사용할 수있는 치트 시트 / 예방 기술이 있습니다.

  • 매개 변수가있는 쿼리 사용
  • 모든 사용자 제공 입력 이스케이프
  • 최종 사용자를 위해 데이터베이스에 대한 최소 권한 활성화