일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- wargame
- Hackerfactory
- TeamH4C
- webhacking.kr
- DOM-Based XSS
- 정보보호
- H4CKINGGAME
- DreamHack
- 드림핵
- 워게임
- 빡공팟 4기
- 빡공팟 6기
- Cross Site Scripting
- DVWA
- 웹 해킹
- Remote File Inclusion
- Web Hacking
- Lord of SQL Injection
- XSS
- 해커팩토리
- File Upload Vulnerability
- sql injection
- 정보보안
- Weak Session IDs
- 써니나타스
- Los
- Insecure CAPTCHA
- SuNiNaTas
- bypass CAPTCHA
- Dremhack
- Today
- Total
도카이트
[DVWA] File Inclusion (Medium) 본문
File Inclusion Vulnerability
공격자가 악성 스크립트를 서버에 전달하여, 해당 페이지를 통해 전달한 악성 스크립트 또는 코드가 실행되도록 하는 취약점이다. 삽입 파일의 위치에 따라서 RFI(Remote File Inclusion)와 LFI(Local File Inclusion)으로 분류된다.
페이지 화면
- Low 난이도와 동일한 페이지 화면을 출력하고 있다!
- 바로 소스코드를 확인하러 가보자 !!
소스코드
- Low 난이도의 경우 page의 파라미터 값으로 파일을 불러오는 코드 뿐이였지만…
- 바로 아래 새롭게 입력값 검증으로.. http://와 https:// 그리고, ../와 ..\\의 필터링이 추가되었다.
- 그치만, 간단한 문자열 필터링 우회 방법 중에 알고 있는 방법이 있기에…
- 해당 방법으로 RFI와 LFI 취약점을 이용한 공격을 시도해보고자 한다!
RFI (Remote File Inclusion)
1. 외부 서버에 임의의 파일 생성
- Low 난이도 때 미리 작성해둔 파일을 그대로 활용한다!
- 파일의 위치는 그대로 웹 서버 루트 디렉토리에 위치하고 있다.
2. page의 파라미터 값에 외부 서버 주소 삽입
- Low 난이도 때 사용했던 방법을 그대로 사용하니 어림도 없이 필터링에 의해 막혀버렸다.
- http:// 와 https:// 문자열을 필터링하고 있으므로, 이를 우회해야 한다.
- 간단한 필터링 우회 방법을 통해서 공격을 시도해보도록 하자 !
str_replace 함수 ?
소스코드에서 확인할 수 있다시피 현재 문자열을 필터링은 str_replace 함수가 하고 있다.
str_replace 함수가 가지고 있는 취약한 부분이라 함은, 바로 필터링을 1번만 진행하는 것이다.
예를 들어.. abc라는 문자열을 빈 값으로 치환한다고 가정하면 ..
ex ) aabcbc → abc
와 같은 식으로, 중간에 위치하고 있는 abc에 대해서만 치환을 진행하고, 치환 후 완성되는
문자열인 abc에 대해서는 치환을 진행하지 않는다는 것이다.
이러한 str_replace 함수의 취약점을 이용하여 RFI와 LFI 취약점을 이용한 공격을 진행해보자 !
3. http:// 문자열 필터링을 우회하는 공격자 서버 주소 삽입
- htthttp://p:// 로 URL의 프로토콜 부분을 입력하여 공격을 시도하였다.
- http:// 부분이 치환되면서 http:// 로 문자열이 입력되게 되며, 성공적으로 외부 파일을 include 할 수 있다!
LFI (Local File Inclusion)
1. ..// 문자열 필터링을 우회하는 로컬 파일 경로 삽입
- ….// 형식으로 경로를 입력하여 공격을 시도하였다.
- ../ 부분이 치환되면 연속으로 입력한 ….// 문자열들이 ../ 로 치환되게 되면서, Low 난이도의 LFI 취약점을
이용한 공격과 같이 성공적으로 /etc/passwd 파일을 include 시킬 수 있다!
'Web > DVWA' 카테고리의 다른 글
[DVWA] Insecure CAPTCHA (Medium) (0) | 2022.05.26 |
---|---|
[DVWA] File Upload (Medium) (0) | 2022.05.26 |
[DVWA] CSRF (Medium) (0) | 2022.05.26 |
[DVWA] Command Injection (Medium) (0) | 2022.05.25 |
[DVWA] Brute Force (Medium) (0) | 2022.05.25 |