使用 BASH 作为 CGI 进行 HTTP 文件上传

憋半天憋出这么点代码来,暂时凑合可以用。。。需要手动删除文件末尾的分隔符,还有一个windows 换行:

#!/bin/bash
newline=""

while true; do
    read newline
    line_start=$(expr substr "$newline" 1 6)

    if [ ${line_start}x == "------x" ];then
        echo "Got the boundary"

        #just throw the follow lines away
        read newline
        read newline
        read newline

        toFile=new.tar.gz
        cat >$toFile
    fi
done

暂时先这样吧,有空再做仔细点。

PS: 按上面代码接受 tar.gz 之后,tar 是可以正常解压的,然后提示:

gzip: stdin: decompression OK, trailing garbage ignored
然而并没有任何问题,就是说 gzip 没当这是个事。

    if [ "${line_start}x" == "Content-Lengthx" ];then
        echo "Content-Length seg. is found"

        length=$(echo $newline|sed ‘s/[^0-9]//g‘)

HTML 代码用的是这个:

<meta http-equiv=Content-Type content="text/html;charset=utf-8">

<html>

<body>
<form enctype="multipart/form-data" action="http://localhost/UploadFile" method="post">
file1:<input type="file" name="file1"><br>
<input type="submit" value="上传">
<input type="reset" value="重置">
</form>
</body>

</html> 
时间: 2024-11-03 13:21:03

使用 BASH 作为 CGI 进行 HTTP 文件上传的相关文章

任意文件上传漏洞

漏洞产生原因:①代码层:开发者在编写代码的时候不严谨,未对文件上传的合法性进行检验: ②应用层:web容器漏洞,cgi,配置不当: 有网站到服务器上传文件的常用检测手段:①js(一般是检测文件后缀名)-可修改本地js代码或通过浏览器自带功能"No-script"进行绕过: ②服务器端MIME检测-对contenttype的额检测:   ③服务端目录路径检测,一般是检测目录路径是否合理,漏洞原因是对目录路径的检测不够严谨,可以用0x00截断进行攻击 ④服务器端文件拓展名检测绕过,分为白名

Atitit..文件上传组件选型and最佳实践总结(2)----断点续传

Atitit..文件上传组件选型and最佳实践总结(2)----断点续传 1. 断点续传的原理 1 2. 如何判断一个插件/控件是否支持断点续传?? 1 3. 常用的组件选型结果::马 1 4. 自定义断点续传控件要实现的指标 2 5. 断点续传实现协议ftp/http/ rmi 等选型.. 2 6. 断点续传实现方式activex,plugin,,applet,  Flash ,能不能实现断点续传?? 3 7. Missing required permissions manifest att

IIS部署flask之实现文件上传功能

1.环境 windows 7 x64 IIS 6 python 2.7.9 wfastcgi-3.0.0 flask-0.12.2 2.安装wfastcgi,并启动wfastcgi pip install wfastcgi C:\Users\wangpan>D:\software\Python27\Scripts\wfastcgi-enable.exe已经在配置提交路径"MACHINE/WEBROOT/APPHOST"向"MACHINE/WEBROOT/APPHOST&

用php实现文件上传二法

PHP(PHP培训 php教程 )(Hypertext Preprocessor)是一种 HTML 内嵌式的语言 (类似 IIS 上的ASP).而 PHP 独特的语法混合了 C.Java.Perl 以及 PHP 式的新语法.它可以比 CGI 或者 Perl&nb sp;更快速的执行动态网页.除此之外,用 PHP 写出来的 Web 后端CGI 程序,可以很轻易的移植到不同的系统平台上. 我们在做网站时,需要访问者的参于才能将网站建设得更加引人注目,这就要求我们从访问者那里得到文章.图片等.因此,文

文件上传的思考 (转) http://blog.csdn.net/ncafei/article/details/53401961

文件上传校验 客户端JavaScript校验(一般只校验后缀名) 一般都是在网页上写一段javascript脚本,校验上传文件的后缀名,有白名单形式也有黑名单形式. 判断方式:在浏览加载文件,但还未点击上传按钮时便弹出对话框,内容如:只允许上传.jpg/.jpeg/.png后缀名的文件,而此时并没有发送数据包. 服务端校验: 1.文件头content-type字段校验(image/gif):代码对上传文件的文件类型进行了判断,如果不是图片类型,返回错误. 2.文件内容头校验(GIF89a): 可

servlet 通过 FileItem 实现多文件上传

[本文简介] 一个servlet 多文件上传的简单例子. [依赖包] commons-fileupload-1.3.1.jar commons-io-2.2.jar [依赖包下载] commons-fileupload-1.3.1.jar:http://commons.apache.org/proper/commons-fileupload/download_fileupload.cgi commons-io-2.2.jar:http://commons.apache.org/proper/co

atitit.文件上传带进度条的实现原理and组件选型and最佳实践总结O7

1. 实现原理 1 2. 大的文件上传原理::使用applet 1 3. 新的bp 2 1. 性能提升---分割小文件上传,避免一次使用内存使用过大的 2 2. Uuid还是原来文件名称:: 2 3. 监听器频繁地被调用 2 4. 结合wz easyui 2 4. 选型 2 5. Uploadify::yash js+flash 3 6. commons-fileupload:: 3 7. COS这个工具O'Reilly公司 3 8. 大的文件上传组件总结 3 5. 林吧实现ui Ajax+jq

300行python代码的轻量级HTTPServer实现文件上传下载

最近,利用一下空余的时间对以前的Python知识进行了巩固和复习,便闲来无事写了一个轻量级的HTTPServer来实现文件上传下载,不废话,直接上代码: #!/usr/bin/env python # -*- coding: utf-8 -*- __version__ = "0.1" __all__ = ["SimpleHTTPRequestHandler"] __author__ = "kumikoda" __home_page__ = &qu

文件上传漏洞及解析漏洞总结

文件上传漏洞是指用户上传了一个可执行的脚本文件,并通过此脚本文件获得了执行服务器端命令的能力.这种攻击方式是最为直接和有效的,"文件上传"本身没有问题,有问题的是文件上传后,服务器怎么处理.解释文件.如果服务器的处理逻辑做的不够安全,则会导致严重的后果. 文件上传后导致的常见安全问题一般有: 1)上传文件是Web脚本语言,服务器的Web容器解释并执行了用户上传的脚本,导致代码执行. 2)上传文件是Flash的策略文件crossdomain.xml,黑客用以控制Flash在该域下的行为(