IT/ISSUE

매직넘버를 이용한 파일 확장자 우회 #1

종금 2019. 11. 21. 10:00
반응형

개요: 보안성 검토에서 서버에서의 파일 우회는 %00.jpg 즉 종단문자를 이용하여 서버에 서버 사이드 스크립트 JSP파일 업로드를 하려했으나 파일 업로드 전용 프로그램에서 100% 완료중에서 완료가 되지 않는거보니 해당 프로그램 솔루션에서 무엇인가를 확인하고 업로드 완료로 넘기지 않은 것으로 예상되었다.

분명 jpg 파일은 업로드가 되고 해당 경로까지 URL을 입력하면 해당 사진 파일이 뜨는 것을 확인하여 확장자가 아닌 해당 파일 내부의 무엇인가를 찾아 해결한다고 예상하였으며 생각의 결과 매직넘버로 예상되어 이를 우회하는 파일을 제작해 보려고 한다.

 

그럼 매직넘버가 무엇인가에 대해 먼저 알아야 하는데 매직넘버란 파일 헤더값에 붙는 고유 넘버로서 파일의 확장자가 변경되어도 해당 파일이 어떤 파일인지 알 수 있도록 만들어주는 헥사 값으로

이중에 거의 모든 사이트에서 업로드가 가능하도록 허용한 jpg, GIF 파일의 매직넘버를 이용하여 우회 할 수 있는 치트 파일을 만들어보려고 한다.

 

먼저 JPG 및 GIF의 매직넘버를 알아보면 

GIF는 두가지 종류로

47 49 46 38 37 61 - GIF87a

47 49 46 38 39 61 - GIF89a

JPEG는 FF D8 FF FE 00

JPG는 FF D8 FF E1이다.

 

일단 테스트할 서버는 asp 스크립트를 이용하는 서버이고

여기에 업데이트 하여 작동하는지 확인해보겠다.

 

1은 해당파일의 asp코드이고

2는 해당파일 업로드 후

3은 해당파일 클릭하여 실행하였을 때이다.

 

 

 

그럼 이제 우회 파일을 제작해보자.

먼저 해당 파일 제작 환경은 elementary OS이다.

 

먼저 echo -n을 통해 해당 구문을 집어넣고

파일 업로드하여

 

실행했지만 실패?!?!

 

 

일단 f12로 경로에 올라간건 확인했고 서버 올라간 파일을 한번 열어보아야겠다.

 

 

HXD로 열어보니 해당 파일에 분명 스크립트는 제대로 들어갔다. 

 

왜냐면 확장자만 바꾸어도(asp) 분명 실행은 되기 떄문이다.

 

 

 

그리고 해당 파일은 .ASP 확장자이지만 FILE을 이용하면 jpg라고 확인된다. (분명 매직넘버는 제대로 들어갔다)

 

혹은 여기서 종단문자를 써야하는건가

 

분명 종단문자 사용하면 해당 파일은 작동한다.

 

확실한건 filetype은 바뀐거 같다. (종단문자로 파일타입은 변하지 않는 것을 확인)

매직넘버 우회는 여기서 끝내야하나.

 

 

일단 여기까지 적고 다음에 좀더 다듬어야 겟다.

 

반응형