• 카테고리

    질문 & 답변
  • 세부 분야

    보안

  • 해결 여부

    미해결

마지막 예제 질문이요

20.08.18 22:08 작성 조회수 98

2

비밀 게시글이 일반 게시글보다 밑에 있고 idx4일 때

‘ or idx=4# 말고

’ or idx=4를 하면 왜 안되는건가요??

  <o:p></o:p>

select * from board where idx=4 and password=’‘ or idx=4

해서 앞에 and 먼저 해서 거짓이고 or에서 idx=4가 참이라 볼 수 있을 것 같았는데 안되더라구요

쿼리 문이 예상한 것과 달라서 그런건가요??

그런거라면 만약 위에처럼 쿼리문이 되어있으면 게시물을 볼 수 있는건가요..?

  <o:p></o:p>

답변 2

·

답변을 작성해보세요.

1

sosw3539님의 프로필

sosw3539

질문자

2020.08.18

앗 뒤에 싱글쿼터를 잊었네요 감사합니다 ㅜ!!

0

안녕하세요. 

말씀하신대로 하면, 서버 측에서는 완성되는 쿼리문은 다음과 같습니다.

select * from board where idx=4 and password=''or idx=4'

이렇게 완성이 됩니다.

즉 기존 패스워드 부분에 싱글쿼터로 감싸져있습니다.

이로 인해 뒤에 있는 싱글쿼터를 무효화 시키기 위해 주석 문자를 사용하였습니다.

select * from board where idx=4 and password=''or idx=4#' <= 뒤에 싱글쿼터 무효화