上传函数,求突破

thesums | 2013-12-25 14:04

Function fnUploadImg(ByVal upFile As HttpPostedFile, ByVal uploadPath As String) As String
    Dim result As String = ""
    Dim intImgSize As Int32
    intImgSize = upFile.ContentLength
    If intImgSize <> 0 Then
        If intImgSize > 500000 Then
            result = "图片太大"
            Return result
            Exit Function
        End If
        Dim strImgType As String = upFile.ContentType
        '只接受.jpg格式的图片
        Dim filesplit() As String = Split(strImgType, "/")
        strImgType = filesplit(filesplit.Length - 1)
        If strImgType = "jpg" Or strImgType = "jpeg" Then
        Else
            result = "图片格式错误"
            Return result
            Exit Function
        End If
        filesplit = Split(upFile.FileName, "\")
        Dim filename As String = filesplit(filesplit.Length - 1)
        upFile.SaveAs(Server.MapPath("upload\location\" & uploadPath) & "\" & filename)
         Dim imgpath As String = "upload/location/" & uploadPath & "/" & filename
         result = imgpath
        Return result
    End If
End Function

[原文地址]

相关讨论:

1#

thesums | 2013-12-25 14:05

环境:iis 7.5

2#

thesums | 2013-12-25 14:06

00截断失败

3#

thesums | 2013-12-25 14:11

uploadPath参数不可控

4#

felixk3y (Just do it!) | 2013-12-25 15:05

上传任意文件,抓包修改Content-Type为:image/jpeg

5#

乌帽子 (中国的黄牛就是多,无处不在啊。乌云也有大量哦) | 2013-12-25 15:05

貌似只检测了ContentType

6#

thesums | 2013-12-25 15:49

问题已经解决,感谢felixk3y,乌帽子

7#

核攻击 (统治全球,奴役全人类!毁灭任何胆敢阻拦的有机生物!) | 2013-12-26 09:16

Dim strImgType As String = upFile.ContentType    ←★
'只接受.jpg格式的图片
Dim filesplit() As String = Split(strImgType, "/")
strImgType = filesplit(filesplit.Length - 1)    ←★
If strImgType = "jpg" Or strImgType = "jpeg" Then    ←★
Else
    result = "图片格式错误"
    Return result
    Exit Function
End If
filesplit = Split(upFile.FileName, "\")    ←★
Dim filename As String = filesplit(filesplit.Length - 1)    ←★
upFile.SaveAs(Server.MapPath("upload\location\" & uploadPath) & "\" & filename)    ←★
Dim imgpath As String = "upload/location/" & uploadPath & "/" & filename

8#

核攻击 (统治全球,奴役全人类!毁灭任何胆敢阻拦的有机生物!) | 2013-12-26 09:17

只验证了“upFile.ContentType”,任意上传,修改 ContentType = "jpg" Or "jpeg"