본문 바로가기

해킹과 보안 동향/DVWA

dvwa. 파일 인클루션 #4-2(medium, high, impossible)

728x90

 

공격 실습)

low에서 했던 공격을 시도했더니 막혔다.

 - view-source를 보니 파일에 문자 http://와 https://가 있으면 공백으로 대체시켜 문자열 검증을 하고 있다.

그리고 ../와 ..\ 특수문자를 필터링해서 path Traversal 공격을 막는것으로 보인다.

 

 - http://를 공백으로 바꾸기 때문에 http://안에 http://를 넣으면 [http:/"http://"/] --> [http:/""/]로 없어지기 때문에 우회해서 공격을 할 수 있다.

 - 특수문자 필터링은 ../를 공백으로 만들기 때문에 ....//처럼 만들면 .."../"/ 쌍따옴표안의 값이 없어지므로 ../가 되어 우회할 수 있다.

 

high

 

fnmatch 함수는 파일 이름 패턴 매칭을 위해 사용되며 주어진 파일이름과 패턴을 비교하여 일치 여부를 true, false로 반환한다.

fnmatch(파일 이름, 패턴)

파일이름 : 비교할 파일 이름

패턴 : 파일 이름에 대응시킬 패턴으로 와일드카드(*, ?)를 포함할 수 있다.

 

 - file이름이 file*로 시작하는지 검사한다. file이거나 파일이 include.php가 아니면 에러를 출력하므로 page=file로 하고 뒤에 공격 문자를 넣으면 된다.

 

IMPOSSIBLE

 - 보안 대책 보기

 - view-source를 보면 파일이름이 정확히 include.php, file1.php, file2.php, file3.php인지 검증하고 아니면 에러를 출력한다. 파일을 하나하나 지정해줘서 사용자가 파일명을 모르면 접근 불가하다.

이때는 어떻게 뚫어야 하지..