[2024.07.29]
[File Inclusion]
바로 실습을 진행하기 위해 해당 경로에서 rfi.php라는 파일을 생성했다
파일 안에 해당 내용을 입력 후 저장
Kali Linux의 IP 주소를 넣고 rfi.php를 입력하면 해당 화면이 뜨는 것을 테스트했다
그 상태에서 해당 경로로 입력 후 이동하게 되면
상단에 이렇게 passwd 파일이 출력된다
경로 조작 취약점은 웹 애플리케이션이 사용자 입력을 통해 파일 경로를 지정할 때,
악의적인 사용자가 상위 디렉토리로 이동하는 ../ 시퀀스를 사용하여 원래 의도된 파일이 아닌
시스템의 민감한 파일을 열람하거나 접근할 수 있는 취약점이다
이번에는 Security 레벨을 medium으로 설정하고 진행
레벨에 변동을 줬지만 그래도 정상적으로 출력이 된다
rfi.php 파일의 추가 입력을 통해 기존에 있던 파일들을 출력할 수도 있다
내가 만든 파일도 실행해 보기 위해 home 디렉터리에서
yrg.txt라는 파일을 생성시켜 준다
적절한 문구를 입력하고 저장
rfi.php 파일에서도 다시 경로를 지정한 후 저장해 준다
그렇게 되면 해당 경로로 이동했을 때 내가 만든 파일의 내용이 출력된다
이번에는 Rocky Linux에서 똑같이 진행해 보려고 한다
방식은 똑같기 대문에 /var/www/html 디렉터리로 이동 후 rfi.php 파일을 생성시킨다
명령어를 입력하고 내가 볼 파일의 경로를 설정해 주면
Rocky Linux의 firefox에서도 똑같이 확인이 가능하다
외에도 Kali Linux에서 실행했던 모든 명령어들이 똑같이 실행된다
Kali Linux와 같이 내가 만든 파일을 출력하기 위해 똑같이 파일 생성
경로 입력 후 systemctl restart httpd 실행 후
해당 경로로 들어갈 시 내가 입력한 문구가 출력되는 걸 확인할 수 있다
[File Upload]
<Security Level: Low>
http://192.168.10.52/dvwa/hackable/uploads/cmd3.php
이번에는 파일 업로드 실습을 진행하기 위해 cmd.php 파일을 생성한다
명령어가 File Inclusion과 다르기 때문에 이 점 유의하여 입력 후 저장한다
dvwa의 Uploads 페이지에서 Browse를 누르게 되면
파일을 선택할 수 있는 탐색기가 나오는데 cmd.php를 선택한다
파일을 올린 후 업로드를 눌러 주면 해당 문구가 뜨며 성공한다
실제 metasploitable2에도 해당 경로에 파일이 만들어져 있는지
확인을 위해 해당 경로로 들어가서 ls -l로 확인한다
파일이 있으며 업로드도 완료된 부분이기 때문에
명령어 셸을 이용하여 실행 및 출력까지 할 수 있다
여러 가지를 연습해 본 결과 권한이 있는 것은 다 접속이 가능하며, 파일 생성도 가능하다
이번에는 cmd가 아닌 command를 이용하여 접속을 시도하려고 한다
똑같이 Browse를 통해 파일 선택을 하지만 이번에는 cmd2를 선택한다
이번에도 업로드가 성공했기 때문에 바로 페이지로 연습을 시도한다
위에서 했던 명령어들을 동일하게 출력시켰다
파일 생성 명령어인 touch를 이용했을 때 화면에 출력되는 건 없지만
metasploitable2에 직접 가서 확인 시 file1이 생성된 것을 확인할 수 있다
Rocky Linux에서도 똑같이 연습해 본다
cmd 파일 생성 후 systemctl restart httpd 실행
Browse를 열어 탐색기에서 /var/www/html 경로로
들어오게 되면 해당 cmd.php 파일이 보인다
해당 파일을 선택
업로드 성공
후에도 이런 식으로 연습을 더 진행해 봤다
Rocky Linux에서도 마찬가지로 touch 명령어를 사용하여
file1이라는 파일을 생성하지만 페이지에는 아무것도 출력되지 않는다
하지만 metasploitable2에 가서 확인 시 file1이 생성되어 있는 걸 확인할 수 있다
마지막으로 Kali Linux에서 cmd3을 만들어 해당 문구를 입력하고 저장한다
경로를 설정하고 저장
파일 업로드 후 정상적으로 출력되는 걸 확인한다
위에서는 low 레벨로 실습을 진행했다면,
이번에는 medium으로 조정하여 실습을 진행하려고 한다
하지만 레벨을 조정하면서 방금 만들었던 cmd.php 파일이 업로드가 되지 않는다
이 화면에서 힌트가 나타나는데, 바로 image 파일이 아니면 업로드가 진행되지 않는다
그렇기 때문에 기존에 있던 cmd.php를 cmd3.jpeg로 확장자 변경 후 복사한다
그렇게 되면 업로드 화면에서도 jpeg로 업로드가 가능하며
metasploitable2에서도 확인이 가능하다
하지만 firefox에서는 image가 아니라 업로드는 가능하지만
php가 아니기 때문에 실행은 되지 않는다
그럴 때는 php 파일을 jpeg로 속인 후 접속이 가능한데,
그걸 진행하기 위해 burfsuite를 이용한다
Proxy의 Intercept 화면으로 둔다
firefox로는 Uploads 페이지만 열어 두고
Intercept는 on으로 변경시켜 준다
그 후 Browse로 파일을 선택하게 되면 HTTP history에 기록이 남게 되는데,
그 마지막 기록을 선택 후 다시 Intercept로 돌아오면 이런 화면이 나타난다
그럼 나타난 화면에서 Content-Type을 지우고,
image/jpeg라고 입력해 줌으로써 조작이 가능해진다
수정하기 전에는 업로드가 불가능한 상태였지만,
수정 후에 다시 업로드를 진행시키면 정상적으로 업로드가 가능하다
강의 소감
오늘도 집중적으로 취약점 서버에 대해서 실습과 연습을 반복했다
이러한 반복 연습을 통해 취약점에 대해 알 수 있는 부분이 있었고
알지 못한 부분도 충분히 반복 연습을 통하면 할 수 있을 내용이었다
마지막 Uploads 부분의 php와 jpeg의 경우에는 약간의 이해가 필요하지만
이것도 이해와 연습을 통하면 충분히 할 수 있다고 생각한다