본문 바로가기
공부/해킹 과제

File Upload 실습

by TILDA_16 2023. 6. 8.

내가 만들어 놓은 웹서버에 파일 업로드 공격을 해볼 것이다.

 

파일 업로드 기능을 만들 때 별다른 보안조치를 하지 않아서 바로 가능할 것이다.

 

먼저 test를 할 수 있는 쉘을 올릴 것이다.

 

test 파일 준비

 

이것을 먼저 올려서 실행이 되는지 확인을 해볼 것이다.

 

테스트 파일 업로드 성공

 

테스트 파일은 업로드되었고 이 파일의 경로를 확인하기 위해 이미지 파일을 하나 올려서 경로를 확인할 것이다.

 

이미지 파일의 경로

파일이 있는 경로를 알아냈다.

 

우리가 올렸던 test.php를 확인해 볼 것이다.

 

파일이 잘 올라가있다.

 

이제 웹 쉘을 올려서 파일 업로드 취약점을 공격할 것이다.

 

업로드 할 웹 쉘

 

이렇게 웹 쉘을 만들어주고 게시판에 올릴 것이다.

 

웹 쉘 업로드 성공

이렇게 웹 쉘을 업로드했고 이제 파일이 있는 경로로 들어가 볼 것이다.

 

파일 다운 실패

 

테스트 파일은 다운에 성공했지만 웹 쉘은 실패하였다.

 

그러면 경로로 그냥 진입해 볼 것이다.

 

진입 실패

 

파일은 업로드돼있고 클릭하면 진입할 수 없다. 

 

URL로 파라미터를 넘기니까 ?cmd=ls를 뒤에 붙여봤다.

 

웹 쉘이 잘 동작한다.

 

웹 쉘이 동작하는 화면이다.

 

왜 이렇게 됐는지는 더 찾아봐야겠다.

 

이런식으로 파일을 볼 수 있다.

서버의 소스코드를 볼 수 있다.

 

board.php의 소스를 보면 

 

board.php 소스코드

 

이런 식으로 전체 소스를 볼 수 있다.

 

여기엔 DB명과 암호도 전부 있었다.

 

조금 더 만질 줄 알면 권한도 상승시켜서 DB를 다 날려버릴 수도 있고 서버를 다운시킬 수도 있을 것이다.

 

파일 업로드 취약점은 여러 가지로 많이 위험하다는 것을 느끼게 되었다.

'공부 > 해킹 과제' 카테고리의 다른 글

인증/인가 취약점  (0) 2023.06.16
File Upload 마무리 및 File Download  (0) 2023.06.10
File Upload  (8) 2023.06.02
SSRF 실습  (0) 2023.06.01
CSRF 1, 2, 3 문제풀이  (0) 2023.05.30