22회 선택하기
17. 17. 다음의 HTTP Request 로그를 보고 물음에 답하시오.
[HTTP request]

GET /member/login.php?user_id=1' or '1' = '1'# &user_pw=foo HTTP/1.1

GET /member/login.php?user_id=1' or '1' = '1 &user_pw=foo HTTP/1.1

​

1) 해당 취약점은 무엇인가?

2) 그렇게 판단한 이유는?

3) 대응 방안은?

클릭하면 정답이 보입니다.
정답 확인 맞췄어요 O 틀렸어요 X
​1) SQL Injection

2) user_id에 특수 문자를 포함한 1' or '1'='1'#을 넣어서 로그인 검증을 하기 위한 SQL 문을 참으로 만들어 인증 로직을 우회하려는 시도를 하고 있기 때문임.

3-1) 입력값에 특수 문자가 포함되지 않도록 필터링 로직을 구현(이 경우 클라이언트 단이 아닌 서버에 검증 로직을 반드시 넣어야 함. 자바스크립트로 클라이언트 단에서만 검증하는 경우 Paros, Burpsuite와 같은 proxy툴로 검증 로직을 우회할 수 있기 때문임)

3-2) 서버의 DB Connection 구문을 Prepared Statement 방식으로 변경(사용자가 입력한 값이 SQL 명령의 일부가 아닌 매개 변수로 처리되기 때문에 해당 컬럼에만 들어가고 SQL문 전체에 영향을 주지 않음)
위키 해설 위키해설을 등록해주세요!
📝 문제 해설(등록자)
클릭하면 보입니다.
🤖 AI 문제 해설
AI의 해설은 정확하지 않을 수 있으니 읽어보시고 꼭 평가해주세요. 시기에 따라 사용 가능한 모델이 달라질 수 있습니다. 🤝 무료 LLM 모델을 찾고 있습니다.
클릭하면 보입니다.
AI 답변을 생성 중입니다.
Loading...

최대 1분까지 걸릴 수 있습니다.

🗣️ 관련 포럼글
자유 댓글
학습 팁

모든 문제들의 저작권은 원저작권자에게 있습니다. 본 사이트는 웹상에 공개되어 있는 문제만 모아서 보여드립니다.
저작권 안내   데이터 보호 안내   제휴 문의

copyright 2026 뉴비티::새로운 CBT 시스템 - newbt.kr (Listed on LeanVibe)