& ltinput type = \" submit \" name = \" submit 1 \" value = \" upload \" " />
當前位置:編程學習大全網 - 源碼下載 - 文件路徑漏洞源代碼

文件路徑漏洞源代碼

無組件的無畏上傳:

這是放在前面的代碼,用於選擇圖片和上傳按鈕

& ltinput name = " FileName " type = " FILE " class = " tx 1 " size = " 22 " >

& ltinput type = " submit " name = " submit 1 " value = " upload " style = " border:1px double RGB(88,88,88);font:9pt " & gt;

& lt/form & gt;

這是Upfile_ProductPic.asp文件。修改存儲路徑和數據表。

& lt!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN " " ame = Requesta(" Act ")

' Const upload_type=0 '上傳方法:0=上傳類而不用擔心和組件,1=FSO上傳2=lyfupload,3=aspupload,4 = chinaaspupload。

const SaveUpProductPicPath = " UploadProductPic "

const UpProductPicType = " jpg | gif | png | BMP "

const MaxProductPicSize = 20480000

dim上傳,oFile,formName,保存路徑,文件名,文件擴展名,oFileSize

dim啟用上傳

dim arrUpFileType

迪姆蘭努姆

暗淡消息,發現錯誤

msg= " "

FoundErr=false

EnableUpload=false

Savepath = "updiles/" '存儲上傳文件的目錄。

% & gt

& lthtml & gt

& lthead & gt

& ltmeta ame & amp"."& amp文件擴展名

Ofile。savetofile服務器。mappath(文件名)'保存文件。

連接打開構造

SQL = " update index pic set p _ picture = ' " & amp;picname & amp。“& ampfileExt & amp其中p _ name = ' " & amppicname & amp"

連接執行(sql)

連接關閉

Alert_reDirect“上傳成功!”,“indexPic.asp”

如果…就會結束

然後

設置上傳=無

末端接頭

% & gt

這是upfile_class.asp文件,不需要修改。

& lt%

Dim輸出文件流

-

文件上傳類

向上分類文件_分類

Dim格式,文件,版本,錯誤

私有子類_Initialize

Version = "無畏上傳類版本V1.2 "

Err = -1

末端接頭

私有子類_終止

清除變量和對象。

如果Err & lt那麽0

形式。全部刪除

設置表單=無

文件。全部刪除

設置文件=無

oUpFileStream。關閉

Set oUpFileStream = Nothing

如果…就會結束

末端接頭

公共Sub GetData (MaxSize)

定義變量

Dim RequestBinDate,sSpace,bCrLf,sInfo,iInfoStart,iInfoEnd,tStream,iStart,oFileInfo

Dim iFileSize,sFilePath,sFileType,sFormValue,sFileName

Dim iFindStart,iFindEnd

Dim iFormStart,iFormEnd,sFormName

代碼開始

如有要求。TotalBytes & lt1然後'如果沒有數據上傳。

Err = 1

出口接頭

如果…就會結束

如果MaxSize & gt0 Then '如果大小有限

如有要求。TotalBytes & gt那就MaxSize吧

如果上傳的數據超出限制,Err = 2。

出口接頭

如果…就會結束

如果…就會結束

設置表單=服務器。CreateObject("腳本。字典》)

形式。CompareMode = 1

設置文件=服務器。CreateObject("腳本。字典》)

文件。CompareMode = 1

設置tStream = Server。CreateObject ("ADODB。流”)

Set oUpFileStream = Server。CreateObject ("ADODB。流”)

oUpFileStream。Type = 1

oUpFileStream。模式= 3

oUpFileStream。打開

oUpFileStream。寫請求。BinaryRead(請求。總字節數)

oUpFileStream。位置= 0

RequestBinDate = oUpFileStream。閱讀

iFormEnd = oUpFileStream。大小

bCrLf = ChrB (13)ChrB (10)

獲取各項之間的分隔符。

sSpace = MidB (RequestBinDate,1,InStrB (1,RequestBinDate,bCrLf)-1)

iStart = LenB (sSpace)

iFormStart = iStart+2

分解項目

iInfoEnd = InStrB (iFormStart,RequestBinDate,bCrLf & ampbCrLf)+3

tStream。Type = 1

tStream。模式= 3

tStream。打開

oUpFileStream。Position = iFormStart

oUpFileStream。復制到tStream,iInfoEnd-iFormStart

tStream。位置= 0

tStream。類型= 2

tStream。CharSet = "gb2312 "

sInfo = tStream。閱讀文本

獲取表單項目的名稱

iFormStart = InStrB (iInfoEnd,RequestBinDate,sSpace)-1

iFindStart = InStr (22,sInfo," name= " ",1)+6

iFindEnd = InStr (iFindStart,sInfo,"""",1)

sFormName = Trim(Mid (sinfo,iFindStart,iFindEnd-iFindStart))

如果是文件的話。

If InStr (45,sInfo," filename= " ",1)>那麽0

Set oFileInfo = new FileInfo_Class

獲取文檔屬性

iFindStart = InStr (iFindEnd,sInfo," filename= " ",1)+10

iFindEnd = InStr (iFindStart,sInfo,"""",1)

sFileName = Trim(Mid(sinfo,iFindStart,iFindEnd-iFindStart))

oFileInfo。FileName = Mid (sFileName,InStrRev (sFileName," \")+1)

oFileInfo。FilePath = Left (sFileName,InStrRev (sFileName," \ "))

oFileInfo。FileExt = Mid (sFileName,InStrRev (sFileName," ")+1)

iFindStart = InStr (iFindEnd,sInfo," Content-Type:",1)+14

iFindEnd = InStr (iFindStart,sInfo,vbCr)

oFileInfo。FileType = Mid (sinfo,iFindStart,iFindEnd-iFindStart)

oFileInfo。FileStart = iInfoEnd

oFileInfo。FileSize = iFormStart -iInfoEnd -2

oFileInfo。FormName = sFormName

file.add sFormName,oFileInfo

其他

如果是表單項。

tStream。關閉

tStream。Type = 1

tStream。模式= 3

tStream。打開

oUpFileStream。Position = iInfoEnd

oUpFileStream。復制到tStream,iFormStart-iInfoEnd-2

tStream。位置= 0

tStream。類型= 2

tStream。CharSet = "gb2312 "

sFormValue = tStream。閱讀文本

如果形式。存在(sFormName)那麽

Form(s formname)= Form(s formname)& amp;“,”& ampsFormValue

其他

形式。添加sFormName,sFormValue

如果…就會結束

如果…就會結束

tStream。關閉

iFormStart = iFormStart+iStart+2

如果到達文件末尾,請退出。

循環直到(iFormStart+2)>= iFormEnd

RequestBinDate = " "

設置tStream = Nothing

末端接頭

結束類

-

文件屬性類

類FileInfo_Class

Dim格式名,文件名,文件路徑,文件大小,文件類型,文件開始,文件擴展名

保存文件方法

公共函數SaveToFile(路徑)

if lcase((right(Path,3))& lt;& gtLcase (fileext))的經典上傳漏洞_

回應。寫(" & lt腳本語言= javascript & gtAlert('警告:不允許上傳此類文件!');& lt/script & gt;")

響應.結束

如果…就會結束

出錯時繼續下壹步

朦朧的幻想

set of ilestream = CreateObject(" ADODB。流”)

oFileStream。Type = 1

oFileStream。模式= 3

oFileStream。打開

oUpFileStream。Position =文件開始

oUpFileStream。復制到文件流,文件大小

oFileStream。保存文件路徑,2

oFileStream。關閉

Set oFileStream = Nothing

結束功能

獲取文件數據

公共函數文件數據

oUpFileStream。Position =文件開始

FileData = oUpFileStream。讀取(文件大小)

結束功能

結束類

'**************************************************

函數名:IsObjInstalled

用途:檢查組件是否已安裝。

參數:strClassString -組件名稱

返回值:true-已安裝。

False -未安裝。

'**************************************************

函數IsObjInstalled(strClassString)

出錯時繼續下壹步

IsObjInstalled = False

Err = 0

Dim xTestObj

設置xTestObj = Server。CreateObject(strClassString)

如果0 = Err,則IsObjInstalled = True

Set xTestObj = Nothing

Err = 0

結束功能

-根據指定的名稱生成目錄。

函數MakeNewsDir(文件夾名)

維度fso,f

設置fso = Server。CreateObject("腳本。文件系統對象”)

設置f = fso。創建文件夾(文件夾名)

MakeNewsDir = True

設置fso =無

結束功能

% & gt

  • 上一篇:編寫壹個表單頁面census.html,讓用戶填寫姓名、性別(男女選擇)、興趣(運動,讀書,音樂,書法及其他)
  • 下一篇:3.8等高線
  • copyright 2024編程學習大全網