1. 파일 업로드 공격 실습
파일 업로드 취약점은 공격자가 서버스크립트 코드가 포함된 파일을 올려 코드를 실행하는 공격이다. 이런 파일을 웹 쉘이라고 하는데 웹 쉘을 업로드해서 시스템으로 침투가 가능하다. 내부파일실행(LFI) 취약점과 비슷하며 확장자 필터링으로 차단이 가능하지만 이를 우회해서 업로드 하는 경우가 있다. 아래는 웹 쉘 확장자로 사용되는 확장자 목록이다.
* ASP/ASPX: asp, aspx, asa, cer, inc, cdx
* JSP: jsp, jspx
* PHP5: php, php3, php4, phtml
* PHP7: php, php3, php4, php5, pht, phtml
2. 파일 업로드 공격 실습
[그림 2-1] 소스 코드
9~12번째 줄은 입력 폼을 제공하고 있다. 만약 시스템 명령어를 입력해 요청하면 cmd 파라미터를 통해 전달되고 system 함수에 의해 명령어를 실행하게 되는 웹 쉘 소스코드다.
[그림 2-2] 웹 쉘 업로드
Shell.php 파일을 업로드 하면 [그림 1-2]와 같이 업로드 된 경로와 함께 업로드가 성공했다는 메시지가 출력된다. http://192.168.171.173/dvwa/hackable/uploads/cmd.php URL로 접속하면 업로드 된 파일 내용을 볼 수 있다.
[그림 2-3] 명령어 실행
웹 쉘의 폼 필드를 통해 원하는 명령어를 실행할 수 있다. ls를 입력해 요청하면 서버에 있는 파일 목록을 볼 수 있다. 추가로 cat /etc/passwd를 입력하면 리눅스 계정 정보가 담긴 패스워드 파일들을 볼 수 있다. 폼 필드 뿐만이 아닌 URL에 직접 명령어를 입력해 실행해도 같은 결과가 나온다. 웹 쉘 업로드가 가능하면 리버스 쉘 기법 등을 활용해서 조금 더 깊은 침투가 가능하다.
'웹해킹 > DVWA' 카테고리의 다른 글
파일 업로드 공격 대응 방안 (0) | 2020.01.04 |
---|---|
파일 업로드 공격 (2) (0) | 2020.01.04 |
파일 실행(File Inclusion) 공격 (2) (0) | 2020.01.04 |
파일 실행(File Inclusion) 공격 (1) (0) | 2020.01.04 |
Command Injection 공격 (1) (0) | 2019.05.23 |