-
카테고리
-
세부 분야
보안
-
해결 여부
미해결
마지막 예제 질문이요
20.08.18 22:08 작성 조회수 117
2
비밀 게시글이 일반 게시글보다 밑에 있고 idx가 4일 때
‘ 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>
답변을 작성해보세요.
1
0
크리핵티브
지식공유자2020.08.18
안녕하세요.
말씀하신대로 하면, 서버 측에서는 완성되는 쿼리문은 다음과 같습니다.
select * from board where idx=4 and password=''or idx=4'
이렇게 완성이 됩니다.
즉 기존 패스워드 부분에 싱글쿼터로 감싸져있습니다.
이로 인해 뒤에 있는 싱글쿼터를 무효화 시키기 위해 주석 문자를 사용하였습니다.
select * from board where idx=4 and password=''or idx=4#' <= 뒤에 싱글쿼터 무효화
답변 2