用docker搭建的Vulfocus镜像管理界面没有镜像可以拉取解决办法
ps:截止到今天2023.4.2,kali和vps的docker拉取的vulfocus镜像会有版本的区别,虽然都是拉取的最新版,vps上镜像为3个月以前,kali上为16个月以前,==所以在修改 views.py 文件时,可能会发现文件内容不一样==。版本不同也导致一键同步报错的解决办法在vps上可行,但是在kali上就不行
在开始操作之前,需要将用户切换为root用户 ૮(˶ᵔ ᵕ ᵔ˶)ა,当kali和vps上出现不同操作时我会分开说,那么现在让我们开始
# 1、查看容器ID
用命令 docker ps -a
查看 vulfocus 容器的ID ,接下来会使用到它
# 2、启动容器
启动容器(==如果启动了就不用执行==),这里用到命令 docker start 你的容器ID
# 3、查看需要修改的文件
先去容器里确定是否有我们需要修改的文件,先用 docker exec -it 你的容器ID /bin/bash
进入容器,通过命令 cd ./dockerapi
进入 dockerapi 目录(进入时我们已经在 vulfocus-api 目录下了),再输入 ls 查看是否有 views.py 文件,如果没有的话,可能需要重新从 docker 拉取 vulfocus 的镜像,如果有请输入exit退出容器
# 4、拷贝出需要修改文件(容器里没有vim命令,不能直接修改)
Kali:输入命令 docker cp 你的容器ID:/vulfocus-api/dockerapi/views.py /home/kali/
,将容器里的 views.py 文件拷贝到 kali 机器上的 ==/home/kali 目录下==
VPS:输入命令 docker cp 你的容器ID:/vulfocus-api/dockerapi/views.py /home/用户/
,将容器里的 views.py 文件拷贝到 ==/home/用户 目录下==,然后到这个目录用 ls
查看一下
# 5、修改文件
Kali:打开 views.py 文件,在第 1576 行处,将 url 改为 https://vulfocus.cn/api/imgs/info
,如果打开发现 1576 行不是这样,而是和 ==VPS== 这边的图一样,请看 ==VPS== 这边
VPS:将 views.py 文件下载到本地,这样修改起来会方便一点,保存时也不会报权限错误。如果打开文件时第 1575 行不是图这样,而是和 ==Kali== 的一样,可以直接按 kali 的来修改
这种情况需要添加一大段代码,需要添加的代码如下
try:url = "http://vulfocus.cn/api/imgs/info"res = requests.get(url, verify=False).contentreq = json.loads(res)image_names = list(ImageInfo.objects.all().values_list('image_name', flat=True))for item in req:if item['image_name'] == "":continueif 'is_docker_compose' in item:if item['is_docker_compose'] == True:continueif item['image_name'] in image_names:if item['image_name'] == "vulfocus/vulfocus:latest":continuesingle_img = ImageInfo.objects.filter(image_name__contains=item['image_name']).first()if single_img.image_vul_name != item['image_vul_name'] or single_img.image_vul_name == "":single_img.image_vul_name = item['image_vul_name']if single_img.image_desc == "":single_img.image_desc = item['image_desc']if single_img.rank != item['rank']:single_img.rank = item['rank']if single_img.degree != item['degree']:single_img.degree = json.dumps(item['degree'])if "writeup_date" in item and single_img.writeup_date != item['writeup_date']:single_img.writeup_date = item['writeup_date']single_img.save()else:if "writeup_date" in item:writeup_date = item['writeup_date']else:writeup_date = ""image_info = ImageInfo(image_name=item['image_name'], image_vul_name=item['image_vul_name'],image_desc=item['image_desc'], rank=item['rank'],degree=json.dumps(item['degree']),is_ok=False, create_date=timezone.now(), writeup_date=writeup_date,update_date=timezone.now())image_info.save()return JsonResponse({"code": 200, "data": "成功"})except Exception as e:return JsonResponse({"code": 201, "data": e})
添加在如图所示位置,需要注意代码格式和排版,他们都在自定义的 get_timing_imgs 函数下
# 6、关于一键同步报错问题
关于一键同步报错问题,vps 上拉取的vulfocus并没有这个问题,如图所示的这个代码,红框部分就是和同步有关的,它并不能放在 try 这段代码后面,如果 kali 上想尝试解决一键同步报错,可以尝试将这个段代码加载如图所示位置(但是,截至写这篇文章为止,我尝试加这段代码并不能解决)
tasks.synchronous_image.delay()
return JsonResponse({"code": 200, "data": "镜像同步中"})
# 7、保存
Kali:点击保存,另存为到桌面(不替换的原因是我尝试之后发现替换不了)
VPS:直接 Ctrl + s 保存
# 8、替换文件
Kali:将原来 /home/kali 目录下的 views.py 文件删除,把桌面新保存的 views.py 文件移动到 /home/kali 目录下
VPS:将原来的 views.py 文件删除,再把桌面上修改好的文件上传到相同目录
# 9、替换容器内的文件
Kali:输入命令 docker cp /home/kali/views.py 你的容器ID:/vulfocus-api/dockerapi/views.py
,将 views.py 文件拷贝到容器内,替换掉原来的文件,再使用命令 docker restart 你的容器ID
重启容器
VPS:输入命令 docker cp /home/用户/views.py 你的容器ID:/vulfocus-api/dockerapi/views.py
,将 views.py 文件拷贝到容器内,替换掉原来的文件,再使用命令 docker restart 你的容器ID
重启容器
# 10、等待重启完成后,在浏览器中访问Vulfocus,点击镜像管理,查看是否有镜像可以拉取
# 11、查询功能可以正常使用,涵盖了 vulfocus 上的所有靶场,但是添加功能里的搜索镜像的功能还没有解决,本地靶场还是能正常导入
希望能帮助到你૮(˶ᵔ ᵕ ᵔ˶)ა
相关文章:

用docker搭建的Vulfocus镜像管理界面没有镜像可以拉取解决办法
ps:截止到今天2023.4.2,kali和vps的docker拉取的vulfocus镜像会有版本的区别,虽然都是拉取的最新版,vps上镜像为3个月以前,kali上为16个月以前,所以在修改 views.py 文件时,可能会发现文件内容不…...

CSPM.pdf
PDF转图片 归档:...

多个短视频剪辑成一个视频:四川京之华锦信息技术公司
多个短视频剪辑成一个视频:创作中的艺术与技术 在数字时代,短视频以其短小精悍、内容丰富的特点,迅速成为社交媒体上的热门内容形式。然而,有时单一的短视频难以完全表达创作者的意图或满足观众的观赏需求。因此,将多…...

算法第三天力扣第69题:X的平方根
69. x 的平方根 (可点击下面链接或复制网址进行做题) https://leetcode.cn/problems/sqrtx/https://leetcode.cn/problems/sqrtx/ 给你一个非负整数 x ,计算并返回 x 的 算术平方根 。 由于返回类型是整数,结果只保留 整数部分 ,小数部分将被…...
异常处理。
异常 是指程序运行中出现了错误。 捕获异常: 对bug进行提醒,使整个程序继续运行。 捕获所有异常: try:#可能出错的代码 except:如果出现异常执行的代码 可以输出异常的类型: try:a1bhuishprint(ab) except Exception as i:…...

MySQL—函数(介绍)—字符串函数(基础)
一、引言 提到函数,在SQL分类中DQL语句中有一个聚合函数,如COUNT()、SUM()、MAX()等等。这些都是一些常见的聚合函数,而聚合函数只是函数的一种,接下来会详细的学习和介绍一下函数的应用场景和以及 mysql 当中文件的函数有哪些。 …...

CTF本地靶场搭建——静态flag题型的创建
静态flag题型的创建 首先这里要说的是静态flag和动态flag。 在CTF(Capture The Flag)比赛中,静态flag的使用通常与特定的赛制或题目类型关联,而不是直接与题型绑定。静态flag意味着这些flag是预先设定好的,不会随比…...

基于Django的博客系统之用HayStack连接elasticsearch增加搜索功能(五)
上一篇:搭建基于Django的博客系统数据库迁移从Sqlite3到MySQL(四) 下一篇:基于Django的博客系统之增加类别导航栏(六) 功能概述 添加搜索框用于搜索博客。 需求详细描述 1. 添加搜索框用于搜索博客 描…...

开源VS闭源:大模型发展路径之争,你站哪一派?
文章目录 引言一、数据隐私1.1开源大模型的数据隐私1.2 闭源大模型的数据隐私1.3 综合考量 二、商业应用2.1 开源大模型的商业应用2.2 闭源大模型的商业应用2.3 商业应用的综合考量 三、社区参与3.1 开源大模型的社区参与3.2 闭源大模型的社区参与3.3 综合考量 结论 引言 在人…...

Python | Leetcode Python题解之第115题不同的子序列
题目: 题解: class Solution:def numDistinct(self, s: str, t: str) -> int:m, n len(s), len(t)if m < n:return 0dp [[0] * (n 1) for _ in range(m 1)]for i in range(m 1):dp[i][n] 1for i in range(m - 1, -1, -1):for j in range(n …...

STM32高级控制定时器应用之检测输入PWM周期和占空比
目录 概述 1 PWM 输入模式 1.1 原理介绍 1.2 应用实例 1.3 示例时序图 2 使用STM32Cube配置工程 2.1 软件环境 2.2 配置参数 2.3 生成项目文件 3 功能实现 3.1 PWM占空比函数 3.2 输入捕捉回调函数 4 功能测试 4.1 测试软件框架结构 4.2 实验实现 4.2.1 测试实…...

[AI Google] 三种新方法利用 Gemini 提高 Google Workspace 的生产力
Workspace 侧边栏中的 Gemini 现在将使用 Gemini 1.5 Pro,新的 Gemini for Workspace 功能即将登陆 Gmail 移动应用,等等。 Gemini for Google Workspace 帮助个人和企业更好地利用 Google 应用——从在 Gmail 中撰写邮件到在 Sheets 中组织项目计划。过…...

【U-Net验证】逐元素乘积将特征投射到极高维隐式特征空间的能力
写在前面:本博客仅作记录学习之用,部分图片来自网络,如需使用请注明出处,同时如有侵犯您的权益,请联系删除! 文章目录 前言网络结构编码结构解码结构代码 实验实验设置w/o-ReLU的性能比较with-ReLU的性能比…...

快团团大团长帮卖如何导出单个团购的订单?免费教程教你怎么做!
一、小程序端如何导出单个团购的订单? 进入团购页面,在订单管理——订单导出中,点击订单数据表格,可导出到邮箱,或通过在浏览器中查看下载链接 二、电脑端如何导出单个团购的订单? 1、如何自定义选择订单信…...

services层和controller层
services层 我的理解,services层是编写逻辑代码语句最多的一个层,非常重要,在实际的项目中,负责调用Dao层中的mybatis,在我的项目中它调用的是这两个文件 举例代码如下 package com.example.sfdeliverysystem.servic…...
Pycharm编辑器下自定义模块导入报错:no module named问题
相信很多使用pycharm 社区版编写python 程序的初学者都会遇到这样一个看似简单但是一时半刻找不到解决头绪的问题: 在同个目录下导入自己编写的模块到主程序的过程中,直接import的时候会报错:ModuleNotFoundError。 通过各种方法尝试以后还是…...

C#使用GDI对一个矩形进行任意角度旋转
C#对一个矩形进行旋转GDI绘图,可以指定任意角度进行旋转 我们可以认为一张图片Image,本质就是一个矩形Rectangle,旋转矩形也就是旋转图片 在画图密封类 System.Drawing.Graphics中, 矩形旋转的两个关键方法 //设置旋转的中心点 public v…...

打印机的ip不同且连不上
打印机的ip不同且连不上 1.问题分析2.修改网段3.验证网络 1.问题分析 主要是打印机的网段和电脑不在同一个网段 2.修改网段 3.验证网络...

关于linux程序的查看、前台运行、后台运行、杀死的管理操作。
前言 在Linux中, 程序(program)是放在磁盘上的程序,是不会执行的。 进程(process)是程序被触发,从而加载到内存中的,会被CPU随机执行。 Linux中,有非常多的进程在实时运…...

STM32作业设计
目录 STM32作业设计 STM32作业实现(一)串口通信 STM32作业实现(二)串口控制led STM32作业实现(三)串口控制有源蜂鸣器 STM32作业实现(四)光敏传感器 STM32作业实现(五)温湿度传感器dht11 STM32作业实现(六)闪存保存数据 STM32作业实现(七)OLED显示数据 STM32作业实现(八)触摸按…...

7.4.分块查找
一.分块查找的算法思想: 1.实例: 以上述图片的顺序表为例, 该顺序表的数据元素从整体来看是乱序的,但如果把这些数据元素分成一块一块的小区间, 第一个区间[0,1]索引上的数据元素都是小于等于10的, 第二…...

基于Flask实现的医疗保险欺诈识别监测模型
基于Flask实现的医疗保险欺诈识别监测模型 项目截图 项目简介 社会医疗保险是国家通过立法形式强制实施,由雇主和个人按一定比例缴纳保险费,建立社会医疗保险基金,支付雇员医疗费用的一种医疗保险制度, 它是促进社会文明和进步的…...

vscode(仍待补充)
写于2025 6.9 主包将加入vscode这个更权威的圈子 vscode的基本使用 侧边栏 vscode还能连接ssh? debug时使用的launch文件 1.task.json {"tasks": [{"type": "cppbuild","label": "C/C: gcc.exe 生成活动文件"…...

聊聊 Pulsar:Producer 源码解析
一、前言 Apache Pulsar 是一个企业级的开源分布式消息传递平台,以其高性能、可扩展性和存储计算分离架构在消息队列和流处理领域独树一帜。在 Pulsar 的核心架构中,Producer(生产者) 是连接客户端应用与消息队列的第一步。生产者…...

前端导出带有合并单元格的列表
// 导出async function exportExcel(fileName "共识调整.xlsx") {// 所有数据const exportData await getAllMainData();// 表头内容let fitstTitleList [];const secondTitleList [];allColumns.value.forEach(column > {if (!column.children) {fitstTitleL…...

智能在线客服平台:数字化时代企业连接用户的 AI 中枢
随着互联网技术的飞速发展,消费者期望能够随时随地与企业进行交流。在线客服平台作为连接企业与客户的重要桥梁,不仅优化了客户体验,还提升了企业的服务效率和市场竞争力。本文将探讨在线客服平台的重要性、技术进展、实际应用,并…...

2021-03-15 iview一些问题
1.iview 在使用tree组件时,发现没有set类的方法,只有get,那么要改变tree值,只能遍历treeData,递归修改treeData的checked,发现无法更改,原因在于check模式下,子元素的勾选状态跟父节…...

【OSG学习笔记】Day 16: 骨骼动画与蒙皮(osgAnimation)
骨骼动画基础 骨骼动画是 3D 计算机图形中常用的技术,它通过以下两个主要组件实现角色动画。 骨骼系统 (Skeleton):由层级结构的骨头组成,类似于人体骨骼蒙皮 (Mesh Skinning):将模型网格顶点绑定到骨骼上,使骨骼移动…...

企业如何增强终端安全?
在数字化转型加速的今天,企业的业务运行越来越依赖于终端设备。从员工的笔记本电脑、智能手机,到工厂里的物联网设备、智能传感器,这些终端构成了企业与外部世界连接的 “神经末梢”。然而,随着远程办公的常态化和设备接入的爆炸式…...
代理篇12|深入理解 Vite中的Proxy接口代理配置
在前端开发中,常常会遇到 跨域请求接口 的情况。为了解决这个问题,Vite 和 Webpack 都提供了 proxy 代理功能,用于将本地开发请求转发到后端服务器。 什么是代理(proxy)? 代理是在开发过程中,前端项目通过开发服务器,将指定的请求“转发”到真实的后端服务器,从而绕…...