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 파일이 인클루드 되었음을 알 수 있다.
'about Security > 웹보안과 해킹' 카테고리의 다른 글
[웹해킹 실습] # 파일 업로드 공격 (0) | 2020.11.15 |
---|---|
[웹해킹] # 파일 업로드 (0) | 2020.11.15 |
[웹해킹] # 파일 인클루젼 공격 (0) | 2020.11.12 |
[웹해킹] # 커맨드 인젝션 (0) | 2020.10.08 |
[웹해킹문제풀이] # webhacking.kr 워게임 18번 (0) | 2020.10.04 |
댓글