1. File Inclusion
파일 실행 취약점으로 공격자가 지정한 파일 내에 서버스크립트 코드를 실행하는 공격이다.
공격자의 파일이 웹 서버 내부에 있으면 LFI(Local File Inclusion), 원격지에 위치하면 RFI(Remote File Inclusion) 이렇게 LFI와 RFI 두가지로 나뉜다.
본 실습장에서는 include.php를 기본으로 file1.php, file2.php, file3.php 3개의 내부 파일이 있다. LFI를 수행해보겠다.
우선 fi폴더 안의 source/low.php에 들어가 low단계 소스를 보았는데 아무런 필터링이 적용되지 않은 것을 확인하였다.
LFI를 실습하기 위해 slow.php라는 파일을 만들었다.
slow.php의 소스코드는 아래와 같다. system명령어를 사용해 passwd와 password.lst를 수행하도록 하였다.
<?php
print("Welcome to SlowTurtle<br>\n");
system("cat /etc/passwd");
system("cat /usr/share/john/password.lst");
?>
아래와 같이 Welcome to SlowTurtle이 출력된 후 system명령어로 수행한 내용들이 나오는 것을 확인할 수 있다.
만약에 서버 내부에 개인정보 파일, ID 및 Password같은 중요 정보들이 있었더라면 큰 위험이 따르는 취약점이었다.
2. File Upload
파일 업로드 취약점은 공격자가 서버스크립트 코드가 포함된 파일을 업로드하여 코드를 실행하는 공격이다.
위에 내부파일실행(LFI)와 비슷하다.
시작하기 앞서 에러가 떴다...
에러를 보니 폴더는 쓸 수 없다인데 폴더에서 쓰기권한인지 생성권한인지가 없는 것 같았다. 그래서 모든 권한을 부여해봤다.
chmod a=rwx /var/www/html/DVWA-master/hackable/uploads
정상적으로 사용할 수 있게 되었다!! 그럼 이제 시작해보자!
우선 upload파일에 low.php를 확인해보았다.
hackable/uploads/ 경로에 파일이 업로드 되는 것을 알 수 있었다. 또한 별 다른 필터링은 없는 것으로 확인된다.
slowturtle.php라는 업로드 할 php를 만들었다. 그 php안에는 아래와 같은 소스코드가 있다.
<?php
system("cd ../../../../ && cat /etc/passwd")
?>
system명령어를 사용하였고 cd 명령어를 통해 초기폴더로 돌아간 후 cat 명령어를 통해 passwd파일을 읽도록 작성했다.
slowturtle.php파일을 업로드 했고 ../../hackable/uploads/slowturtle.php에 업로드 된 것을 알 수 있었다.
그럼 url에 주소를 입력해 slowturtle.php를 실행시켜보겠다.
주소를 계속 헷갈려서 조금 삽질을 했지만 결국 찾아내어 실행시켰고 passwd파일을 읽어오는 것을 알 수 있었다.
'Webhacking-Write-Up > DVWA' 카테고리의 다른 글
DVWA(LOW) - CSP Bupass, JavaScript (0) | 2023.01.17 |
---|---|
DVWA(LOW) - XSS(Reflected), XSS(Stored) (0) | 2023.01.17 |
DVWA(LOW) - Weak Session IDs, XSS(DOM) (0) | 2023.01.17 |
DVWA(LOW) - Insecure CAPTCHA, SQL Injection, SQL Injection(Blind) (0) | 2023.01.16 |
DVWA(LOW) - Brute Force, Command Injection, CSRF (0) | 2023.01.16 |