联系官方销售客服

1835022288

028-61286886

求助 版主:官方研发技术组
这个是演示页面上传文件的地址也就是说我的服务器也会有个类似这
类型:迅睿CMS 更新时间:2020-02-05 10:00:04 服务器

http://demo4.xunruicms.com/index.php?s=api&c=file&siteid=1&m=upload&p=5f6b46db873cebd4b3b587b9595e8d0e&fid=54

这个是演示页面 post 上传文件的地址 

也就是说我的服务器也会有个类似这样的地址 可以通过post 上传文件

为什么我这里总是提示 {"code":0,"msg":"找不到临时文件","data":[]}

一天了 百度了各种 全修改了 还是同样的问题

求大神帮忙



回帖
  • #1楼    迅睿框架创始人
    2020-02-05 01:15:36
    Google Pixel 手机 0
    这个没问题,需要安装API插件,手册上有demo上传代码,可以试试
  • 靠悬赏赚钱买授权
    #2楼    靠悬赏赚钱买授权
    2020-02-05 01:19:59
    Chrome 0
  • 卓Sir
    #3楼    卓Sir
    2020-02-05 01:25:13
    Chrome 0
    上传不了文件是临时目录空间不够
  • 天天向上
    #4楼    天天向上
    2020-02-05 01:30:08
    Chrome 0
    找不到临时文件。是服务器临时目录满了,我之前遇到过,重启服务器后就对了
  • 长沙陈老大
    #5楼    长沙陈老大
    2020-02-05 01:39:40
    Chrome 0
    重启服务器即可,临时目录问题的
  • 13937162907
    #6楼    13937162907
    2020-02-05 01:42:52
    Chrome 0
    回复迅睿框架创始人可能都理解错了,我要达到的目的是 获取到上传文件POST地址 自己编写代码把上传文件变成数据流 通过 CreateObject("Msxml2.ServerXMLHTTP") 在 VB 或者 C 等等 编写命令 然后 POST的方式 上传文件 正常情况下 打开http://demo4.xunruicms.com/index.php?s=api&c=file&siteid=1&m=upload&p=5f6b46db873cebd4b3b587b9595e8d0e&fid=54 类似 这个地址 应该提示: {"code":0,"msg":"找不到上传文件","data":[]}但是提示的却是 {"code":0,"msg":"找不到临时文件","data":[]}
  • #7楼    迅睿框架创始人
    2020-02-05 01:57:41
    Google Pixel 手机 0
    二次开发需要把代码发来看了找到原因才能下结论。如果是其他语言想上传到cms文件,必须使用API插件来完成,比如客户端语言软件等等
  • #8楼    迅睿框架创始人
    2020-02-05 02:08:50
    Google Pixel 手机 0
    需要看代码是怎么写的
  • 13937162907
    #9楼    13937162907
    2020-02-05 02:38:13
    Chrome 0
    回复迅睿框架创始人1、第一步抓包
    我这里使用的firefox浏览器,随便找一个网站上传张: 0个.bmp的图片
    这是请求头信息:
    1. POST /hicoffice/135editor/ueditor/php/controller.php?action=uploadfile&encode=utf-8 HTTP/1.1
    2. Host: xxxxxxxxxxx:8086
    3. User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:48.0) Gecko/20100101 Firefox/48.0
    4. Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
    5. Accept-Language: zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3
    6. Accept-Encoding: gzip, deflate
    7. X_Requested_With: XMLHttpRequest
    8. Content-Length: 2905
    9. Content-Type: multipart/form-data; boundary=---------------------------293112200817682
    10. Connection: keep-alive
    复制代码
    这是POST提交数据:
    1. -----------------------------293112200817682
    2. Content-Disposition: form-data; name="id"
    3. WU_FILE_0
    4. -----------------------------293112200817682
    5. Content-Disposition: form-data; name="name"
    6. 0个.bmp
    7. -----------------------------293112200817682
    8. Content-Disposition: form-data; name="type"
    9. image/bmp
    10. -----------------------------293112200817682
    11. Content-Disposition: form-data; name="lastModifiedDate"
    12. Fri Aug 26 2016 11:50:21 GMT+0800
    13. -----------------------------293112200817682
    14. Content-Disposition: form-data; name="size"
    15. 2166
    16. -----------------------------293112200817682
    17. Content-Disposition: form-data; name="upfile"; filename="0个.bmp"
    18. Content-Type: image/bmp
    19. BMv������6���(������êÿÿÿ� ����������������部分删除
    20. -----------------------------293112200817682--
    复制代码
    这是成功的响应页面:
    1. {"state":"SUCCESS","url":"\/ueditor\/php\/upload\/file\/20160830\/1472536320204917.bmp","title":"1472536320204917
    2. .bmp","original":"0\u4e2a.bmp","type":".bmp","size":2166}
    复制代码
    2、构造上传数据
    从上面提交数据不难看出数据由
    表单数据分界线+设置文件域的名称和MIME类型+文件内容的字节数组+表单数据分界线
    3、创建一个转换字节集函数 方便后面调用
    1. Function 字节转换(zf)
    2. Set objFile = CreateObject("ADODB.Stream")
    3. If instr(zf,":\") >0 Then //为了让函数少个参数,就这么写的
    4. objFile.Type = 1
    5. objFile.Open
    6. objFile.LoadFromFile zf
    7. updata = objFile.Read(-1)//将路径文件转换成字节数组
    8. Else
    9. objFile.Type = 2
    10. objFile.mode = 3
    11. objFile .Charset = "utf-8"
    12. objFile.Open
    13. objFile .WriteText zf
    14. objFile.Position = 0
    15. objFile.Type = 1
    16. objFile.Position = 3//这里很多人会忽略编码为UTF-8是需要删除前段的BOM,还有常见的UNICODE格式这里设置成2即可
    17. updata = objFile.Read(-1)//将字符串转换成字节数组
    18. End If
    19. Set objFile =Nothing
    20. End Function
    复制代码
    4、转换代码已经有了,下面就进行构造:
    因为这是一个ueditor编辑器上传,所以参数很多,我们直接构造必须的数据即可
    1. upFile="c:\0个.bmp"
    2. boundary ="---------------------------293112200817682"
    3. str1 = "--"&boundary & vbCrLf & "Content-Disposition: form-data; name="upfile"; filename=""0个.bmp"""&vbCrLf&"Content-Type: image/bmp" & vbCrLf & vbCrLf
    4. str2 = vbCrLf & boundary & "--" & vbCrLf
    复制代码
    str1为 表单数据分界线+设置文件域的名称和MIME类型
    str2 为最后的表单数据分界线
    5、利用上面的函数对这些数据进行转换并写入一个新的变量
    1. Set objTemp = CreateObject("ADODB.Stream")
    2. objTemp.Type = 1
    3. objTemp.Open
    4. strCharset = "utf-8"
    5. 字节转换 str1
    6. objTemp.Write updata
    7. 字节转换 upFile
    8. objTemp.Write updata
    9. 字节转换 str2
    10. objTemp.Write updata
    11. updata2= objTemp.Read(- 1 )//保存构造好的数据
    复制代码
    6、下面就是上传
    1. upUrl="xxxxxx:8086/hicoffice/135editor/ueditor/php/controller.php?action=uploadfile&encode=utf-8"
    2. Dim xmlhttp
    3. Set xmlhttp = CreateObject("MSXML2.XMLHTTP")
    4. xmlhttp.Open "POST", upUrl, False
    5. xmlhttp.setRequestHeader "Content-Type", "multipart/form-data; boundary="& boundary
    6. xmlhttp.setRequestHeader "X_Requested_With", "XMLHttpRequest" //这些都是头信息来的
    7. xmlhttp.send updata2
    8. 返回信息= xmlhttp.responseText//上传返回值
    9. Set xmlhttp = Nothing
    10. Set objTemp = Nothing
    复制代码
    MessageBox 返回信息
    这是测试返回结果:





  • #10楼    迅睿框架创始人
    2020-02-05 03:01:52
    Google Pixel 手机 0
    这种需求只能用二楼的方法,API上传模式
  • #11楼    迅睿框架创始人
    2020-02-05 03:03:34
    Google Pixel 手机 0
    这种需求只能用二楼的方法,API上传模式。xunrui框架不允许外部提交到本站,外部客户端必须使用API
  • 高防维护
    #12楼    高防维护
    2020-02-05 03:04:25
    Chrome 0
    老大辛苦了,大半夜还在乐于助人啊,讯睿棒棒
  • 海水正蓝
    #13楼    海水正蓝
    2020-02-05 03:11:50
    Chrome 0
    外部提交肯定是不行的,系统会拦截,太不安全了,岂不是任何人都能向网站提交文件么
  • #14楼    迅睿框架创始人
    2020-02-05 03:19:33
    Google Pixel 手机 0
    抓包构建数据上传方法属于cms漏洞了,如果xunrui可以这样的话,我一定会第一时间去修补制止这种情况,正如11楼说的,太危险了。只能使用API上传
    满意答案
  • #15楼    迅睿框架创始人
    2020-02-05 03:21:55
    Chrome 0
    我是技术控就这样,看到问题半夜都会睡不着的,cms一定要做好防止抓包提交数据高防维护
  • 卓Sir
    #16楼    卓Sir
    2020-02-05 03:23:53
    Chrome 0
    楼主,这种方法是非法请求的,如果成功了,就是系统的漏洞,官方一定要防范这种提交啊13937162907
  • #17楼    迅睿框架创始人
    2020-02-05 03:27:31
    Chrome 0
    是的,这倒是给我敲了一个警钟,明天我验证一下,如果真能抓包提交,我会尽快修复程序卓Sir
  • 靠悬赏赚钱买授权
    #18楼    靠悬赏赚钱买授权
    2020-02-05 03:30:16
    Chrome 0
    必须制止这种情况,否则会被轻松入侵,任意文件上传漏洞就是这种情况。回复迅睿框架创始人
  • 黄老邪
    #19楼    黄老邪
    2020-02-05 03:50:02
    Chrome 0
    赶紧修复一下吧,一定不要有抓包上传的风险
  • 13937162907
    #20楼    13937162907
    2020-02-05 08:39:03
    Chrome 0
    ********此内容仅楼主可见********
  • 13937162907
    #21楼    13937162907
    2020-02-05 10:00:04
    Chrome 0
    迅睿框架创始人:这不是什么漏洞,post正常登陆,正常上传.... 网盘...还有很多网站都可以的. 只是正常的抓包 根据抓包的数据 从软件里批量上传... 需要上传的文件太多了 总不能手动一个个上传吧!!并不是漏洞