文件上傳黑名單為什麼無提示
㈠ 加入黑名單之後的信息不提示了
加入黑名單之後,還是會收到簡訊,每個手機應該都不一樣,所以簡訊的提示應該也不一樣,有些是手機的管家功能,有些直接就是手機自帶的
㈡ 微信傳文件給別人,有紅色嘆號,怎麼回事
微信發文件紅色感嘆號一般來說是由於發送失敗導致的,出現這樣的情況有許多原因:比如第一:網路的問題,你可以換一下穩定的網路嘗試。
第二:如果被對方刪除了好友或拉進了黑名單。
第三:微信軟體的問題,你可以重啟更新微信重裝微信。
㈢ asp文件上傳的問題!!急!!!
找一個無組件上傳類.比如無懼上傳類
<%
'----------------------------------------------------------------------
'轉發時請保留此聲明信息,這段聲明不並會影響你的速度!
'******************* 無懼上傳類 V2.2 ************************************
'作者:梁無懼
'網站:http://www.25cn.com
'電子郵件:[email protected]
'版權聲明:版權所有,源代碼公開,各種用途均可免費使用,但是修改後必須把修改後的文件
'發送一份給作者.並且保留作者此版權信息
'**********************************************************************
'----------------------------------------------------------------------
'----------------------------------------------------------------------
'文件上傳類
Class UpFile_Class
Dim Form,File
Dim AllowExt_ '允許上傳類型(白名單)
Dim NoAllowExt_ '不允許上傳類型(黑名單)
Dim IsDebug_ '是否顯示出錯信息
Private oUpFileStream '上傳的數據流
Private isErr_ '錯誤的代碼,0或true表示無錯
Private ErrMessage_ '錯誤的字元串信息
Private isGetData_ '指示是否已執行過GETDATA過程
'------------------------------------------------------------------
'類的屬性
Public Property Get Version
Version="無懼上傳類 Version V2.0"
End Property
Public Property Get isErr '錯誤的代碼,0或true表示無錯
isErr=isErr_
End Property
Public Property Get ErrMessage '錯誤的字元串信息
ErrMessage=ErrMessage_
End Property
Public Property Get AllowExt '允許上傳類型(白名單)
AllowExt=AllowExt_
End Property
Public Property Let AllowExt(Value) '允許上傳類型(白名單)
AllowExt_=LCase(Value)
End Property
Public Property Get NoAllowExt '不允許上傳類型(黑名單)
NoAllowExt=NoAllowExt_
End Property
Public Property Let NoAllowExt(Value) '不允許上傳類型(黑名單)
NoAllowExt_=LCase(Value)
End Property
Public Property Let IsDebug(Value) '是否設置為調試模式
IsDebug_=Value
End Property
'----------------------------------------------------------------
'類實現代碼
'初始化類
Private Sub Class_Initialize
isErr_ = 0
NoAllowExt="" '黑名單,可以在這里預設不可上傳的文件類型,以文件的後綴名來判斷,不分大小寫,每個每綴名用;號分開,如果黑名單為空,則判斷白名單
NoAllowExt=LCase(NoAllowExt)
AllowExt="" '白名單,可以在這里預設可上傳的文件類型,以文件的後綴名來判斷,不分大小寫,每個後綴名用;號分開
AllowExt=LCase(AllowExt)
isGetData_=false
End Sub
'類結束
Private Sub Class_Terminate
on error Resume Next
'清除變數及對像
Form.RemoveAll
Set Form = Nothing
File.RemoveAll
Set File = Nothing
oUpFileStream.Close
Set oUpFileStream = Nothing
if Err.number<>0 then OutErr("清除類時發生錯誤!")
End Sub
'分析上傳的數據
Public Sub GetData (MaxSize)
'定義變數
on error Resume Next
if isGetData_=false then
Dim RequestBinDate,sSpace,bCrLf,sInfo,iInfoStart,iInfoEnd,tStream,iStart,oFileInfo
Dim sFormValue,sFileName
Dim iFindStart,iFindEnd
Dim iFormStart,iFormEnd,sFormName
'代碼開始
If Request.TotalBytes < 1 Then '如果沒有數據上傳
isErr_ = 1
ErrMessage_="沒有數據上傳,這是因為直接提交網址所產生的錯誤!"
OutErr("沒有數據上傳,這是因為直接提交網址所產生的錯誤!!")
Exit Sub
End If
If MaxSize > 0 Then '如果限制大小
If Request.TotalBytes > MaxSize Then
isErr_ = 2 '如果上傳的數據超出限制大小
ErrMessage_="上傳的數據超出限制大小!"
OutErr("上傳的數據超出限制大小!")
Exit Sub
End If
End If
Set Form = Server.CreateObject ("Scripting.Dictionary")
Form.CompareMode = 1
Set File = Server.CreateObject ("Scripting.Dictionary")
File.CompareMode = 1
Set tStream = Server.CreateObject ("ADODB.Stream")
Set oUpFileStream = Server.CreateObject ("ADODB.Stream")
if Err.number<>0 then OutErr("創建流對象(ADODB.STREAM)時出錯,可能系統不支持或沒有開通該組件")
oUpFileStream.Type = 1
oUpFileStream.Mode = 3
oUpFileStream.Open
oUpFileStream.Write Request.BinaryRead (Request.TotalBytes)
oUpFileStream.Position = 0
RequestBinDate = oUpFileStream.Read
iFormEnd = oUpFileStream.Size
bCrLf = ChrB (13) & ChrB (10)
'取得每個項目之間的分隔符
sSpace = MidB (RequestBinDate,1, InStrB (1,RequestBinDate,bCrLf)-1)
iStart = LenB(sSpace)
iFormStart = iStart+2
'分解項目
Do
iInfoEnd = InStrB (iFormStart,RequestBinDate,bCrLf & bCrLf)+3
tStream.Type = 1
tStream.Mode = 3
tStream.Open
oUpFileStream.Position = iFormStart
oUpFileStream.CopyTo tStream,iInfoEnd-iFormStart
tStream.Position = 0
tStream.Type = 2
tStream.CharSet = "gb2312"
sInfo = tStream.ReadText
'取得表單項目名稱
iFormStart = InStrB (iInfoEnd,RequestBinDate,sSpace)-1
iFindStart = InStr (22,sInfo,"name=""",1)+6
iFindEnd = InStr (iFindStart,sInfo,"""",1)
sFormName = Mid(sinfo,iFindStart,iFindEnd-iFindStart)
'如果是文件
If InStr (45,sInfo,"filename=""",1) > 0 Then
Set oFileInfo = new FileInfo_Class
'取得文件屬性
iFindStart = InStr (iFindEnd,sInfo,"filename=""",1)+10
iFindEnd = InStr (iFindStart,sInfo,""""&vbCrLf,1)
sFileName = Trim(Mid(sinfo,iFindStart,iFindEnd-iFindStart))
oFileInfo.FileName = GetFileName(sFileName)
oFileInfo.FilePath = GetFilePath(sFileName)
oFileInfo.FileExt = GetFileExt(sFileName)
iFindStart = InStr (iFindEnd,sInfo,"Content-Type: ",1)+14
iFindEnd = InStr (iFindStart,sInfo,vbCr)
oFileInfo.FileMIME = Mid(sinfo,iFindStart,iFindEnd-iFindStart)
oFileInfo.FileStart = iInfoEnd
oFileInfo.FileSize = iFormStart -iInfoEnd -2
oFileInfo.FormName = sFormName
file.add sFormName,oFileInfo
else
'如果是表單項目
tStream.Close
tStream.Type = 1
tStream.Mode = 3
tStream.Open
oUpFileStream.Position = iInfoEnd
oUpFileStream.CopyTo tStream,iFormStart-iInfoEnd-2
tStream.Position = 0
tStream.Type = 2
tStream.CharSet = "gb2312"
sFormValue = tStream.ReadText
If Form.Exists (sFormName) Then
Form (sFormName) = Form (sFormName) & ", " & sFormValue
else
Form.Add sFormName,sFormValue
End If
End If
tStream.Close
iFormStart = iFormStart+iStart+2
'如果到文件尾了就退出
Loop Until (iFormStart+2) >= iFormEnd
if Err.number<>0 then OutErr("分解上傳數據時發生錯誤,可能客戶端的上傳數據不正確或不符合上傳數據規則")
RequestBinDate = ""
Set tStream = Nothing
isGetData_=true
end if
End Sub
'保存到文件,自動覆蓋已存在的同名文件
Public Function SaveToFile(Item,Path)
SaveToFile=SaveToFileEx(Item,Path,True)
End Function
'保存到文件,自動設置文件名
Public Function AutoSave(Item,Path)
AutoSave=SaveToFileEx(Item,Path,false)
End Function
'保存到文件,OVER為真時,自動覆蓋已存在的同名文件,否則自動把文件改名保存
Private Function SaveToFileEx(Item,Path,Over)
On Error Resume Next
Dim FileExt
if file.Exists(Item) then
Dim oFileStream
Dim tmpPath
isErr_=0
Set oFileStream = CreateObject ("ADODB.Stream")
oFileStream.Type = 1
oFileStream.Mode = 3
oFileStream.Open
oUpFileStream.Position = File(Item).FileStart
oUpFileStream.CopyTo oFileStream,File(Item).FileSize
tmpPath=Split(Path,".")(0)
FileExt=GetFileExt(Path)
if Over then
if isAllowExt(FileExt) then
oFileStream.SaveToFile tmpPath & "." & FileExt,2
if Err.number<>0 then OutErr("保存文件時出錯,請檢查路徑,是否存在該上傳目錄!該文件保存路徑為" & tmpPath & "." & FileExt)
Else
isErr_=3
ErrMessage_="該後綴名的文件不允許上傳!"
OutErr("該後綴名的文件不允許上傳")
End if
Else
Path=GetFilePath(Path)
dim fori
fori=1
if isAllowExt(File(Item).FileExt) then
do
fori=fori+1
Err.Clear()
tmpPath=Path&GetNewFileName()&"."&File(Item).FileExt
oFileStream.SaveToFile tmpPath
loop Until ((Err.number=0) or (fori>50))
if Err.number<>0 then OutErr("自動保存文件出錯,已經測試50次不同的文件名來保存,請檢查目錄是否存在!該文件最後一次保存時全路徑為"&Path&GetNewFileName()&"."&File(Item).FileExt)
Else
isErr_=3
ErrMessage_="該後綴名的文件不允許上傳!"
OutErr("該後綴名的文件不允許上傳")
End if
End if
oFileStream.Close
Set oFileStream = Nothing
else
ErrMessage_="不存在該對象(如該文件沒有上傳,文件為空)!"
OutErr("不存在該對象(如該文件沒有上傳,文件為空)")
end if
if isErr_=3 then SaveToFileEx="" else SaveToFileEx=GetFileName(tmpPath)
End Function
'取得文件數據
Public Function FileData(Item)
isErr_=0
if file.Exists(Item) then
if isAllowExt(File(Item).FileExt) then
oUpFileStream.Position = File(Item).FileStart
FileData = oUpFileStream.Read (File(Item).FileSize)
Else
isErr_=3
ErrMessage_="該後綴名的文件不允許上傳"
OutErr("該後綴名的文件不允許上傳")
FileData=""
End if
else
ErrMessage_="不存在該對象(如該文件沒有上傳,文件為空)!"
OutErr("不存在該對象(如該文件沒有上傳,文件為空)")
end if
End Function
'取得文件路徑
Public function GetFilePath(FullPath)
If FullPath <> "" Then
GetFilePath = Left(FullPath,InStrRev(FullPath, "\"))
Else
GetFilePath = ""
End If
End function
'取得文件名
Public Function GetFileName(FullPath)
If FullPath <> "" Then
GetFileName = mid(FullPath,InStrRev(FullPath, "\")+1)
Else
GetFileName = ""
End If
End function
'取得文件的後綴名
Public Function GetFileExt(FullPath)
If FullPath <> "" Then
GetFileExt = LCase(Mid(FullPath,InStrRev(FullPath, ".")+1))
Else
GetFileExt = ""
End If
End function
'取得一個不重復的序號
Public Function GetNewFileName()
dim ranNum
dim dtNow
dtNow=Now()
randomize
ranNum=int(90000*rnd)+10000
'以下這段由webboy提供
GetNewFileName=year(dtNow) & right("0" & month(dtNow),2) & right("0" & day(dtNow),2) & right("0" & hour(dtNow),2) & right("0" & minute(dtNow),2) & right("0" & second(dtNow),2) & ranNum
End Function
Public Function isAllowExt(Ext)
if NoAllowExt="" then
isAllowExt=cbool(InStr(1,";"&AllowExt&";",LCase(";"&Ext&";")))
else
isAllowExt=not CBool(InStr(1,";"&NoAllowExt&";",LCase(";"&Ext&";")))
end if
End Function
End Class
Public Sub OutErr(ErrMsg)
if IsDebug_=true then
Response.Write ErrMsg
Response.End
End if
End Sub
'----------------------------------------------------------------------------------------------------
'文件屬性類
Class FileInfo_Class
Dim FormName,FileName,FilePath,FileSize,FileMIME,FileStart,FileExt
End Class
%>
------------------------以下是類的使用說明
無懼上傳類 - UpFile_Class V2.1 使用手冊
作者:梁無懼 http://www.25cn.com [下載]
UpFile_Class 概述
自從用ASP來編寫網站,就無時無刻想找一種兼容性強,使用方便的上傳方法,用過很多的無 組件上傳方法,但是都存在使用不方便,兼容性差,速度慢等的問題。終於在2003年的元旦里,想 到了可以讓上傳文件達到最快的方法,經過10天的努力,整整10個版本的版本的更新,終於完成了第一個「無懼上傳類V1.0」,這個版本與其它的上傳類或方法相比,具有速度快,兼容性強, 使用方便等特點。
經過整整一年,在得到各大網友的支持下,並且在長期使用中針對該版的不足,開發了1.1,1.2等版本,由於為了向下兼容,放棄了很多新的特性,現在,結過審慎考慮,終於在2004年7月10日完成了"無懼上傳類2.0"版,該版相對於前作在安全上作出了最大的改進,在類內部實現了上傳類型的黑白名單,更多方便了各種上傳的環境,即使黑客突破了上傳程序,但是最終在保存文件時會使他的所有努力付之流水,該版在使用上比前作更加方便,更人性化了。由於添加和修改了不少屬性值,在移植上需要作出比較大的修改。
UpFile_Class 公共屬性
File 文件域的集合,是一個Dictionary 對象,返回值一個FileInfo_Class 類。可讀寫。
Form 表單域的集合,是一個Dictionary 對象,返回對應表單域的值。可讀寫。
isErr 返回錯誤的數值。-1表示無錯,1表示沒有上傳數據,2表示上傳超出限制。只讀。
Version 獲取類的版本信息。只讀。
AllowExt 白名單,允許上傳的文件類型,可以在類文件里預設可上傳的文件類型,以文件的後綴名來判斷,不區分大小寫,每個後綴名用「;」號分開。如AllowExt="jpg;rar;zip"。可讀寫。
NoAllowExt 黑名單,不允許上傳的文件類型,可以在類文件里預設不可上傳的文件類型,以文件的後綴名來判斷,不區分大小寫,每個後綴名用「;」號分開。如NoAllowExt="asp;htm;html;js;"。可讀寫
ErrMessage 錯誤信息,在發生錯誤時,可以調用ErrMessage顯示錯誤的字元串信息。只讀。
UpFile_Class 公共方法
GetData(MaxSize As Int64) 分析上傳的數據。MaxSize為限制上傳的位元組,設為-1即不限制大小,此為過程,沒有返回值,調用後調檢查isErr是否大於0。
SaveToFile(Item As String,Path As String) 保存到文件,自動覆蓋已存在的同名文件,Item為表單項名,Path為保存的絕對路徑,返回值為保存的文件名。
AutoSave(Item As String,Path As String) 保存到文件,自動創建文件名以避免重復,Item為表單的名,Path為保存的絕對路徑(可不包含文件名,如e:\wwwroot\upimg\),返回值為保存的文件名。
FileData(Item As String) 取得文件數據,Item為表單項名
GetFilePath(FullPath As String) 返迴文件在路徑,如GetFilePath("c:\a.asp") 返回值為"c:\"。
GetFileName(FullPath As String) 返迴文件名,如GetFileName("c:\a.asp") 返回值為"a.asp"。
GetFileExt(FullPath As String) 返迴文件的後綴名,如GetFileExt("c:\a.asp") 返回值為"asp"。
GetNewFileName() 返回一個以時間種子的不重復數值,可以用作文件名。
isAllowExt(Ext As String) 返回一個真假值指是Ext是否為可上傳的類型,如isAllowExt("jpg")。
UpFile_Class 受保護方法
SaveToFileEx(Item As String,Path As String,Over As bool) 保存到文件,其中Over指示如果文件存在是否覆蓋,如果OVER為真時,文件按PATH來保存,如果OVER為假,則自動調用 GetNewFileName() 生成一個新的不重復的文件名,以上傳時的後綴名保存。
FileInfo_Class 概述
文件信息類,用來存貯上傳的文件信息
FileInfo_Class 公共屬性
FileName 返回上傳的文件名。
FilePath 返回上傳時文件在客戶端的路徑。
FileExt 返迴文件擴展名。
FileMIME 返迴文件MIME類別。
FileSize 返迴文件大小(以位元組為單位)。
Dictionary 對象 請參考VBSCRIPT幫助取得更詳細的屬性和方法
UPFILE_CLASS 特性
版本更新
0.96 第一個公開版本,以新的解析方法達到速度上的一個提升,修改稻香老農的無組件上傳類,以達到完全兼容。
1.0 發現原版中一個無法避免的BUG,會導至黑客利用伺服器在上傳其間會佔用100%CPU資源來達到拒絕服務攻擊,故修改了原來的設用方法,增加一個GetData來在實際上傳數據前對上傳文件的大小進行判斷,防止被上傳超大文件。至於其它的改變,忘掉了。
1.2 修改了1.0中的一些錯誤命名(俺的英語不好),整理部分代碼和加入更多對代碼的注釋。
2.0 更加穩定和更安全,加入了上傳類型的黑白名單,自動保存,修改了文件類中的一個屬性,原為FileType現在改為FileMIME,增加了幾個常用的方法。
使用中的一些問題解答
1、什麼時候用AutoSave和SaveToFile?
AutoSave是自動生成新的文件名以避免與伺服器上的原文件同名,而SaveToFile則是覆蓋存在的文件,所以,如果你上傳的文件需要覆蓋原文件的時候,那麼就調用SaveToFile,如果你上傳的文件不需要覆蓋存在的文件,那麼就調用AutoSave,該函數會返回所保存的文件名。
2、為什麼不提供自全部保存?
我不太相信大家用上傳類時不需要對文件進行處理,那麼提供全部保存與分別保存並沒有什麼太大的區別,在能少不多的情況下,我沒有加入這個功能。
3、為什麼我保存的時候會提示「該類型不允許上傳呢」?我沒有執行判斷啊!
這是因為程序內部進行了判斷,為了防止由於外部調用代碼的BUG而導至判斷上傳類型失效,在內部的保存和取得數據都自動進行了文件類型的判別,如果黑名單存在,則白名單不起作用,這是為了方便一些程序的使用,因為有些時間只需要禁止幾個上傳類型即可,而不需要對每個上傳類型進行判別。
關於網友的一些問題
1、為什麼上傳的時候會出現無效頁?
這是因為IE的BUG所導至的,目前尚沒有更好的解決方法,原理是:當客戶端提交表單時,IE會首先發把上傳的總大小傳到伺服器,而這時伺服器開始執行ASP代碼,當運行到GetData方法時,會首先判斷上傳的總大小是為超過程序預設大小,如果沒有,則開始執行上傳,這時IE才真正開始上傳數據,但是如果上傳的總大小為超過程序預設大小,那麼程序自動放棄讀取並退出執行,這時上傳並沒有真正開始,雖然伺服器返回了錯誤信息給IE,但是IE由於設計當初沒有考慮到伺服器會拒絕表單的上傳,故IE會繼續等待伺服器的上傳回應,由於伺服器已經終止上傳,IE就會以為伺服器沒有響應而出現無效頁的錯誤了。
2、為什麼從1.2馬上升到了2.0?好像代碼改得不多啊!
這是因為大家都喜歡高版本,我巴不得改為7.0呢,那樣大家都會覺得這個版真高級。。。。-_-||
使 用 示 例
上傳文件的表單要加入enctype="multipart/form-data"屬性,即
<form name="form1" method="post" action="" enctype="multipart/form-data">
<input type="text" value="1" name="name">
<input type=file name="img">
<input type=submit name="submit" value="提交">
</form>
在執行上傳的ASP頁
'包含類文件
<!-- #include file="upfile_class.asp" -->
dim upfile
dim SaveFilename
'建立上傳對象
set upfile=new upfile_class
'取得上傳數據,限制最大上傳10M 計算方法為 10240000/1000000=10.24M
upfile.GetData (10240000)
'判決是否出錯
if upfile.isErr then
select case upfile.err
case 1
Response.Write "你沒有上傳數據呀???是不是搞錯了??"
case 2
Response.Write "你上傳的文件超出我們的限制,最大10M"
end select
else
'執行保存文件代碼
upfile.SaveToFile "img","c:\"&upfile.file("img").filename
'執行自動保存文件代碼,SaveFilename為保存的文件名
SaveFilename=upfile.AutoSave("img","c:\")
'銷毀對像
set upfile=nothing
end if
㈣ 微信被對方刪除/拉黑,發信息沒有提示,為什麼
將對方攔至黑名單後:
1)在自己的會話列表不再顯示與其聊天記錄,解除黑名單後會重新出現在會話列表中;
2)在對方的通訊錄好友列表中仍然會顯示;
3)將不再接收到對方的消息;
4)對方無法給你發消息,會提示「對方拒絕接收您的消息」,自己可以給對方正常發送消息;
5)互相無法查看更新後的頭像、個性簽名;
6)好友無法查看你的微信個人相冊和對照片進行評論;
6)互相看不到朋友圈更新,拉黑之前在朋友圈分享的照片也不在對方朋友圈展示。
查看好友是否刪除了我或將我加入了黑名單,好友將你刪除或加入黑名單後,你給他發消息時,出現以下提示:
對方將我加入黑名單後:
㈤ 文件上傳漏洞原理是什麼
文件上傳原理
在文件上傳的功能處,若服務端腳本語言未對上傳的文件進行嚴格驗證和過濾,導致惡意用戶上傳惡意的腳本文件時,就有可能獲取執行服務端命令的能力,這就是文件上傳漏洞。
文件上傳漏洞高危觸發點
相冊、頭像上傳
視頻、照片分享
附件上傳(論壇發帖、郵箱)
文件管理器
存在文件上傳功能的地方都有可能存在文件上傳漏洞,比如相冊、頭像上傳,視頻、照片分享。論壇發帖和郵箱等可以上傳附件的地方也是上傳漏洞的高危地帶。另外像文件管理器這樣的功能也有可能被攻擊者所利用值得注意的是,如果移動端也存在類似的操作的話,那麼相同的原理,也存在文件上傳漏洞的風險。
為了防禦文件上傳漏洞的產生,需要在服務端做嚴格的防護,因為瀏覽器、客戶端傳回的數據並不可信任。首先是第一道防線,文件類型檢測,上傳的文件需要經過嚴格的文件類型檢測防止上傳的文件是惡意腳本。
上傳之後的文件要進行重命名。
如果上傳的文件是圖片類型,可以選擇使用重繪圖的方式對圖片進行保存,但是這種方式會對服務端性能稍有影響
最後,文件上傳的目錄不可賦予可執行許可權,可以使用BOS這樣的雲存儲服務,當然最方便的還是使用BOS這樣現成的雲存儲服務
㈥ 被加入黑名單,有提示沒
當然沒有啦,之所以叫黑名單就是在不讓你自己知道的情況下把你從好友中清理出去而且再也不想見到你,你發的信息對方也收不到,要是提示你,這些就不可能實現了。難道非要撕破臉皮對你說」滾蛋「嗎!直接把你拉入黑名單,省去了很多口水!管你知道不知道呢!
㈦ 文件傳輸助手在黑名單里出不來
摘要 您好,在的呢,請您稍等2分鍾,您的問題我已經看到了,正在整理您的答案
㈧ 什麼是文件上傳漏洞
文件上傳漏洞是指:由於程序員未對上傳的文件進行嚴格的驗證和過濾,而導致的用戶可以越過其本身許可權向伺服器上傳可執行的動態腳本文件。如常見的頭像上傳,圖片上傳,oa辦公文件上傳,媒體上傳,允許用戶上傳文件的地方如果過濾不嚴格,惡意用戶利用文件上傳漏洞,上傳有害的可以執行腳本文件到伺服器中,可以獲取伺服器的許可權,或進一步危害伺服器。
非法用戶可以上傳的惡意文件控制整個網站,甚至是控制伺服器,這個惡意腳本文件,又被稱為webshell,上傳webshell後門之後可查看伺服器信息、目錄、執行系統命令等。
文件上傳的類型:
1、前端js繞過
在文件上傳時,用戶選擇文件時,或者提交時,有些網站會對前端文件名進行驗證,一般檢測後綴名,是否為上傳的格式。如果上傳的格式不對,則彈出提示文字。此時數據包並沒有提交到伺服器,只是在客戶端通過js文件進行校驗,驗證不通過則不會提交到伺服器進行處理。
2、修改content-type繞過
有些上傳模塊,會對http類型頭進行檢測,如果是圖片類型,允許上傳文件到伺服器,否則返回上傳失敗,因為服務端是通過content-type判斷類型,content-type在客戶端可被修改。
3、繞黑名單
上傳模塊,有時候會寫成黑名單限制,在上傳文件的時獲取後綴名,再把後綴名與程序中黑名單進行檢測,如果後綴名在黑名單的列表內,文件將禁止文件上傳。
4、htaccess重寫解析繞過
上傳模塊,黑名單過濾了所有的能執行的後綴名,如果允許上傳.htaccess。htaccess文件的作用是:可以幫我們實現包括:文件夾密碼保護、用戶自動重定向、自定義錯誤頁面、改變你的文件擴展名、封禁特定IP地址的用戶、只允許特定IP地址的用戶、禁止目錄列表,以及使用其他文件作為index文件等一些功能。
在htaccess里寫入SetHandlerapplication/x-httpd-php則可以文件重寫成php文件。要htaccess的規則生效,則需要在apache開啟rewrite重寫模塊,因為apache是多數都開啟這個模塊,所以規則一般都生效。
5、大小寫繞過
有的上傳模塊 後綴名採用黑名單判斷,但是沒有對後綴名的大小寫進行嚴格判斷,導致可以更改後綴大小寫可以被繞過,如PHP、Php、phP、pHp。
㈨ 文件上傳漏洞
文件上傳漏洞是指:由於程序員未對上傳的文件進行嚴格的驗證和過濾,而導致的用戶可以越過其本身許可權向伺服器上傳可執行的動態腳本文件。如常見的
頭像上傳,圖片上傳,oa辦公文件上傳,媒體上傳,允許用戶上傳文件的地方如果過濾不嚴格,惡意用戶利用文件上傳漏洞,上傳有害的可以執行腳本文件到伺服器中,可以獲取伺服器的許可權,或進一步危害伺服器。
非法用戶可以上傳的惡意文件控制整個網站,甚至是控制伺服器,這個惡意腳本文件,又被稱為webshell,上傳webshell後門之後可查看伺服器信息、目錄、執行系統命令等。
文件上傳的類型:
1、前端js繞過
在文件上傳時,用戶選擇文件時,或者提交時,有些網站會對前端文件名進行驗證,一般檢測後綴名,是否為上傳的格式。如果上傳的格式不對,則彈出提示文字。此時數據包並沒有提交到伺服器,只是在客戶端通過js文件進行校驗,驗證不通過則不會提交到伺服器進行處理。
2、修改content-type繞過
有些上傳模塊,會對http類型頭進行檢測,如果是圖片類型,允許上傳文件到伺服器,否則返回上傳失敗,因為服務端是通過content-type判斷類型,content-type在客戶端可被修改。
3、繞黑名單
上傳模塊,有時候會寫成黑名單限制,在上傳文件的時獲取後綴名,再把後綴名與程序中黑名單進行檢測,如果後綴名在黑名單的列表內,文件將禁止文件上傳。
4、htaccess重寫解析繞過
上傳模塊,黑名單過濾了所有的能執行的後綴名,如果允許上傳.htaccess。htaccess文件的作用是:可以幫我們實現包括:文件夾密碼保護、用戶自動重定向、自定義錯誤頁面、改變你的文件擴展名、封禁特定IP地址的用戶、只允許特定IP地址的用戶、禁止目錄列表,以及使用其他文件作為index文件等一些功能。
在htaccess里寫入SetHandler
application/x-httpd-php則可以文件重寫成php文件。要htaccess的規則生效,則需要在apache開啟rewrite重寫模塊,因為apache是多數都開啟這個模塊,所以規則一般都生效。
5、大小寫繞過
有的上傳模塊 後綴名採用黑名單判斷,但是沒有對後綴名的大小寫進行嚴格判斷,導致可以更改後綴大小寫可以被繞過,如PHP、Php、phP、pHp。