이번 강의에 딸린 퀴즈 3번의 답이 잘 이해가 안 됩니다.

SELECT *FROM accounts WHERE user_id='admin' and user_pw='(A)' 에서 (A)에 들어갈 수 있는 로그인 우회 방법을 모두 고르라는 퀴즈 말인데,

답에 '+(select user_pw from accounts where user_id='admin')+' 이 포함되더군요.
하고자하는 의미는 이해가 가는데 SQL DML 명령문에 '+'나 '('가 포함되어도 되는지 의아합니다. 굳이 있어야 하는지도요.
그냥 ' select user_pw from accounts where user_id='admin'' 이런 식으로 하는건 안되는 걸까요?

#웹해킹 #서버 #sql
작성자 정보
답변 1
avatar
p6rkdoye0n
대표 업적 없음

질문자님 말씀처럼 원래는 +문자는 잘 쓰지 않죠 ㅎㅎ 웹 해킹 심화에서 나올텐데 union sql injection이라는 공격이 있어요. sql구문을 합쳐서 결과를 만드는 공격인데 굉장히 많이 사용합니다. 질문자님이 아래에 +기호 빼고 쓰신 구문은 올바르게 실행이 안됩니다. 대신 앞에 union이라는 문자만 추가하고 뒤에 주석처리 해주면 올바르게 실행이 돼요! 그리고 괄호를 친 것은 하나의 결과를 묶으려고 쓴 것입니다. 아직 저 커리큘럼에서는 union공격을 설명하기에는 너무 많다고 생각해 빼버린거 같습니다.

2023.02.07. 17:49
질문에 대한 답을 알고 계신가요?
지식을 나누고 포인트를 획득해보세요.
답변하고 포인트 받기