deepseek本地部署+web图形化页面配置+对比其他ai模型

admin 2025年2月6日00:05:14评论62 views字数 7385阅读24分37秒阅读模式

前言

最近deepseek非常火,训练成本低,其预训练费用仅为OpenAI GPT-4o模型的不到十分之一,但是效果堪比OpenAI,使用深度思考,回答的问题很不错,啥都敢说

deepseek本地部署+web图形化页面配置+对比其他ai模型

可惜惨遭ddos,导致官网注册用户都注册不了了,无法正常提供服务,不过我们可以进行本地部署,离线就可以使用,无需联网,即可本地使用。当然服务器多的,也可以在服务器上部署,这样大家都能用了。

deepseek本地部署+web图形化页面配置+对比其他ai模型

如果嫌下载慢可以后台发送:deepseek 获取网盘下载地址

安装ollama

在官网点击Download下载对应系统的安装程序。

https://ollama.com/
deepseek本地部署+web图形化页面配置+对比其他ai模型
deepseek本地部署+web图形化页面配置+对比其他ai模型

如果C盘内存足够,可以直接安装

deepseek本地部署+web图形化页面配置+对比其他ai模型
  • 默认是安装到C盘的,如果你想安装到指定目录可以在安装程序目录上方输入CMD打开命令行窗口

在弹出的命令行窗口内输入:

setx OLLAMA_MODELS F:chatgpt_allollama

来修改环境变量OLLAMA_MODELS,将模型下载位置修改到F:chatgpt_allollama目录,你也可以改为其他容量比较大的磁盘下的目录

  • 设置ollama服务启动配置:在弹出的命令行窗口内输入执行
setx OLLAMA_HOST 0.0.0.0
setx OLLAMA_ORIGINS *

之后默认一步一步安装即可

安装deepseek模型

之后来到ollama选择deepseek模型,第一就是

deepseek本地部署+web图形化页面配置+对比其他ai模型

选择模型大小。正常情况下根据自己的显卡显存选择,比如显存8G就选择8B的模型

deepseek本地部署+web图形化页面配置+对比其他ai模型

输入复制下来的命令

ollama run deepseek-r1:8b

等待一段时间,安装成功deepseek本地部署+web图形化页面配置+对比其他ai模型

其他命令

  • 查看当前安装的模型: ollama list
  • 安装其他模型:在 https://ollama.com/library 上查询模型名称,执行ollama run xx:xx进行安装,如安装gemma2:9b模型,ollama run gemma2:9b
  • 查询运行的模型:ollama ps

查看一下安装的模型,之前因为线下的ctf比赛,就使用过离线的ai了,之前对比过觉得阿里云的qwen比其他的都要好用,等下将他和deepseek-r1对比一下deepseek本地部署+web图形化页面配置+对比其他ai模型

集成ChatGPT-Next-Web界面

安装

下载之后默认安装即可

https://github.com/ChatGPTNextWeb/NextChat/releases/
deepseek本地部署+web图形化页面配置+对比其他ai模型

配置

打开ChatGPT-Next-Web界面 设置,进行基础配置:

  • 配置服务商:选择Open Ai
  • 自定义模型名:选择 deepseek-r1:8b
  • 模型:选择 deepseek-r1:8b
  • 接口地址:http://127.0.0.1:11434
deepseek本地部署+web图形化页面配置+对比其他ai模型

关闭配置页面。所有工作已经完成, 可以试试在ChatGPT-Next-Web 里点击 新的聊天,来与大模型进行聊天了。

deepseek本地部署+web图形化页面配置+对比其他ai模型

问题解决:

  • ChatGPT-Next-Web无法聊天,提示failed to fetch: 可能是你没有执行setx OLLAMA_ORIGINS *,或者是你搞乱了步骤,先安装了ollama,然后在执行环境变量设置后没有重启ollama.
    • 解决方法-查看环境变量是否正常:执行set OLLAMA_ORIGINS 检查输出是否是OLLAMA_ORIGINS=*
    • 解决方法-重启ollama,且重新打开新命令行窗口运行ollma run。
  • ChatGPT-Next-Web无法聊天,提示gpt3.5tubo xxxx: 选择模型有误,在聊天窗口点击模型切换按钮,选择qwen2:7b模型
  • 模型运行缓慢:检查显卡是否正常
    • 显卡检查:执行nvidia-smi查看显存占用和显卡使用情况

对比qwen:7b和deepseek-r1:8b

由于是IT行业,所以就给一段漏洞代码让他们彼此分析一下,其实并不严谨,只供参考

给出下面的代码

分析下面代码的漏洞,给出利用步骤

<?php
//Multilingual. Not implemented yet.
//setcookie("lang","en.lang.php");
if (isset($_COOKIE['lang']))
{
 include("lang/".$_COOKIE['lang']); 
}
// Not implemented yet.
?>
<html>
<head>
<title>PwnLab Intranet Image Hosting</title>
</head>
<body>
<center>
<img src="images/pwnlab.png"><br />
[ <a href="/">Home</a> ] [ <a href="?page=login">Login</a> ] [ <a href="?page=upload">Upload</a> ]
<hr/><br/>
<?php
if (isset($_GET['page']))
 {
  include($_GET['page'].".php"); 
 }
else
 {
echo"Use this server to upload and share image files inside the intranet";
 }
?>
</center>
</body>
</html>


<?php
session_start();
if (!isset($_SESSION['user'])) { die('You must be log in.'); }
?>
<html>
 <body>
  <form action='' method='post' enctype='multipart/form-data'>
   <input type='file' name='file' id='file' />
   <input type='submit' name='submit' value='Upload'/>
  </form>
 </body>
</html>
<?php 
if(isset($_POST['submit'])) {
if ($_FILES['file']['error'] <= 0) {
$filename  = $_FILES['file']['name'];
$filetype  = $_FILES['file']['type'];
$uploaddir = 'upload/'; 
$file_ext  = strrchr($filename, '.');
$imageinfo = getimagesize($_FILES['file']['tmp_name']);
$whitelist = array(".jpg",".jpeg",".gif",".png"); 

if (!(in_array($file_ext, $whitelist))) {
   die('Not allowed extension, please upload images only.');
  }

if(strpos($filetype,'image') === false) {
   die('Error 001');
  }

if($imageinfo['mime'] != 'image/gif' && $imageinfo['mime'] != 'image/jpeg' && $imageinfo['mime'] != 'image/jpg'&& $imageinfo['mime'] != 'image/png') { 
   die('Error 002');
  }

if(substr_count($filetype, '/')>1){
   die('Error 003');
  }

$uploadfile = $uploaddir . md5(basename($_FILES['file']['name'])).$file_ext;

if (move_uploaded_file($_FILES['file']['tmp_name'], $uploadfile)) {
echo"<img src="".$uploadfile.""><br />";
  } else {
   die('Error 4');
  }
 }
}

?>

deepseek-r1:8b

deepseek-r1:8b,分析非常多,数据量非常大,但是没有分析到利用点上面deepseek本地部署+web图形化页面配置+对比其他ai模型输出的全部内容,不得不说,很详细

嗯,我现在需要仔细分析用户提供的PHP代码,找出其中的安全漏洞,并给出如何利用这些漏洞的步骤。让我一步一步地来思考。

首先,这个代码是一个简单的图片上传脚本,用户可以通过网页上传图片到服务器。这看起来是一个常见的任务,但由于涉及到文件上传和处理,可能存在多个安全隐患。

  1. 会话管理:代码中使用了session_start()来开始会话,并检查了$_SESSION['user']是否存在。如果没有,就显示登录信息。这里看起来有一定的会话管理,但具体实现是否完整呢?比如,用户是否需要注册或密码验证?

  2. 文件上传处理:使用了multipart/form-data,这在处理文件上传时是标准做法。但是,我注意到form action没有设置,默认为'',可能导致提交后无法正确处理。应该指定一个动作,比如upload.php或者当前脚本。

  3. 文件扩展名检查:使用了$whitelist = array(".jpg",".jpeg",".gif",".png");来过滤文件类型。这是好的,但可能需要更严格的检查,例如使用get_file_type()或其他方法验证实际文件类型是否与扩展名一致。

  4. MIME类型检查:使用了getimagesize()imageinfo['mime']来判断是否为图像文件。这是合理的,但可能存在一些遗漏,比如某些不常见的图片格式。

  5. 文件移动与存储:使用了move_uploaded_file()将文件保存到upload/目录,并生成一个带有MD5哈希和扩展名的文件名。这种方法可以避免重复上传,但如果没有正确处理可能导致文件覆盖或其他问题。

  6. 错误处理:在文件上传失败时,会显示“Error 4”等信息。这可能不够详细,有助于攻击者了解系统的反应。

  7. 包含外部文件:在multilingual部分和页面加载时有包含外部文件的代码。虽然这部分看起来没有被用于攻击,但如果不小心处理,可能会导致包含任意文件,比如.php或其他类型。

  8. cookie管理:设置了cookie来选择语言,但没有对cookie进行加密或验证,这可能存在跨站请求伪造(CSRF)的风险。

接下来,我需要逐一分析这些点,看看哪里可以被攻击者利用。

第一步:确定攻击面

  • 会话管理:如果用户能够绕过登录检查,访问受保护的页面。
  • 文件上传:允许用户上传任意格式的文件,但实际上只允许几种类型,可能有其他类型可以被上传并执行。
  • 包含外部文件:如果$_GET['page']可以被控制,攻击者可能通过将其设置为一个恶意文件路径来包含代码。

第二步:潜在的漏洞点

  1. 会话管理

    • 如果没有密码验证或其他身份验证措施,攻击者可以绕过$_SESSION['user']检查。
  2. 文件扩展名检查

    • 虽然只允许几种格式,但如果没有进一步验证文件类型,攻击者可能上传隐藏的恶意代码(如.php.jpg中的执行代码)。
  3. 包含外部文件

    • 如果$_GET['page']未过滤,攻击者可以将其设置为一个恶意路径,比如?page=shell.php,导致服务器包含该文件。
  4. form action空白

    • action=''可能导致提交后的数据以GET方式处理,而不是POST,这取决于服务器配置,但通常会自动处理。这点需要确认。
  5. 错误信息

    • 如果某些错误条件下显示出过多的信息,攻击者可以利用这些错误来推断服务器结构或配置。
  6. cookie管理

    • 如果没有防止跨站请求伪造(CSRF),攻击者可能通过设置特定cookie值来执行恶意操作。
  7. 文件移动与存储

    • 生成的文件名包含MD5哈希,理论上可以预防重复上传,但如果有缓存或其他方法,可以绕过这个机制。

第三步:如何利用这些漏洞

  1. 绕过登录检查

    • 攻击者可以直接访问受保护的页面,如果会话管理没有额外的验证。
  2. 上传非允许文件类型

    • 由于扩展名检查仅基于.jpg等,攻击者可能上传带有恶意代码的文件,比如.php.jpg中的执行代码。虽然服务器可能拒绝,但如果检查不严格,仍然有风险。
  3. 包含外部文件

    • 攻击者可以通过设置?page=evil.php来包含任意文件。如果页面加载逻辑允许,这会导致服务器返回该文件内容。
  4. CSRF攻击

    • 如果没有anti-CSRF tokens,攻击者可以伪造cookie或请求,执行恶意操作。
  5. 文件覆盖

    • 如果move_uploaded_file()不正确处理,攻击者可能覆盖现有文件或创建新的恶意文件。
  6. 信息泄露

    • 错误信息中的“Error 4”等可能提供服务器细节,帮助攻击者了解系统状态。

第四步:具体利用示例

假设攻击者想包含一个恶意PHP脚本shell.php,他可以尝试以下方法:

  1. 通过包含外部文件

    • 修改页面参数为?page=shell.php
  2. 绕过登录检查

    • 如果会话管理没有进一步的验证,攻击者可以直接访问受保护的页面。
  3. 上传恶意文件

    • 上传一个.jpg文件,但其中包含PHP代码。当用户查看图片时,这些代码可能被执行。
  4. 利用错误信息

    • 如果服务器返回详细错误信息,攻击者可以使用这些信息来推断更多细节。
  5. CSRF攻击

    • 创建一个请求,伪造cookie值,使其看起来是从受信任的来源发送的,从而执行恶意操作。

第五步:防御措施

  1. 加强会话管理

    • 增加身份验证层次,如密码或双因素认证。
  2. 严格的文件上传检查

    • 使用更严格的内容类型检测,拒绝不允许的格式,并且进行恶意代码扫描。
  3. 防止包含外部文件

    • 过滤$_GET['page']或其他参数,仅允许特定的值。
  4. 引入anti-CSRF tokens

    • 在每个表单或请求中添加token,并在提交时验证其一致性。
  5. 限制文件上传大小和类型

    • 设置最大文件大小限制,拒绝过大文件,并严格检查允许的格式。
  6. 日志记录与监控

    • 实时监控异常访问,及时发现并处理潜在攻击。
  7. 安全更新

    • 定期更新服务器软件和数据库,修复已知漏洞。

通过以上步骤,可以识别和利用系统中的潜在漏洞,同时实施相应的防御措施来保护系统免受攻击。

qwen:7b

qwen:7b,阿里云还是牛逼,直接找出了利用点deepseek本地部署+web图形化页面配置+对比其他ai模型没有那么详细,而且有一些分析也不算很到位,但是找到了利用点 该代码存在多个安全漏洞,主要涉及输入验证不足、文件上传限制和权限控制问题。以下是利用步骤及分析:

漏洞1:未处理的外部脚本包含

//Multilingual. Not implemented yet.
//setcookie("lang","en.lang.php");
if (isset($_COOKIE['lang']))
{
include("lang/".$_COOKIE['lang']); 
}

漏洞描述: 这段代码允许通过设置lang cookie来动态加载多语言文件。然而,没有对加载的脚本进行安全检查或限制,这可能导致执行任意PHP代码。

利用步骤

  1. 注入恶意代码:用户可以构造一个包含恶意代码的URL,例如 http://example.com/index.php?page=login&lang=evil_code.php
  2. 服务器响应:当用户访问上述链接时,脚本会尝试加载并执行lang/evil_code.php中的内容。

漏洞2:未验证文件类型和扩展名

$whitelist = array(".jpg",".jpeg",".gif",".png"); 
if (!(in_array($file_ext, $whitelist))) {
die('Not allowed extension, please upload images only.');
}

漏洞描述: 代码仅检查上传的文件是否为允许的扩展名之一,但未对$filetype进行验证。这可能导致执行任意代码。

利用步骤

  1. 构造恶意文件:创建一个包含PHP代码的文件(例如 myfile.php),并尝试以其他类型上传。
  2. 上传和触发:通过提交表单上传该文件,试图绕过扩展名检查。

漏洞3:未验证MIME类型

if($imageinfo['mime'] != 'image/gif' && $imageinfo['mime'] != 'image/jpeg' && $imageinfo['mime'] != 'image/jpg'&& $imageinfo['mime'] != 'image/png') { 
die('Error 002');
}

漏洞描述: 代码仅检查文件是否为特定的图像类型,但未考虑$filetype的实际值。

利用步骤

  1. 构造恶意MIME类型:上传一个文件时使用自定义或不合法的MIME类型。
  2. 绕过验证:尝试通过上述类型的错误提示来上传非图像内容。

漏洞4:未限制文件路径

在处理上传文件时,代码可能暴露于目录遍历攻击:

$uploadfile = $uploaddir . md5(basename($_FILES['file']['name'])).$file_ext;

漏洞描述: 通过构造特定的文件名或使用特殊字符,可能导致文件被写入到不期望的位置。

漏洞5:未处理上传错误

代码中对上传过程中的错误处理不足:

if ($_FILES['file']['error'] <= 0) {
// ...
}

漏洞描述: 仅检查$error是否小于等于0,而忽略可能的异常情况或非预期的行为。

演示利用步骤

  1. 注入恶意脚本:构造lang/evil_code.php并尝试通过设置lang cookie加载。
  2. 绕过文件类型验证:上传一个包含PHP代码的文件(如myfile.php),利用不正确的扩展名或MIME类型。
  3. 触发目录遍历和错误处理:上传具有特定命名策略的文件,试图利用路径构造漏洞或未处理的异常。

为了解决这些问题,应实施更严格的安全措施,包括:

  • 对外部脚本加载进行白名单过滤。
  • 严格验证并限制上传文件的类型、MIME类型和扩展名。
  • 确保文件上传路径安全,并使用安全的文件命名策略以避免目录遍历攻击。
  • 完善错误处理逻辑,确保对所有可能的异常情况进行妥善处理。

总结

毕竟只是7b和8b量级的

其实两款都非常优秀了,已经是市面上顶尖的ai模型,而且deepseek最高有671b,而qwen最高只有110b,所以在最高配置的情况下,开源的deepseek确实是第一了
deepseek本地部署+web图形化页面配置+对比其他ai模型

deepseek本地部署+web图形化页面配置+对比其他ai模型

 

 

原文始发于微信公众号(泷羽Sec-尘宇安全):deepseek本地部署+web图形化页面配置+对比其他ai模型

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2025年2月6日00:05:14
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   deepseek本地部署+web图形化页面配置+对比其他ai模型http://cn-sec.com/archives/3691207.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息