본문 바로가기
Web/DVWA 실습

DVWA - File Upload (low,medium) 실습

by jh117jh 2022. 10. 30.
728x90

File Upload

모두가 한번씩은 사용해본 파일 업로드 기능을 이용한 공격으로 업로드 되는 파일들을 필터링 하지 않거나 업로드된 파일을 사용자가 직접 접근하여 실행시킬 경우 일어날 수 있다. 

 

low level

.low 레벨에서는 아무런 필터링을 거치지 않고 파일을 업로드 할 수 있다.

test.txt 파일을 만든후 업로드하면 저장 경로와 함께 업로드 메세지가 출력된다.

업로드 된것을 확인하고 저장된 파일에 접근해 본다.

업로드된 경로를 알 수 있으므로 http://127.0.0.1/DVWA-master/hackable/uploads/test.txt 로 이동하면 파일을 읽을수 있다.

이처럼 단순 텍스트 파일이기떄문에 출력으로 끝났지만 다른 php파일이나 실행 파일이 업로드 될 경우 피해는 커지게 된다.

 

 medium level

medium 레벨에서는 $_FILES 변수를 활용하여 이름,타입,크기의 정보를 담고 업로드 타입을 jpeg,png로 제한하고 있다.

하지만 이는 프록시 툴로 위조된 경우 구분할 수 없다.

test.php.를 만들고 업로드를 해보자

버프 스위트로 업로드 요청을 확인해 봤을때 

컨텐츠 타입이 'application/octet-stream' 인것을 볼 수 있는데 이것은 정의되지 않은 모든 파일의 타입이다.

우리는 jpeg나 png 파일로 위장하여 올려야 하므로 이를 'image/jpeg'나 'image/png'로 수정하여 요청을 보내면 된다.

파일 업로드에 성공하였고 이를 실행시켜 보자

low 레벨에서 우려했던 php파일 실행에 성공하였다.

728x90