반응형
SMALL

1. 파일 실행(File Inclusion) 공격 Medium 단계 실습

(1) RFI 공격

 

[그림 1-1] 파일 실행 공격

파일 실행 공격 시도 결과 에러 메시지가 출력되지만 etc/passwd 관한 내용은 화면에 출력되지 않는 다는 것을 있다.

 

[그림 1-2] 소스 코드

소스 코드를 보면 page 변수 값에서 "http://", "https://", "../", "..\" 삭제한다. 대소문자를 구분하는 str_replace() 함수를 사용하고 있어 취약점을 이용하면 Http://, HTTP://, …/./ 등으로 우회가 가능하다. ..././ ./ 삭제되서 ../ 복구가 가능하다.

 

[그림 1-3] 우회 성공

page=HTTP://192.168.171.175/cat.php로 우회한 결과 cat.php 심어놨던 공격 코드들이 동작해 파일 내용들이 페이지에 노출 되는 것을 확인할 있다. 또한 page=Http://192.168.171.175/cat.php 우회해서 실행해도 결과값은 똑같다.

 

(2) LFI 공격

 

[그림 1-4] 우회 성공

[그림 1-4] page=..././..././..././..././..././..././..././etc/passwd 접근 화면이다. 페이지 상단에 /etc/passwd 관련된 내용들이 출력됐음을 있다. 또한 변수 검증 결함 취약점을 이용해 우회한 결과다.

 

2. 파일 실행(File Inclusion) 공격 High 단계 실습

(1) LFI공격

 

[그림 2-1] 에러 페이지

page=http://192.168.171.175/cat.php를 입력해 요청하면 에러 페이지가 나오고 원하는 결과값은 출력되지 않는다.

 

[그림 2-2] 소스 코드

소스코드를 보면 fnmatch 함수를 사용해 file*이라는 패턴, file 시작하는 경우에 매칭이 되는지에 대한 여부와 include.php 경우에만 입력을 허용했다. 만약 파일 업로드 시엔 file 시작하는 파일을 업로드 하거나 file:// 형식의 URL 사용하면 우회가 가능하다.

 

[그림 2-3] 우회 성공

page=file:///etc/passwd로 우회해서 접근하면 /etc/passwd 파일 경로 조작이 가능하다. URL에서 file 시작하고 php는 내부 파일로 인식을 하기 때문에 High 단계에서도 우회가 가능함을 있다. 공격자는 취약점이 있다는 것을 발견하고 어떤 방식으로 서버에 자신이 원하는 공격 코드가 담긴 파일을 업로드 것인지 생각하게 된다. 추가로 RFI 공격은 반드시 http 프로토콜이 들어가야 로컬 파일을 불러와 실행할 있기 때문에 현재 방어 관점에서 보면 우회가 불가능하기 때문에 실행할 없다.

 

3. 대응방안

- 외부 사용자가 입력한 파일 이름을 사용하지 않는다.

- 반드시 파일 이름의 입력값을 검증한다.

- 화이트리스트에 인클루드가 필요한 파일 이름의 목록을 작성해 화이트리스트에 있는 파일 이름들만 허용하고 나머지 파일들은 전부 차단한다.

- ../과 같은 디렉터리 트레버설 공격 문자열을 차단한다.




반응형
LIST

'웹해킹 > DVWA' 카테고리의 다른 글

파일 업로드 공격 대응 방안  (0) 2020.01.04
파일 업로드 공격 (2)  (0) 2020.01.04
파일 업로드 공격 (1)  (0) 2020.01.04
파일 실행(File Inclusion) 공격 (1)  (0) 2020.01.04
Command Injection 공격 (1)  (0) 2019.05.23
블로그 이미지

만년필석사

,