본문 바로가기
about Security/웹보안과 해킹

[웹해킹 실습] # 파일 인클루전 공격

by saniii 2020. 11. 12.

 

1)    LOW level

먼저 보안 레벨을 LOW로 맞추고 시작!

 

 

파일 인클루전 공격을 하기 위해 파일 인클루전 항목으로 들어가자

 

여기서의 소스코드를 확인하면 이렇게 변수 page을 통해

사용자의 입력값이 GET 메소드로 전달됨을 알 수 있다.

잊지말자 여긴 low level 이야 넘 쉽지.. 

 

 

 

페이지의 file1.php를 한 번 눌러보았다.

 

 

URL에 내가 열려고 한 파일의 이름이 변수 page에 입력됨을 확인

 

 

 

(1) LFI (로컬 파일 인클루전)

: 웹서버에 원래 존재하는 파일을 인클루드 한다.

 

+ Path Traversal 공격 : ../ 를 이용하여 상위 디렉터리로 접근하여 타 파일을 인클루드

(../ : 현재 위치보다 하나 상위의 파일로 이동)

 

URL의 page= 다음에 ../../../../../etc/passwd 를 입력하면

원래 내장되어 있는 passwd 파일을 열 수 있다.

이때 root까지 도달하면 ../가 의미 없기 때문에 ../를 최소 5번 이상 입력해야 한다.

왜냐면 실습 페이지 경로가 /var/www/dvwa/vulnerabilities/fi/index.php로 

php 얘가 들어 있는 fi 파일이 root로 부터 5번 아래 있기 때문이다.

뭐 암튼 그렇다고... 내가 궁금했다ㅎㅎ

 

 

 

 

(2) RFI (리모트 파일 인클루전)

: 원격으로 외부에 있는 파일을 인클루드

 

cd /var/www/html 으로 이동하여 vi bad.php로 파일 생성 후 php문 작성

 

- /var/www/html 디렉터리로 이동하여 

- vi 에디터를 이용해서 bad.php파일을 생성한다.

밑의 두 줄의 명령어에만 집중!!   시행착오를 겪어서...ㅎ

 

bad.php의 내용은 다음과 같이 적으면 된다.

이 파일이 인클루드 되었는 지 확인할 수 있는 문구면 된다.

 

 

이제 bad.php를 인클루드하면 위의 빨간색의 문구가 print 되어야 하는데 

자꾸... 안   나     와        ........

 

아!! 실행하는 방법은 URL의 page=뒤에

http://(localhost ip의 주소)/bad.php 를 입력하면 된다.

 

안나올때 결과

 

 

 

 

그래서 찾아봤더니 

 

service apache2 start 를 실행하면 된다고 하더라

 

왜지?!?!?! 조만간 찾아서 올린다!!!! 궁금하니까!!!

 

 

쨘!!!!이릏게 성공!

엄한데 가서 이런짓 하면 안돼....

 

 

정보를 더 알아내기 위해 bad.php에 cat /etc/passwd를 추가하자

진짜 엄한데 가서 이런 짓하면 안돼....잡혀가.....

 

 

쨘 이렇게 기존의 확인 문구와 함께 

passwd 파일이 인클루드 되었음을 알 수 있다.

 

 

 

 

 

 

 

댓글