-
SQL Injection 기초Hack/Web 2015. 2. 25. 21:26
SELECT * FROM users WHERE login = 'victor' AND password = '123'
취약한 코드이다.
users테이블에서 각각 컬럼을 뽑아와서 로그인하는 쿼리이다.
id와 pw 폼이 존재할것이다
id에 victor
pw에 123을 입력한 쿼리가 저 위의 쿼리이다.
우리가 1을넣는다면
SELECT * FROM users WHERE login = '1' AND password = '1'
해당 쿼리가 전송될것이다.
이를 악용하여보자
id폼에 'or 1=1--
pw에는 아무거나 넣어주자
그럼 쿼리는 아래와같이 된다.
SELECT * FROM users WHERE login = ''or 1=1-- AND password = '123'
이렇게보면 이해가 잘안된다.
그럼 db에 들어갈때는 어떻게 들어가는지 보자
SELECT * FROM users WHERE login = ''or 1=1--
쿼리는 login에 '' 로 닫혀버린다. 그뒤에 or 1=1이란 명령이 실행된다.
-- 주석을통해 password가 무시된다.
'Hack > Web ' 카테고리의 다른 글
Blind SQL Injection (0) 2015.03.02 dun_worry_vase (0) 2015.02.23