본문 바로가기

사이버보안 3학년 1학기/YESS동아리

SQL Injection에서 주로 쓰이는 주석

1. #

주소에서는 %23 으로 바뀐다.

해당 질의문에서 한 줄만 주석처리 한다.

예를 들어 멀티라인에서 첫번째줄에 #이 들어있고 

두번째, 세번째에는 없을 경우 첫번째에서만 # 뒤의 문자열이 주석처리되고 두번째, 세번째에서는 정상적으로 실행된다.



2. --

주소에서는 그대로의 모습을 가지고 있다.

해당 질의문에서 한 줄만 주석처리 한다.

설명은 위와 같다.

주의할 점은 --의 바로 뒤에 공백이나 다른 문자가 있어야지 주석으로 성립된다.



3. /*...*/

주소에서는 그대로의 모습을 가지고 있다.

해당 질의문에서 /* 부터 */ 까지를 주석으로 처리한다.

한마디로 멀티라인이 가능한 주석이다.

SELECT * FROM user WHERE id='guest' /* and pw='1234a' */

위와 같은 질의문이 있다면 pw 부분을 제외한 채, id가 guest인 것만 user 테이블에서 골라서 출력하게 된다.


4. ;%00

%00은 원래 아무것도 없는 Null을 뜻하는데 ;와 합쳐짐으로써 SQL에서 한줄을 주석처리할 수 있다.

이 뒤에 오는 문자열은 모두 주석으로 처리된다.


참고문헌 

SQL 인젝션 지식 창고 - https://websec.ca/kb/sql_injection