모의해킹

파일 업로드 취약점 실습(1)

박연준 2023. 7. 1. 23:17

파일 업로드 취약점은 업로드 기능이 있는 페이지에 실행 가능한 언어로 작성된 공격 프로그램을 업로드하면서 생기는 취약점이다.

 

파일 업로드는 jsp, asp, php 등 파일로 업로드할 수 있고 업로드한 파일은 업로드 전용 폴더를 만들어 놓았을 때 보통 해당 폴더에 저장되는데 공격자는 업로드 파일이 위치한 경로명을 알아내고 URL 직접 접근을 통해서 웹셸을 실행할 수 있다.

 

Start-Up K-Shield 주니어에서 제공하는 oyesmall 페이지에서 게시판 페이지에 접속해보면 shop_board_list.asp 라는 페이지에 접속하는 것을 확인했다.

 

 

또한 파일 업로드 취약점을 테스트하기 위해서 윈도우 디펜더 기능이나 백신 프로그램에서 실시간 감지를 꺼야 제대로 테스트할 수 있다.

 

 

oyesmall 페이지는 asp 언어로 작성되어 있기 때문에 구글에 asp webshell git이라고 검색해보면 asp 언어로 작성된 웹셸 코드가 나온다.

 

 

웹셸 코드를 복사한 후 .asp 파일로 저장해 놓는다. 만약 V3나 윈도우 디펜더를 켜놓으면 저장하는 즉시 삭제되니까 주의해야한다.

 

게시판 작성 페이지에 들어간 후 파일 업로드 취약점이 있는지 확인하기 위해서 .asp 확장자로 작성된 웹셸 코드를 올려보았다.

 

하지만 확장자가 jpg, hwp, jpeg, txt 확장자만 업로드할 수 있도록 막아 놓은 것 같다.

 

파일 업로드 우회 기법으로는 대소문자 우회 공격인 aSp 이런 식으로 확장자 변경해 우회할 수 있다. 따라서 aSp로 확장자를 변경한 후 테스트 해 본 결과 대소문자 우회 기법도 대응 방안이 갖춰져 있는 것을 확인할 수 있다.

 

 

또 다른 파일 업로드 취약점의 우회 기법은 확장자 연장 우회 기법이 존재한다. 확장자 필터링을 조건문자 ‘.’을 기준으로 앞쪽부터 유효한 파일인지 필터링하게 되면 가능할 수 있다. 대응 방안으로는 맨 조건문자 . 을 기준으로 맨 마지막 부터 필터링해야 하는 것인데 cmd.txt.asp 파일로 변경을 먼저 해본다.

 

다음 cmd2.txt.asp 파일을 업로드하고 확인해본 결과 파일 업로드가 정상적으로 된 것을 확인할 수 있다.

 

 

종단문자를 이용한 우회 기법을 이용해서도 파일 업로드가 되는지 테스트 해 볼 것인데 예로는 %00, %ZZ, %09, %13 등으로 url encoding을 통해 파싱 대상이 세미콜론 앞 쪽만 인식해 발생하는 취약점이고 대응 방안으로는 확장자 검사가 아닌 파일명 전체에 대한 검사를 통해 필터링을 강화해야한다.

 

cmd.asp%00.txt 파일로 파일 명을 변경하면 txt 파일이다. 하지만 이렇게 올리는 이유는 %00이 널 문자이기 때문에 뒤에 있는 .txt는 해석하지 않으므로 cmd.asp 파일로 올라갈 수 있다.

 

cmd.asp%00.txt 파일을 업로드하고 게시판을 확인해본 결과 cmd.asp라고 업로드 된 것이 확인되었으므로 종단문자를 이용한 우회 기법도 존재한다고 확인되었다.

'모의해킹' 카테고리의 다른 글

파일 업로드 취약점 실습(3)  (0) 2023.07.01
파일 업로드 취약점 실습(2)  (0) 2023.07.01
SQL Injection 실습(1)  (0) 2023.07.01
XSS 실습  (0) 2023.06.26
모의해킹 실습(3) / fngs.kr  (0) 2023.06.25