apache 확장자 처리문제 , mod_mime

http://hacker.or.kr/entry/Apache-%EC%84%A4%EC%A0%95-%EB%AC%B8%EC%A0%9C%EC%A0%90-modmime-Module
http://httpd.apache.org/docs/2.2/en/mod/mod_mime.html#multipleext
http://www.php.net/manual/en/install.unix.apache2.php
http://coffeenix.net/board_view.php?bd_code=1671


  • 현상
    • apache 를 사용하는 서버에서
      a.php.xxx 로 서버에 파일을 생성
      • 파일 내용은 <? echo "HACK"; ?>
    • 웹URL로 해당 파일 호출
      • http://XXXXXX.com/a.php.xxx
    • 호출결과
      • HACK 이라는 문자열이 출력된다
      • 즉, PHP로 동작을 한다
  • 원인
    • Files with Multiple Extensions
      • 아파치의 mod_mime 에서는 다중 확장자 처리가 된다.
      • 즉, aaa.xxx.yyy 일 경우 xxx와 yyy가 확장자가 되며, AddType에 등록된 내용을 체크하게 된다.
        (이 때 xxx 와 yyy 가 둘다 AddType으로 등록되어있으면, 마지막 yyy의 type으로 동작하게 된다.
        xxx만 AddType이 되어있으면 xxx의 type으로 동작하게 된다.)
      • ex > a.php.jpg 일 경우 jpg로 동작(즉, 파일을 다운로드 받으면 php의 소스가 보이게 된다.)
  • 문제점
    • 많은 게시판 에서는 "a.php." 같은 파일을 업로드할 때 마지막 확장자만 체크한다.
      많은 그리고 파일 다운로드 링크를 직접URL로 사용한다.
      이럴 경우 악의적 쉘이 들어있는 php 파일일 경우 해킹을 당할 수 있다.
  • 해결책
    • 업로드시 체크
      • 확장자 체크방식을 업로그 금지 정규식 
        /\.(php|php3|php4|php5|html|htm|inc)/ 
        처럼 사용
    • 다운로더.php 사용(직접링크 URL사용 금지)
      • 다운로더.php 를 사용하면 php파싱이 되지 않고 일반 바이너리 파일로 출력만 하기 때문에 악성php가 동작하지 않는다.
    • 아파치 설정
      • AddType은 사용금지
      • <FilesMatch "\.ph(p[2-6]?|tml)$">
            SetHandler application/x-httpd-php
        </FilesMatch>
        <FilesMatch "\.phps$">
            SetHandler application/x-httpd-php-source
        </FilesMatch>
        이 구문을 대신 설정해서 사용
    • 기타 등등
댓글
  • No Nickname
    No Comment
  • 권한이 없습니다.
    {{m_row.m_nick}}
    -
목록형 📷 갤러리형
제목
[기본형] HTML (with 부트스트랩5.3 , jquery 3.7, vue.js)
유용한 리눅스(LINUX) 명령어
[공지] 기술 게시판
4.28
4.29
4.30
5.1
5.2
5.3
5.4
5.5
5.6
5.7
5.8
5.9
5.10
5.11
5.12
5.13
5.14
5.15
5.16
5.17
5.18
5.19
5.20
5.21
5.22
5.23
5.24
5.25
5.26
5.27
5.28
5.29
5.30
5.31
6.1