Bazinga!
악성 스크립트 파일 업로드와 .htaccess 취약점 이용 본문
모의 해킹을 해보기 위해 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>
systemctl restart apache2
AddType application/x-httpd-php .jpg
해당 디렉터리에 .htaccess파일을 생성 후 위 코드를 입력해준다.
이후 다시 url 창에 cmd명령을 입력해보니 t사용자 계정이 출력되는 것을 볼 수 있다.
'Web > 파일 취약점' 카테고리의 다른 글
base64 인코딩된 쉘 명령어를 받는 php코드로 /etc/passwd 확인 (1) | 2024.10.14 |
---|---|
php파일 이미지로 우회하기 | .php;.jpg (0) | 2024.10.14 |