Bazinga!

악성 스크립트 파일 업로드와 .htaccess 취약점 이용 본문

Web/파일 취약점

악성 스크립트 파일 업로드와 .htaccess 취약점 이용

Bazinga! 2024. 10. 13. 22:42

 

모의 해킹을 해보기 위해 php를 이용하여 웹 사이트를 제작하였다.

해당 웹사이트는 이미지 파일은 게시글에 보이도록, 이미지 형식이 아닌 파일은 다운로드 받을 수 있도록 만들어졌다.

Content-Type을 보면 스크립트 파일명을 shell.jpg.php로 하였는데 php파일로 인식하고있다. 

 

Uploads파일에 php파일이 저장된 것을 확인가능

 

.ph로 끝나는 파일을 php파일로 인식한게 정상적인거 같지만 이도 보안에 취약한 상태라 볼 수 있다.

서버에서 php코드를 정상적으로 실행되기 가능한 상태라 악성 코드가 실행 될 수 있기 때문이다.

 

서버는 확장자 검증을 제대로 하여

파일 이름에서 확장자가 .jpg일 경우에만 이미지를 허용하고,

.php, .php.jpg, .jpg.php와 같은 확장자가 포함된 파일을 거부했어야한다.

 

whoami 명령어가 실행되고 서버에서 반환되는 결과로 사용자 계정(www-data)이 출력되었다.

이는 서버가 PHP 파일을 정상적으로 실행하고 있는 것이며, 악성 코드가 실행될 수 있는 상태이다.

 

 

반대로 shell.php.jpg로 파일 이름을 하였을때는

php를 건너띄고 jpg파일로 인식을 하긴했으나 url로 공격을 시도하였을때는 제대로 작동이 되지 않았다.

 

그래서 Apache의 .htaccess 취약점을 이용해 특정 확장자를 php로 인식 시켜보고자한다.

<Directory [디렉터리]>
     AllowOverride all    
</Directory>

/etc/apache2/apache2.conf 에 위 내용을 추가한다,

systemctl restart apache2
AddType application/x-httpd-php .jpg

해당 디렉터리에 .htaccess파일을 생성 후 위 코드를 입력해준다.

 

 

 

 

이후 다시 url 창에 cmd명령을 입력해보니 t사용자 계정이 출력되는 것을 볼 수 있다.