SQL Injection(First Time)

이원찬·2023년 11월 22일
0

Web Security

목록 보기
1/8

우선 sql injection 을 공부하기 전에 sql에 대해서 알아야 할 필요가 있다.
SQL에 대해서는 간단하게 짚고 넘어가지만 추가로 공부하고 SQL에 더 깊이 알수록 다양한 SQL Injection 공격이 가능하고 필터링을 우회할 수 있는 응용력이 생긴다.

SQL은 관계형 데이터베이스 관리 시스템(RDBMS)의 데이터를 관리하기 위해 설계된 특수 목적의 프로그래밍 언어이다.

SQL은 데이터 조작 언어(Data Manipulation Language)데이터 정의 언어(Data Definition Language)로 구분된다.

// SQL DML
SELECT : 데이터베이스에서 데이터를 추출한다.
UPDATE : 데이터베이스에 있는 데이터를 수정한다.
DELETE : 데이터베이스에서 데이터를 삭제한다.
INSERT : 데이터베이스에 새로운 데이터를 추가한다.
// SQL DDL
CREATE DATABASE : 새로운 데이터베이스를 생성한다.
ALTER DATABASE : 데이터베이스를 수정한다.
CREATE TABLE : 새로운 테이블을 생성한다.
ALTER TABLE : 테이블을 수정한다.
DROP TABLE : 테이블을 삭제한다.
CREATE INDEX : 인덱스(검색 키)
DOP INDEX : 인덱스를 삭제한다.

SQL Injection 은 주로 웹 애플리케이션과 데이터베이스가 연동되는 부분에서 취약점이 발생한다.
공격자는 로그인, 게시물 검색, 우편번호 검색, 자료실 등에 조작된 SQL 구문을 삽입하여 공격한다.

SQL Injection 공격 연습해보자

(인터넷 해킹과 보안 4판 - 한빛아카데미 - 김경곤) 참고

Web Goat로 연습을 할것이다.
그 전 연습 환경을 맞춰보자.
1) JDK 파일 준비
2) PATH 설정
3) Web Goat 다운
4) cmd를 열어 Web Goat를 다운한 위치로 이동 -> java -jar webgoat-container-7.1-exec.jar 입력
5) http://localhost:8080/WebGoat/login.mvc 접속

다음 Web Goat에 로그인을 해준 뒤 Injection Flaws 메뉴를 클릭한다.

profile
개발과 보안을 공부하고 있습니다.

0개의 댓글