首页 > 编程知识 正文

文件上传漏洞实战,axios上传图片

时间:2023-05-06 12:08:33 阅读:127548 作者:2282

最近,大人物布置了实现嵌入点小工具开发的任务,主要任务是实现能够快速实现嵌入点创建的脚本工具

其中一部分是使用axios发送数据。 记录下在这里遇到的洞

使用Node.js部分嵌入点时,主要过程是这样的https://www.cn blogs.com/ajan uw/p/982880.html

(async ) )={ const l=console.log; constaxios=require(axios ); 常数fs=请求(fs-extra ); varformdata=require(form-data ); var form=new FormData (; FORM.append(file ),fs.createreadstream ) c:(users(administrator )pictures (a.jpg ) ) ) form.append () letr=awaitaxios (方法: ' post )、URL : ' http://localhost 33605000/upload )、data: form、headers3360form L(R //ok} () ) ) ); 自己使用导入了fs和form-data的即可,也不需要特别指定form的类型。 在网上进行了各种调查,发现使用form-data。 研究了绕一圈基本上使用form-data也没关系。 createReadStream读取的是下图的配置文件

使用readFileSync时,情况如下:

您可以看到readFileSync读取的文件是二进制文件。 这和在学城的发送请求是一样的。 但是,问题仍然没有解决,经过对原项目请求的研究,请求后携带了一个boundary,添加了boundary,从而解决了问题。

代码

varformdata=require(form-data ) ) var formdata=new FormData ); var headers={ ' cookie ' : ' xx ' ' content-type ' : ' multipart/form-data; boundary=$ { formdata._ boundary } ` }总结:您可以使用readFileSync或createReadStream读取文件。 在nodejs端提交表单请求时,必须添加formdata._ boundary boundary是分隔线的意思,用于拆分表单的每个数据也表示表单的结束。 如果没有这个后端,就无法识别。 这个bug前后一共挂了一天以上,做个小记录

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。