zoukankan      html  css  js  c++  java
  • python 后端WEB 上传漏洞 代码

    昨天没事写了一个python的后端代码。作为任意上传的socket的连接

    地址如下: http://good.o2oxy.cn

    后端代码如下

    import tornado.ioloop
    import tornado.web
    import hashlib
    import os
    import re
    list2=[]
    class MainHandler(tornado.web.RequestHandler):
        def get(self,*args,**kwargs):
            self.write("你好")
        def post(self,*args,**kwargs):
            file_metas = self.request.files["fff"]
            print(file_metas)
            for meta in file_metas:
                m = hashlib.md5()
                file_name2=os.path.basename(meta['filename'])
                file = re.findall(r'[^\/:*?"<>|
    ]+$',file_name2)
                file_name2=file[0]
                m.update(file_name2.encode(encoding="utf-8"))
                md5_file=m.hexdigest()
                print(md5_file)
                file_name = (m.hexdigest() + '.txt')
                if md5_file=='5a10cc4eadfbec9beb41e4201f8e8d2b':
                    print(meta['body'])
                    with open("/www/wwwroot/good.o2oxy.cn/%s"%file_name2,'wb') as up:
                        if str('@eval') in  str(meta['body']):
                            self.write("your is hacker this is IP ")
                            continue
                        if str('$_POST') in str(meta['body']):
                            self.write('your is hacker this is IP ')
                            continue
                        if str('phpinfo') in str(meta['body']):
                            self.write("phpinfo")
                        else:
                            up.write(meta['body'])
                            self.write(" is file name good.o2oxy.cn/%s"%file_name)
                else:
                    with open("/www/wwwroot/good.o2oxy.cn/%s"%file_name,'wb') as up:
                        up.write(meta['body'])
                        self.write("OK good.o2oxy.cn/%s"%file_name)
    
    
    application = tornado.web.Application([
        (r"/index.html", MainHandler),
    ])
    
    if __name__ == "__main__":
        application.listen(1234)
        tornado.ioloop.IOLoop.instance().start()
  • 相关阅读:
    Golang手动分页,按等份拆分数据
    GORM无法映射到结构体上
    VSCODE GOLANG运行多个服务
    解决,MAVEN
    Properties配置文件常见错误写法以及转义字符说明
    Pentaho Data Integration (PDI/Kettle)与Java版本支持关系
    MYSQL之读写分离搭建方案
    Windows下创建软件快速启动命令
    Sonar的一些使用总结
    使用SVG Path绘图
  • 原文地址:https://www.cnblogs.com/liang2580/p/8966419.html
Copyright © 2011-2022 走看看