asp防止上传图片木马原理解析

ASP教程 2025-08-05

有时候通过程序上传木马,一般都是伪装成图片,下面是asp下检测图片木马的代码,需要的朋友可以参考下。

首先判断文件大小:

  1. iffile.filesize<10then
  2. Response.Write()
  3. Response.Write()
  4. Response.End()
  5. endif

将文件上传到服务器后,判断用户文件中的危险操作字符:

  1. setMyFile=server.CreateObject(Scripting.FileSystemObject)
  2. setMyText=MyFile.OpenTextFile(FilePath,1)'读取文本文件
  3. sTextAll=lcase(MyText.ReadAll)
  4. MyText.close
  5. setMyFile=nothing
  6. sStr=.getfolder|.createfolder|.deletefolder|.createdirectory|.deletedirectory|.saveas
  7. |wscript.shell|script.encode|server.|.createobject|execute|activexobject|language=
  8. sNoString=split(sStr,|)
  9. fori=0toubound(sNoString)
  10. ifinstr(sTextAll,sNoString(i))then
  11. setfiledel=server.CreateObject(Scripting.FileSystemObject)
  12. filedel.deletefileFilePath
  13. setfiledel=nothing
  14. Response.Write()
  15. Response.End()
  16. endif
  17. next

如何防止木马性图片上传

这个代码我检验过没有问题,可以阻挡木马性图片的上传

  1. <%
  2. '***************************************************************
  3. 'CheckFileType函数用来检查文件是否为图片文件
  4. '参数filename是本地文件的路径
  5. '如果是文件jpeg,gif,bmp,png图片中的一种,函数返回true,否则返回false
  6. '***************************************************************
  7. constadTypeBinary=1
  8. dimjpg(1):jpg(0)=CByte(&HFF):jpg(1)=CByte(&HD8)
  9. dimbmp(1):bmp(0)=CByte(&H42):bmp(1)=CByte(&H4D)
  10. dimpng(3):png(0)=CByte(&H89):png(1)=CByte(&H50):png(2)=CByte(&H4E):png(3)=CByte(&H47)
  11. dimgif(5):gif(0)=CByte(&H47):gif(1)=CByte(&H49):gif(2)=CByte(&H46):gif(3)=CByte(&H39):gif(4)=CByte(&H38):gif(5)=CByte(&H61)
  12. Response.WriteCheckFileType(Server.MapPath(2.gif))
  13. functionCheckFileType(filename)
  14. onerrorresumenext
  15. CheckFileType=false
  16. dimfstream,fileExt,stamp,i
  17. fileExt=mid(filename,InStrRev(filename,.)+1)
  18. setfstream=Server.createobject(ADODB.Stream)
  19. fstream.Open
  20. fstream.Type=adTypeBinary
  21. fstream.LoadFromFilefilename
  22. fstream.position=0
  23. selectcasefileExt
  24. casejpg,jpeg
  25. stamp=fstream.read(2)
  26. fori=0to1
  27. ifascB(MidB(stamp,i+1,1))=jpg(i)thenCheckFileType=trueelseCheckFileType=false
  28. next
  29. casegif
  30. stamp=fstream.read(6)
  31. fori=0to5
  32. ifascB(MidB(stamp,i+1,1))=gif(i)thenCheckFileType=trueelseCheckFileType=false
  33. next
  34. casepng
  35. stamp=fstream.read(4)
  36. fori=0to3
  37. ifascB(MidB(stamp,i+1,1))=png(i)thenCheckFileType=trueelseCheckFileType=false
  38. next
  39. casebmp
  40. stamp=fstream.read(2)
  41. fori=0to1
  42. ifascB(MidB(stamp,i+1,1))=bmp(i)thenCheckFileType=trueelseCheckFileType=false
  43. next
  44. endselect
  45. fstream.Close
  46. setfseteam=nothing
  47. iferr.number<>0thenCheckFileType=false
  48. endfunction
  49. %>

以上就是asp防止上传图片木马原理解析,希望对大家的学习有所帮助。