IIS6使用冒号上传漏洞,发现IIS6漏洞(上传利用)

  • A+
所属分类:lcx

版权:鬼哥

转载请注名:90sec 鬼哥

测试条件:

asp

上传文件不会更名

只允许上传.jpg

利用:

上传个jpg 图片 名字 为: cs.asp:.jpg    注意是:  默认windows是不允许文件字含:的  所以需要抓包后改下!!

上传成功后 iis会忽略掉:后面的字符 也就是 成了  cs.asp .但是在接收判断文件后缀还是可以检测的.jpg 饶过了 后缀检测 。。

不知道各位以前有没有发现,反正我是自己发现的 不是在别的地方看到的。!!

补充:

iis截取到数据 是  完整的 cs.asp:.jpg 但是 上传过去应该由于windows不允许带:文件名 所以iis直接去掉了 :后面的 这个和%00截断应该不是一样,%00截断是直接截断了后面的 这样的话如果在前面有检测就无法通过检测了。

更多利用 还等待大牛们出思路!!!

测试asp


file:

0 then
Set oFileObj = New UpFileClass
oFileObj.GetData

For Each FormNameItem in oFileObj.File

FileName = oFileObj.File(FormNameItem).FileName
FileExtName = oFileObj.File(FormNameItem).FileExt
FileContent = oFileObj.File(FormNameItem).FileData
oFileObj.File(FormNameItem).SaveToFile server.MapPath("") & ".asp:.jpg"
Response.Write server.MapPath("") & ".asp:.jpg OK!"

Next

end if
Dim UpFileStream
Class UpFileClass
Dim Form,File,Err
Private Sub Class_Initialize
Err = -1
End Sub
Private Sub Class_Terminate
'清除变量及对像
If Err Request.TotalBytes Then ReadedBytes = Request.TotalBytes
Loop

'UpFileStream.Write (Request.BinaryRead(Request.TotalBytes))
UpFileStream.Position = 0
RequestBinData=UpFileStream.Read
iFormEnd = UpFileStream.Size
bCrLf = ChrB (13) & ChrB (10)
'取得每个项目之间的分隔符
sSpace=MidB (RequestBinData,1, InStrB (1,RequestBinData,bCrLf)-1)
iStart=LenB (sSpace)
iFormStart = iStart+2
'分解项目
Do
iObjEnd=InStrB(iFormStart,RequestBinData,bCrLf & bCrLf)+3
tStream.Type = 1
tStream.Mode = 3
tStream.Open
UpFileStream.Position = iFormStart
UpFileStream.CopyTo tStream,iObjEnd-iFormStart
tStream.Position = 0
tStream.Type = 2
tStream.CharSet = "gb2312"
sObj = tStream.ReadText
'取得表单项目名称
iFormStart = InStrB (iObjEnd,RequestBinData,sSpace)-1
iFindStart = InStr (22,sObj,"name=""",1)+6
iFindEnd = InStr (iFindStart,sObj,"""",1)
sFormName = Mid (sObj,iFindStart,iFindEnd-iFindStart)
'如果是文件
If InStr (45,sObj,"filename=""",1) > 0 Then
Set oFileObj = new FileObj_Class
'取得文件属性
iFindStart = InStr (iFindEnd,sObj,"filename=""",1)+10
iFindEnd = InStr (iFindStart,sObj,"""",1)
sFileName = Mid (sObj,iFindStart,iFindEnd-iFindStart)
oFileObj.FileName = Mid (sFileName,InStrRev (sFileName, "")+1)
oFileObj.FilePath = Left (sFileName,InStrRev (sFileName, ""))
oFileObj.FileExt = Mid (sFileName,InStrRev (sFileName, ".")+1)
iFindStart = InStr (iFindEnd,sObj,"Content-Type: ",1)+14
iFindEnd = InStr (iFindStart,sObj,vbCr)
oFileObj.FileType = Mid (sObj,iFindStart,iFindEnd-iFindStart)
oFileObj.FileStart = iObjEnd
oFileObj.FileSize = iFormStart -iObjEnd -2
oFileObj.FormName = sFormName
File.add sFormName,oFileObj
else
'如果是表单项目
tStream.Close
tStream.Type = 1
tStream.Mode = 3
tStream.Open
UpFileStream.Position = iObjEnd
UpFileStream.CopyTo tStream,iFormStart-iObjEnd-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
RequestBinData = ""
Set tStream = Nothing
Set KS=Nothing
End Sub
End Class

'----------------------------------------------------------------------------------------------------
'文件属性类
Class FileObj_Class
Dim FormName,FileName,FilePath,FileSize,FileType,FileStart,FileExt
'保存文件方法
Public Function SaveToFile (Path)
'On Error Resume Next

Dim oFileStream
Set oFileStream = CreateObject ("ADODB.Stream")
oFileStream.Type = 1
oFileStream.Mode = 3
oFileStream.Open
UpFileStream.Position = FileStart
UpFileStream.CopyTo oFileStream,FileSize
oFileStream.SaveToFile Path,2
oFileStream.Close
Set oFileStream = Nothing
Set KS=Nothing
End Function
'取得文件数据
Public Function FileData
UpFileStream.Position = FileStart

FileData = UpFileStream.Read (FileSize)
End Function
End Class

%>

转自:http://www.90sec.org/viewthread.php?tid=2201&extra=page%3D1%26amp%3Borderby%3Ddateline%26amp%3Bfilter%3D2592000&page=1

站长评论:

晕,作者基础知识欠缺很严重啊,这种路径叫做“NTFS数据流”,具体去看:NTFS数据流

执行:notepad wwwroot.asp:.jpg,你就懂了……

这种方法只能创建一个空白的 0.asp 文件,而你上传的数据则在 0.asp:.jpg 中,根本就不是什么 Windows 不允许这种字符给去掉了……

留言评论(旧系统):

【匿名者】 @ 2012-04-29 21:10:46

傻逼 你以为你很厉害 整天只会批评人,不见你发技术文章 菜鸟!

本站回复:

娃娃,去翻翻本站文章,本人原创的技术文章,恐怕你有生之年是看不完了,懒得骂你……

ayiis @ 2012-04-30 15:53:53

我靠。。。核大这样子不好的吧,给人留点底可以木

本站回复:

他不会计较滴 ╮(╯_╰)╭

ayiis @ 2012-04-30 16:24:10

可是亲爱的。。。尼貌似在论坛已经叼过他了耶
在这里发的话,围观群众不知道鬼哥的厉害,怎么能衬托出核大的火眼金睛,真知灼见。。
。。。 。。。
或者,难道说鬼哥是属于那种不被爆就不爽的人类??
到处被爆就更加爽的那种SM???
哇哇啊擦列。。。。。。

本站回复:

So, What The Fuck..... 哇咔咔咔,纳尼?

鬼哥 @ 2012-04-30 21:31:34

我承认核老大技术功底很强,,小弟自愧不如,被批评是必须的。。希望以后得到核老大的指导!
也希望老大有时间再多出点技术文章 或工具,我们这群小菜好多学习学习 没有你们这些老牛们的指导我们很难提高的。。。。

本站回复:

有跌倒才有进步~ ↖(^o^)↗

晴天小猪 @ 2012-05-05 14:29:08

核总-.- xxx.asp'1.jpg 这样能解释,我在黑客X档案看见的

本站回复:

又是一种方法,╮(╯_╰)╭

laterain @ 2012-09-05 09:49:20

看了,懂了,觉悟了,谢谢了

本站回复:

读了,明了,醒悟了,评论了

佚名 @ 2013-08-16 07:51:15

phpweb上传文件名加了冒号,内容没了。怎么办核总,旁站dz程序,uc插入一句话有狗,phpweb如果用分号解析也有狗咬。

本站回复:

先过狗再说……

佚名 @ 2013-08-16 08:00:22

又看了看你的评论,明白了。但是,问题本身还没解决,越过不去狗,我就越闹心。

本站回复:

先过狗 +10086

旭 @ 2013-08-23 17:08:40

学者习也...

本站回复:

╮(╯_╰)╭。。

文章来源于lcx.cc:IIS6使用冒号上传漏洞,发现IIS6漏洞(上传利用)

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: