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
'Web > DVWA 실습' 카테고리의 다른 글
DVWA - SQL Injection (low,medium) 실습 (0) | 2022.10.30 |
---|---|
DVWA - Insecure CAPTCHA (low,medium) 실습 (0) | 2022.10.30 |
DVWA - File Inclusion (low,medium) 실습 (0) | 2022.10.30 |
DVWA - CSRF(low,medium) 실습 (0) | 2022.10.30 |
DVWA - Command Injection(low,medium) 실습 (0) | 2022.10.30 |