12. 다음 로그에서 나타나는 공격을 보고 물음에 답하시오.
"GET /login?id=1'+and+substr(password,2,1)='0'# HTTP/1.1" 200 1739 "" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.95 Safari/537.36" "GET /login?id=1'+and+substr(password,2,1)='1'# HTTP/1.1" 200 1788 "" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.95 Safari/537.36" "GET /login?id=1'+and+substr(password,1,1)='2'# HTTP/1.1" 200 1789 "" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.95 Safari/537.36" "GET /login?id=1'+and+substr(password,1,1)='3'# HTTP/1.1" 200 1789 "" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.95 Safari/537.36"1) 어떤 공격 기법이 사용되었는가? 2) 해당 공격 원리에 대해 설명하시오. 3) 공격의 결과에 대해 설명하시오.
정답 확인 | 맞췄어요 O | 틀렸어요 X |
2) 단순히 SQL문을 조작하여 인증을 우회하거나 특정 명령을 수행하는 것 외에 DB에 저장된 값을 추정 가능. 분할과 정복의 원리를 이용하여 문자열 중 단일 문자와의 비교를 통해 결과가 True or False 인지 확인.
3) id가 1인 사용자의 password 컬럼값에 대해 substr( )함수를 이용하여 1부터 순차적으로 한문자 씩 비교를 수행한다.