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

sosw3539님의 프로필 이미지
sosw3539

작성한 질문수

웹 개발자와 정보보안 입문자가 꼭 알아야 할 웹 해킹 & 시큐어 코딩

[실습2-3] 인증 우회 공격을 통한 비밀글 무단 열람 실습

마지막 예제 질문이요

작성

·

156

2

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

‘ or idx=4# 말고

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

 

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

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

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

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

 

답변 2

1

sosw3539님의 프로필 이미지
sosw3539
질문자

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

0

크리핵티브님의 프로필 이미지
크리핵티브
지식공유자

안녕하세요. 

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

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

이렇게 완성이 됩니다.

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

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

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

sosw3539님의 프로필 이미지
sosw3539

작성한 질문수

질문하기