정보보안기사 복구 문제의 한계 안내
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문 전체에 영향을 주지 않음)
위키 해설 위키 편집·등록하다 보면 어느새 합격!
문제 풀이
클릭하면 보입니다.
관련 포럼글
자유 댓글

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

copyright 2024 뉴비티::새로운 CBT 시스템 - newbt.kr 제휴 문의