apollosun 원본
실제로 컴포넌트 업로드이든 비컴포넌트 업로드이든 이 취약점이 있습니다. 다음 코드를 주의 깊게 읽으면 이해할 수 있습니다.
여기에서 ASPUPLOAD 구성 요소 업로드를 예로 들면
다음 세 가지 주요 기능은 다음과 같습니다.
function killext(byval s1) '불법 파일 접미사 제거
희미한 허용 범위
allowext=".JPG,.JPEG,.GIF,.BMP,.PNG,.SWF,.RM,.MP3,.WAV,.MID,.MIDI,.RA,.
AVI,.MPG,.MPEG,.ASF,.ASX,.WMA,.MOV,.RAR,.ZIP,.EXE,.DOC,.XLS,.CHM,.HLP,.PDF"
s1=ucase(s1)
len(s1)=0이면
killext=""
또 다른
chk(allowext,s1,",")가 아니면
killext=".똥"
또 다른
killext=s1
종료하면
종료하면
end function
function chk(byval s1,byval s2,byval fuhao) '문자열에 다음이 포함되어 있는지 확인하세요.
디미,아
chk=거짓
a=분할(s1,푸하오)
i = 0에서 ubound(a)까지
만약 Trim(a(i))=trim(s2)이면
chk=참
종료
종료하면
다음
end function
function gname(byval n1) '날짜를 기준으로 디렉터리 및 파일 이름을 자동으로 생성합니다. 매개변수 1은 디렉터리를 생성하고, 매개변수 2는 파일 이름을 생성합니다(접미사 없음).
어두움 t,r
t=지금()
무작위화(타이머)
r=int((rnd+1-1)*9999)
케이스 n1 선택
사례 1
gname=연도(t)&right("00"&월(t),2)&right("00"&일(t),2)
사례 2
gname=right("00"&시간(t),2)&right("00"&분(t),2)&right("00"&초(t),2)&right("0000"&r,4)
선택 종료
함수 호출 종료
메소드:
희미한 oup,ofile,ext,myfile
oup = Server.CreateObject("Persits.Upload") 설정
oup.SetMaxSize 10000000, 참
call oup.Save() '서버 메모리에 업로드되며 실제 파일은 생성되지 않습니다.
파일 세트 = oup.files(1)
ext=killext(ofile.ext)
myfile="/" & ganme(1) & "/" & gname(2) & ext
호출 ofile.saveas(server.mappath(myfile))
추가 참고 사항:
해커가 nc를 사용하여 불법 파일을 업로드하는 경우 최종 파일은
200511051234559103.shit
과 같은 "똥" 파일
일 뿐입니다!