일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 해킹
- sk shieldus rookies 23기
- 공부기록
- 포인터와 배열
- web hacking
- 오블완
- AWS
- 정보보안
- bandit 문제풀이
- Dreamhack
- bandit level 11 -> level 12 문제풀이
- 데이터와 로직
- 취약점진단
- 보안
- overthewire 문제
- 혼자공부하는네트워크
- 객체지향
- 네트워크문제
- overthewire bandit 문제풀이
- kbdinteractiveauthentication
- bandit level
- sk루키즈
- 함수와 디버깅
- 혼공네트
- overthewire bandit 문제
- overthewire bandit level 0
- 네트워크이론정리
- 네트워크정리
- 티스토리챌린지
- bandit 비밀번호
- Today
- Total
아임노드
실무 환경에서의 주요 취약점_File Inclusion 본문
File Inclusion
- 파일 참조 공격
- L(Local)FI, R(Remote)FI으로 나눠짐
- LFI : 경로순회, 파일 다운로드 취약점과 연관성이 있음
ex) http://test.com/abcd/page?path=../../../../../../../etc/passwd
../ -> 상위 디렉토리를 의미
최상위 경로 기준으로 passwd 파일 확인한다는 것
http://test.com/abcd/page?down=../../../../../../../etc/passwd
down이라는 함수에 의해 passwd 파일이 다운로드됨
WAF 우회 하기 위해 ../ 에 대해 인코딩 기법 사용(URL,HTML)
ex ) ..%2F = ../ 와 같음 (URL 인코딩)
forward:/etc/passwd와 같이 forward 함수 사용
../../../../etc/passwd%00 파일명 끝에 널문자 삽입(%00)
....//....//....//....//....//....// 와 같이 2중 경로 입력
취약한 구조 ex) http://test.com/abcd/page?id=index.html
- RFI : 원격 파일 참조 공격
ex) http://test.com/abcd/page?id=http://goolgle.com
test.com 화면에 google.com 화면이 출력됨
RFI 우회 기법
htthttp://p://
File Inclusion
1. 경우의 수 생각하기
..%2F = ../ 와 같음 (URL 인코딩)
forward:/etc/passwd와 같이 forward 함수 사용
../../../../etc/passwd%00 파일명 끝에 널문자 삽입(%00)
....//....//....//....//....//....// 와 같이 2중 경로 입력
2. 테스트
> dvwa > file Inclusion(level:low) 탭으로 이동
> 취약 구조 확인(URL)
page라는 파라미터에 include.php를 받아오고 있다(취약 구조이구나!)
> 테스트 진행
../는 다섯번 이상만 넣어주면 된다.
(password가 아닌 passwd임 체크)
> 결과 확인 (취약부분 확인)
3. high 레벨 테스트
high레벨로 변경한 다음 burpsuite로 테스트 진행
> burpsuite를 on으로 변경한 다음 dvwa에 [file1.php] 클릭
> Repeater로 보내기 [ctrl+R]
> Repeater에 file1.php 부분 지우기
> 이제 저 빈 부분을 채워서 command Injection처럼 넣어보면 되는데
일일이 치는 것보다 hackbar.jar라는 플러그인을 설치했으니 이를 이용해보도록 하자.
> 넣고자 하는 부분에 커서 깜박 확인 > 마우스 좌클릭 > Extensions > Hackbar > LFI > Simple Check
추가하고자 하는 문자열 클릭 > Send
> 결과로 File not found가 나왔으므로 %252e를 좀 더 추가해보도록 한다.
* 디코딩 확인
> 디코딩 결과로 보니 . = %252e 이므로 패턴을 보고 /(슬러쉬)= %252f를 넣어주어야 한다.
패턴 분석하면 %252e%252e%252fetc%252fpasswd
%252e%252e%252f = ../ (상위 디렉토리 이동) 이므로 아래와 같이 넣어주도록 한다.
그러나 이번에도 경로 인식 안됨(넘어가자)
> 이번에 이 ....//도 확인해보자.
필터링되서 안되는 것 확인
> 다음 것 확인
%252e가 안됬으므로 당연하게도 이것도 안됨!
> 다음
안됨
4. 소스코드 확인
high레벨에선 다 막혀있다.
소스코드를 보니 파일 이름을 아예 static하게 지정해놓으거라 우회 불가
(파일이 이름이 include.php가 아니면 안됨)
여기서 알 수 있는 완화방법으로
- 특정 페이지만 입력되도록 지정
- 경로순회 문자열 필터링
하는 것들이 있다.
미디움 레벨도 진행해보자. (우회가능)
bwapp도 해보자.
'[SK shieldus Rookies 23기] 공부 노트 > 취약점 진단 도구 및 활용법' 카테고리의 다른 글
실무 환경에서의 주요 취약점_SQL Injection (1) | 2024.12.17 |
---|---|
실무 환경에서의 주요 취약점_File Upload (1) | 2024.12.16 |
실무 환경에서의 주요 취약점_Command Injection (0) | 2024.12.12 |
실무 환경에서의 주요 취약점_Brute-Force 공격 (1) | 2024.12.07 |
실무 환경에서의 주요 취약점_디렉토리 인덱싱(경로 순회) (0) | 2024.12.07 |