DVWA에서 보안 레벨을 Medium으로 변경한 뒤 다시 File Inclusion 탭으로 들어가 이전과 동일하게 작업을 해봅니다.
동일한 작업시 오류가 발생하는 것을 확인할 수 있습니다.
해당 소스코드를 확인해봅니다.
low 단계에서는 사용자의 입력을 file 변수로 받고 str_replace()함수로 치환해주는 작업이 없었기 때문에 취약점이 발생했습니다.
medium 단계에서는 이러한 치환 작업이 존재하기 때문에 오류가 발생했습니다.
http:// 또는 https:// 문자열이 치환되었기 때문에 입력값을 hTTp 또는 hTtpS 등으로 변경하여 우회할 수 있습니다.
동일하게 연결이 된 것을 확인할 수 있습니다.
문자를 치환하는 것 역시 중요하지만 이러한 치환은 우회될 가능성이 높기 때문에 근본적인 원인인 사용자의 입력을 바로 사용하는 것등을 제거하는 것이 중요합니다.