[웹해킹/5_SQL 인젝션 공격] WHERE 공격

주연쓰·2021년 7월 19일
1

웹해킹

목록 보기
15/23

1. SQL 인젝션 공격 이란?

데이터베이스에 전송되는 SQL query문을 조작하여 데이터에 접근하거나 변조하는 공격 방법이다.

2. SQL 인젝션 공격 실습 - WHERE 구문 우회

(1) DVWA Security > DVWA Security Level ; low 로 실습

(2) SQL Injection > User ID 에 1을 입력하면, 다음과 같이 사용자 정보가 보인다.

(3) 취약한 페이지의 경우, ' 를 입력했을 때 error 발생

이는 소스코드에서 $id 변수가 이미 작은 따옴표로 둘러싸여 있는데, $id 자리에 작은 따옴표가 들어가면 ''' 가 되기 때문에 SQL명령문 오류가 발생한다.
따라서, 해커가 SQL 명령문을 조작할 수 있다는 뜻!

(4) 명령창에 1' or '1'='1 을 입력해준다.

SQL 명령문 상에서는,

WHERE user id = '1' or '1'='1' 

처럼 작동한다.
(WHERE user id = '1' or '1'='1' 에서 제일 바깥 작은따옴표의 안쪽 부분이 입력한 명령)

'1'='1' 은 참이라는 뜻이므로, 모든 사용자의 정보가 출력된다.

(5) 명령창에 '# 입력

# 이후의 명령은 주석처리되어 실행되지 않는다.
따라서 SQL 명령문 상에서는,

WHERE user id = '' #'

처럼 작동한다.
아무일도 일어나지 않는다.

profile
( •̀ ω •́ )✧

0개의 댓글