본문 바로가기

웹 해킹

웹 해킹 공부 일기장 11 - 2 (파일 다운로드)

파일 다운로드 취약점은 간단합니다.

 

파일을 다운로드할 때 임의의 원하는 파일을 다운로드하는 것입니다.

파일 다운로드 기능에서 만약 파일 경로를 받아 다운로드를 실행시켜 준다면 파일 경로에 ../ 로 디렉토리를 이동하여 원하는 파일을 다운로드 하는 것입니다.

 

파일 다운로드 취약점을 발견한다면 가장 먼저해야할 일이 소스 코드 다운로드입니다. 소스 코드를 확인할 수 있다면 공격자는 서버의 숨겨진 취약점들을 찾을 수 있습니다

 

1. 

다운로드 요청

 

사진과 같이 파일 다운로드가 경로를 통해 해당 경로에 있는 파일을 다운로드 시켜주는 것 같습니다.

파라미터로 받는 경로를 조작하면 지금 다운로드해주는 기능의 download.php 파일의 소스코드를 확인할 수 있습니다.

다운로드 파일 소스 코드

 

이렇게 다른 곳에 있는 임의의 파일을 다운로드 할 수 있는 취약점이 파일 다운로드 취약점입니다.

 

해당 서버에 존재하는 소스코드를 다운받고 확인한다면 서버에 존재하는 다른 취약점 또한 찾을 수 있게 됩니다.

 

2. 

이번에도 1번과 같이 파일 경로정보를 받아 파일을 다운로드 시켜주는 것 같습니다. 

하지만 1번과 똑같이 시도해보니 다른 위치의 파일이 다운로드가 안됩니다. 아마 1번에서 확인한 주석처리로 된 ../ 이 있을 경우 빈 문자열로 바꿔주는 기능이 이번에는 실행되고 있어 그렇것 같으니 ../ 사이에 ../ 을 한번더 작성하여 우회해보겠습니다.

파일 다운로드 검증 우회

 

오!! 역시 해당 코드가 작동해서 처음에 바로 안됐던 것 같습니다. 

 

이렇게 소스 코드를 확인하면 해당 서버가 어떻게 작동하는 지 알 수 있기 때문에 취약점을 발견하기 쉽습니다.

 

뭔가 간단하여 중요하지 않은 취약점 같지만 소스 코드를 확인할 수 있는 것은 엄청난 취약점입니다.!! 다른 취약점을 발견뿐만 아니라 데이터베이스 연결정보도 확인이 가능합니다.

 

파일 다운로드 또한 데이터베이스에 파일을 저장한다면 공격에 대한 방어가 가능합니다.