GIF+PHP 해킹기법을 피하는 방법
헐랭이와 IT보안 블로그는 RSS에 등록해두고 틈틈이 보고 있는데 오늘 눈이 번뜩 떠질만한 이야기가 올라왔습니다.
GIF+PHP 해킹기법에 대한 소개인데 http://durl.kr/eju 에 자세한 내용이 있습니다.
뭐 간단한 예이지만 hack.gif.php 같이 이미지 업로드를 했다고 할때
이 파일이름 그대로를 저장하고 나중에 이미지를 불러올때
이런 식으로 사용하게 되면 해커가 삽입한 php 코드가 실행된다는 것입니다.
물론 맨 나중 확장자를 가져오도록 하면 되긴 하지만 그렇다고 문제가 완전히 해결되는 것은 아닙니다.
따라서 다음과 같은 방법을 사용하거나..
헐랭이님이 두번이나 강조하는 바와 같이 이렇게 해야겠습니다.
GIF+PHP 해킹기법에 대한 소개인데 http://durl.kr/eju 에 자세한 내용이 있습니다.
뭐 간단한 예이지만 hack.gif.php 같이 이미지 업로드를 했다고 할때
이 파일이름 그대로를 저장하고 나중에 이미지를 불러올때
<img src="hack.gif.php" title="이건 해킹에 취약해!" />
이런 식으로 사용하게 되면 해커가 삽입한 php 코드가 실행된다는 것입니다.
물론 맨 나중 확장자를 가져오도록 하면 되긴 하지만 그렇다고 문제가 완전히 해결되는 것은 아닙니다.
따라서 다음과 같은 방법을 사용하거나..
$file = 'image.gif.php';
Header('Content-Type: image/gif');
readfile('images/'.basename($file));
Header('Content-Type: image/gif');
readfile('images/'.basename($file));
헐랭이님이 두번이나 강조하는 바와 같이 이렇게 해야겠습니다.
이런 공격 기법을 막기 위해서는 파일 업로드 검사 시 지금처럼 확장자에 기반한 검사를 수행하는 것에서 한발짝 나아가서
1. 파일 헤더 부분과 바디 부분을 읽어 정상적인 이미지 파일인지 검사
하는 것이 필요하다.
1. 파일 헤더 부분과 바디 부분을 읽어 정상적인 이미지 파일인지 검사
하는 것이 필요하다.
반응형