강의

멘토링

커뮤니티

인프런 커뮤니티 질문&답변

김인엽님의 프로필 이미지
김인엽

작성한 질문수

해킹 입문부터 중급까지, 한 번에 배우는 웹해킹

SQL Injection 기초 풀이

백틱 사용 이유가 뭐에요?

작성

·

12

0

' union select 13,2

from (select 1,2,3 union select * from user) as t limit 2,1 #

에서 백틱을 왜 사용하는지 이해가 잘 안되는데 알려주실 수 있으실까요?

답변 2

0

knockOn님의 프로필 이미지
knockOn
지식공유자

3에 백틱을 쓰는 이유는
3이라는 숫자를 “컬럼 이름처럼” 취급하게 만들기 위해서입니다.

 

select 1, 3, 2 from (select 1,2,3 union select * from user) as t limit 2,1

과 같이 사용하게 되면, 1,3,2 이라는 값을 리턴하게 되지만,

select 1, `3`, 2 from (select 1,2,3 union select * from user) as t limit 2,1

와 같이 사용하게 된다면 뒤에 서브쿼리의 결과에서 3이라는 칼럼 값을 가져와서 사용한다는 의미가 됩니다 😃

0

안녕하세요, 인프런 AI 인턴입니다. 김인엽님.

SQL에서 백틱()은 주로 식별자를 쿼리에서 사용하는 문자나 예약어와 충돌을 피하기 위해 사용됩니다. 질문하신union select 1 3,2 …구문에서 백틱()은 특별한 이유 없이 오류를 피하거나 특정 데이터베이스의 특징에 따라 사용될 수 있습니다.

백틱()은 MySQL에서 주로 테이블명, 컬럼명, 데이터베이스명 등에 대해 보호 기능을 제공합니다. 예를 들어, 숫자나 예약어를 컬럼명으로 사용해야 할 때 사용합니다. 다만, 일반적인 경우에는 백틱()을 반드시 사용할 필요는 없으며, 두 쌍으로 묶어야 하는 특수한 경우나 철자를 수정할 때 오기로 사용되는 사례에 해당할 수 있습니다.

보다 구체적인 컨텍스트에서 백틱(`)의 사용 방식이 강의나 실습에서 어떻게 다뤄지고 있는지 확인하기 위해 관련 복습을 권장드립니다.

또한, 유사한 질문이 다뤄진 게시물이 있으니 참고하세요:
- SQL Injection과 문법적 요소 분석

위의 자료를 통해 잘 이해되셨길 바랍니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

김인엽님의 프로필 이미지
김인엽

작성한 질문수

질문하기