도카이트

[DVWA] SQL Injection (Low) 본문

Web/DVWA

[DVWA] SQL Injection (Low)

dodoh4t 2022. 5. 19. 21:59
728x90
반응형

SQL Injection

SQL Injection은 Code Injection의 한 기법으로 클라이언트의 입력값을 조작하여 서버의 데이터베이스를

공격할 수 있는 공격방식을 말한다. 주로 사용자가 입력한 데이터를 제대로 필터링,

이스케이핑하지 못했을 경우에 발생한다.

 

 

페이지 화면

[DVWA - SQL Injection]

- User ID를 입력하고 Submit 할 수 있는 화면이 보인다!

- SQL Injection 문제이므로 먼저 싱글 쿼터를 삽입하여 시도해보자!

 

 

먼저 SQL Injection 실습을 하기 이전에, SQL Injection의 공격 기법은 대표적으로 다음과 같다 !

SQL Injection의 종류와 각 특징을 먼저 간단히 살펴보고 실습을 진행해보도록 하자 :)

 

 

SQL Injection의 종류

  • Error Based : 논리적 에러를 이용한 SQL Injection 공격. SQL 쿼리에 고의적으로 오류를 발생시켜 출력되는
                          에러의 내용을 통해 필요한 정보를 찾아낸다.
  • Union Based : 정상적인 쿼리문에 Union 키워드를 삽입하여 원하는 쿼리문을 실행하는 SQL Injection 공격
                            Union 키워드는 두 개 이상의 쿼리문에 대한 결과를 통합해 하나의 테이블로 출력하는 키워드
  • Boolean Based : 참과 거짓만 출력하는 페이지에서 쿼리를 조작하여 정보를 획득하는 SQL Injection 공격
  • Time Based : 응답의 참과 거짓을 구분할 수 없을 때 사용하는 SQL Injection 공격
                           쿼리문의 참과 거짓에 따라 응답 시간을 다르게 하여 참과 거짓을 판별
                           sleep(), benchmark() ... 등의 함수 사용

 

 

싱글 쿼터(’) 삽입 시 SQL 에러 출력

[싱글 쿼터 입력 시 SQL 구문 에러 발생]

- 싱글 쿼터를 단일로 입력하여 Submit 시 SQL 구문 에러가 출력된다.

- 이를 통해서 SQL Injection 공격에 대한 취약점이 존재한다는 점을 알 수 있다!

 

 

항상 참이 되는 입력값 삽입

[1' or '1'='1 삽입]

- SQL Injection 공격에 가장 기본적이고, 기초적으로 삽입하여 공격할 수 있는 구문 중 하나이다.

- 다른 여러 가지 예시는 SQL Injection Cheet Sheet 등을 참고하여 시도해볼 수 있다!

- 1’ or ‘1’=’1 을 입력하여 Submit 시, 데이터베이스에 존재하는 모든 ID 정보가 출력된다!

728x90

'Web > DVWA' 카테고리의 다른 글

[DVWA] Weak Session IDs (Low)  (0) 2022.05.19
[DVWA] Blind SQL Injection (Low)  (0) 2022.05.19
[DVWA] Insecure CAPTCHA (Low)  (0) 2022.05.19
[DVWA] File Upload (Low)  (0) 2022.05.19
[DVWA] File Inclusion (Low)  (0) 2022.05.18
Comments