快速翻译awvs的漏洞库内容

发布时间:August 12, 2019 // 分类:开发笔记,linux,python,windows // No Comments

原本是想在某scan里面调用扫描器然后对这个进行漏洞内容翻译。查了一下说wdscanner里面有这个东西.可是本地倒入查看了一下发现真的很垃圾。

什么玩意,怎么跟wordpress对应上了。开始嗨以为看错, 仔细在数据裤里面翻了一下。还真是

我去。真的不太想说这个准确率,简直是查到了极点。想着反正本地安装awvs的时候都有带数据库。直接连接上去导出来自己翻译不就好了。有想法了就干,最近一直很懒哟,都没啥干头。本地虚拟机安装windows版本的,毕竟方便弄一些。
在C:\ProgramData\Acunetix Trial\settings.ini里面直接找到了连接的账户和密码。端口改成了45432,我记得11版本的是35432来着

把表导出来,然后想法是逐行去读取。把内容翻译了重新写入到另外一个表。最后再导回自己的数据库。翻译对比了下翻译的效率和方便,最后选择了百度的api。但是这个需要注意,咱们翻译的内容字数肯定超过200W.所以最好的是在一天内翻译完,不然就会提示被限制,也可以多准备几组api来避免这个尴尬的问题。

首先解决翻译的问题

def trans_baidu(q):
    """
    :param q:
    :param fromLang:
    :param toLang: zh简体 en英文
    :return:
    """
    url = "http://api.fanyi.baidu.com/api/trans/vip/translate"
    appid = '2019081xxxxxxxxxxx'  # 你的appid
    secretKey = 'w16M0ZXhHxxxxxxxxxxx'  # 你的密钥
    salt = str(random.randint(32768, 65536))
    # 生成签名
    # 部分内容是空的,直接返回出去
    if not q:
        return ""
    sign = appid + q + salt + secretKey
    sign = hashlib.md5(sign.encode()).hexdigest()
    data = {
        "appid": appid,
        "q": q,
        "from": 'en',
        "to": 'zh',
        "salt": salt,
        "sign": sign,
    }
    i = 0
    while i < 3:
        try:
            r = requests.post(url, data=data, timeout=120)
            return r.json().get('trans_result')[0].get("dst")
        except requests.exceptions.RequestException:
            i += 1

再就读取xlsx表格读内容,这里使用的是openpyxl。去处理的是话考虑都网速的稳定性因素,延迟了3秒。

def readExcel(ExcelFullName):
    """
    : 读取表
    : 循环去翻译
    """
    wb = load_workbook(ExcelFullName)
    sheets = wb.get_sheet_names()
    # # 第一个表格的名称
    sheet_first = sheets[0]
    # # 获取特定的worksheet
    #
    ws = wb.get_sheet_by_name(sheet_first)
    rows = ws.rows
    columns = ws.columns
    # 迭代所有的行
    for row in rows:
        item = {}
        line = [col.value for col in row]
        if str(line[0])!='id' and int(line[0]) >= 1:
            print line[0]
            write_xlsx(line)
            time.sleep(3)
        #print 'name_en',line[1],'impact',line[3],'description',line[4],'recommendation',line[5]

然后就创建另外一个表格来存这些翻译后的内容。这些字段直接引用来wdscanner的字段

def creat_xlsx():
    """
    : 创建表
    : 预先设定好
    """
    ExcelFullName= './vuln_xx.xlsx'
    if ExcelFullName:
        s = 0
        wb = Workbook()
        ws1 = wb.active
        word=['name_en','name_zh','level','miaoshu_en','miaoshu_zh','harm_en','harm_zh','repaire_en','repaire_zh']
        for i in word:
            s = s + 1
            ws1.cell(row =1,column = s,value = i)
        wb.save(filename=ExcelFullName)

最后就是写入了。

def write_xlsx(line):
    """
    : 对结果进行处理
    : 写进翻译后的内容
    """
    vulnfile = './vuln_xx.xlsx'
    wb = load_workbook(vulnfile)
    sheet1 = wb['Sheet']
    num = sheet1.max_row
    sheet1.cell(row = num+1,column = 1,value = line[1])
    sheet1.cell(row = num+1,column = 2,value = trans_baidu(line[1]))
    sheet1.cell(row = num+1,column = 3,value = match(line[2]))
    sheet1.cell(row = num+1,column = 4,value = line[3])
    sheet1.cell(row = num+1,column = 5,value = trans_baidu(line[3]))
    sheet1.cell(row = num+1,column = 6,value = line[4])
    sheet1.cell(row = num+1,column = 7,value = trans_baidu(line[4]))
    sheet1.cell(row = num+1,column = 8,value = line[5])
    sheet1.cell(row = num+1,column = 9,value = trans_baidu(line[5]))
    wb.save(vulnfile)

整个流程就结束了。最后展示下

提供一份翻译结束后的。因为是机器翻译的,所以好多东西看起来有点惨不忍睹。
vuln_xx.xlsx

标签:translate

添加新评论 »

分类
最新文章
最近回复
  • 没穿底裤: 最近发现的新版本可以装在LINUX了。但是API有点变化
  • 没穿底裤: 暂时好像没有看到这个功能.
  • 没穿底裤: 这个只是一个分析,并不是使用方法哟
  • 没穿底裤: 抱歉,很久没有打理了。会不会你使用的是12版本。目前还没有遇到过这种情况
  • bao song: http://0cx.cc/php_decode_shell.jspx 这个怎么用,代码提示...