22018, 1101/1101 회원가입  로그인  
   $Zero
   파일 업로드 취약점. 이 코드에 있나요 ?

http://www.hackerschool.org/HS_Boards/zboard.php?id=Free_Board&no=24191 [복사]


제가 웹 콘텐츠 개발 프로젝트를 하고 있는데

파일업로드 취약점을 제거하고자

이러한 코드를 사용했습니다 .

$ext = strtolower(substr($_FILES['file']['name'], strrpos($_FILES['file']['name'], '.') + 1));
12
13 if($ext != 'gif' && $ext != 'jpg' && $ext != 'png')
14 {
15    echo "<script> alert('지원하지 않는 확장자 입니다.'); history.back();</script>";
16    exit;
17 }
18


파일명에서 마지막 (.)닷이 있는 위치에서 +1부터 마지막문자열까지 (즉 확장자 이름)  반환한뒤 이 문자열을업로드 가능한 확장자랑 비교하고 아니면 exit 시키는 코드인데

이 코드도 우회가 가능한가요 ? 제가 아는 파일업로드 우회기법으로는 마땅히 생각나는게 없는데 ..

도와주세요 ~~

  Hit : 10744     Date : 2012/07/31 06:07



    
$Zero 아 찾아보니 GIF 안에 PHP코드를 넣는 기법도 있군요 .. -_-

폴더에 실행권한을 없애면 안되는데.. 좋은 방법 없으려나;
2012/07/31  
pwn3r 원본 파일명은 DB에 저장해놓고 , 실제로 저장되는 파일이름은 타임스탬프나 몇가지 정보 덧붙여서 해쉬로 해두거나 이런것도 좋지않을까요 ㅎㅎ 2012/07/31  
pwn3r 그리고 말씀하신거랑 같은진 모르겠는데 pwn3r.php.gif 같은걸로올려도 php코드가 실행되요 2012/07/31  
sehkmg 패턴 체크해서 php나 asp 이런게 검출되면 die 시켜버리면 되지 않을까요? 2012/07/31  
sehkmg null문자로 우회가 가능하려나 2012/07/31  
blueh4g 업로드 취약점이라고 하면, 웹쉘 업로드를 말씀하시는건가요?

그런부분이라면, 업로드되는 폴더를 DocumentRoot 외의 다른 디렉토리로 지정해주시면 됩니다.

/var/www/html/ 이곳에 홈페이지가 있다면
/home/upload_data 이곳에 업로드된 파일들이 들어가도록 하시면 되겠죠.
2012/08/01  
blueh4g 이후에 download.php 에서는 저 디렉토리에서 파일을 읽어서 뿌려주는 형태로 가면 될테고..

물론, .txt 로 올린 후 LFI 공격은 여전히 먹힙니다~ (include 취약점 역시 없도록 만들어 주셔야겠죠)
2012/08/01  
$Zero pwn3r 님이 지적해주신 부분은 제가 직접 시도해봤는데 안되더라구요 ㅎ
apache 내에서 걸러지는건지
zero.php;.gif
zero.gif;.php
zer.gif%zz.php
등등 제가 해볼만한건 다 해봤는데 안되더군요 -_-ㅋ ..

그리고 한가지 더..
addslashes 함수로 입력되는 값은 전부다 필터링하는데
addslashes 함수를 우회하는 SQL Injection은 없으려나요 ~?
2012/08/01  
$Zero blueh4g 오. .그런 방법이 있군요

좋은 정보 감사합니다.
2012/08/01  
$Zero 그리고 제가 말한 gif 코드실행은 gif가 불려지면서 실행되는 취약점이었어요
보안 관련 자료 찾아보다 알게되었는데 gif 에
fopen 으로 로컬 파일 여는 php코드를 쓴뒤 로컬 파일에 웹셀 코드를 적고 php형태로 저장하게 만들더라구요..
어떤 코드로인해 그렇게 실행되는지 자세하게 나와있진 않았었지만... gif가 웹셀 파일을 생성해서 그 웹셀파일을 실행할수 있다더군요 -_-; ;
2012/08/01  
pwn3r 전 되네요 ㅋㅋ
적힌대로 pwn3r.php.gif로 해서 올려보셨나요?
2012/08/05  
18   해쿨은 모바일 지원계획 없나요![4]     $Zero
02/19 10250
17   ? 서버가 타임머신을 타나 [7]     $Zero
06/28 10776
16   속도는 굉장히 빨리졌는데 . .[5]     $Zero
03/18 10426
15   파폭4가 그렇게 빠르다던데 .. [5]     $Zero
03/24 10903
14   혹시 자바 잘 다루시는분 있나요 ..ㅡ.ㅡ (프린트기능)     $Zero
04/29 10749
13   대전 사는분 !![14]     $Zero
05/12 9531
12   구글은 신 입니다.[4]     $Zero
06/01 10525
11   프로그래머의 현실[32]     $Zero
06/05 10907
10   대전 한밭도서관 스터디 하실분 모집!![11]     $Zero
07/22 9324
9   대전에 사는분들.. 다 어디가셨나요 [13]     $Zero
07/29 9706
8   vim에 이런 기능도 있었군요. . [3]     $Zero
07/31 8563
7   \xff는 도대체 정체가 뭐지!![5]     $Zero
08/12 10542
6   노트북을 샀는데.. 골치아프네요[3]     $Zero
08/17 10495
5   C언어의 창시자 데니스 리치 별세..[9]     $Zero
10/13 9656
4   이펙티브 C++ ... ㅜㅜ     $Zero
11/12 11527
3   effective C++ 다시 판매하나보네요. [6]     $Zero
02/01 9446
2   해쿨책 도착..[2]     $Zero
04/03 9286
  파일 업로드 취약점. 이 코드에 있나요 ? [11]     $Zero
07/31 10743
[1].. 1101

Copyright 1999-2026 Zeroboard / skin by Hackerschool.org / Secure Patch by Hackerschool.org