前言
最近deepseek非常火,训练成本低,其预训练费用仅为OpenAI GPT-4o模型的不到十分之一,但是效果堪比OpenAI,使用深度思考,回答的问题很不错,啥都敢说
可惜惨遭ddos,导致官网注册用户都注册不了了,无法正常提供服务,不过我们可以进行本地部署,离线就可以使用,无需联网,即可本地使用。当然服务器多的,也可以在服务器上部署,这样大家都能用了。
如果嫌下载慢可以后台发送:deepseek
获取网盘下载地址
安装ollama
在官网点击Download下载对应系统的安装程序。
https://ollama.com/
如果C盘内存足够,可以直接安装
默认是安装到C盘的,如果你想安装到指定目录可以在安装程序目录上方输入CMD打开命令行窗口
在弹出的命令行窗口内输入:
setx OLLAMA_MODELS F:chatgpt_allollama
来修改环境变量OLLAMA_MODELS
,将模型下载位置修改到F:chatgpt_allollama
目录,你也可以改为其他容量比较大的磁盘下的目录
设置ollama服务启动配置:在弹出的命令行窗口内输入执行
setx OLLAMA_HOST 0.0.0.0setx OLLAMA_ORIGINS *
之后默认一步一步安装即可
安装deepseek模型
之后来到ollama选择deepseek模型,第一就是
选择模型大小。正常情况下根据自己的显卡显存选择,比如显存8G就选择8B的模型
输入复制下来的命令
ollama run deepseek-r1:8b
等待一段时间,安装成功
其他命令
查看当前安装的模型: ollama list
安装其他模型:在 https://ollama.com/library 上查询模型名称,执行 ollama run xx:xx
进行安装,如安装gemma2:9b模型,ollama run gemma2:9b
查询运行的模型: ollama ps
查看一下安装的模型,之前因为线下的ctf比赛,就使用过离线的ai了,之前对比过觉得阿里云的qwen比其他的都要好用,等下将他和deepseek-r1对比一下
集成ChatGPT-Next-Web界面
安装
下载之后默认安装即可
https://github.com/ChatGPTNextWeb/NextChat/releases/
配置
打开ChatGPT-Next-Web界面 设置,进行基础配置:
配置服务商:选择Open Ai 自定义模型名:选择 deepseek-r1:8b 模型:选择 deepseek-r1:8b 接口地址:http://127.0.0.1:11434
关闭配置页面。所有工作已经完成, 可以试试在ChatGPT-Next-Web 里点击 新的聊天,来与大模型进行聊天了。
问题解决:
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/><?phpif (isset($_GET['page'])) { include($_GET['page'].".php"); }else {echo"Use this server to upload and share image files inside the intranet"; }?></center></body></html><?phpsession_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
,分析非常多,数据量非常大,但是没有分析到利用点上面输出的全部内容,不得不说,很详细
首先,这个代码是一个简单的图片上传脚本,用户可以通过网页上传图片到服务器。这看起来是一个常见的任务,但由于涉及到文件上传和处理,可能存在多个安全隐患。
会话管理:代码中使用了
session_start()
来开始会话,并检查了$_SESSION['user']
是否存在。如果没有,就显示登录信息。这里看起来有一定的会话管理,但具体实现是否完整呢?比如,用户是否需要注册或密码验证?文件上传处理:使用了
multipart/form-data
,这在处理文件上传时是标准做法。但是,我注意到form action
没有设置,默认为''
,可能导致提交后无法正确处理。应该指定一个动作,比如upload.php
或者当前脚本。文件扩展名检查:使用了
$whitelist = array(".jpg",".jpeg",".gif",".png");
来过滤文件类型。这是好的,但可能需要更严格的检查,例如使用get_file_type()
或其他方法验证实际文件类型是否与扩展名一致。MIME类型检查:使用了
getimagesize()
和imageinfo['mime']
来判断是否为图像文件。这是合理的,但可能存在一些遗漏,比如某些不常见的图片格式。文件移动与存储:使用了
move_uploaded_file()
将文件保存到upload/
目录,并生成一个带有MD5哈希和扩展名的文件名。这种方法可以避免重复上传,但如果没有正确处理可能导致文件覆盖或其他问题。错误处理:在文件上传失败时,会显示“Error 4”等信息。这可能不够详细,有助于攻击者了解系统的反应。
包含外部文件:在
multilingual
部分和页面加载时有包含外部文件的代码。虽然这部分看起来没有被用于攻击,但如果不小心处理,可能会导致包含任意文件,比如.php
或其他类型。cookie管理:设置了cookie来选择语言,但没有对cookie进行加密或验证,这可能存在跨站请求伪造(CSRF)的风险。
接下来,我需要逐一分析这些点,看看哪里可以被攻击者利用。
第一步:确定攻击面
会话管理:如果用户能够绕过登录检查,访问受保护的页面。 文件上传:允许用户上传任意格式的文件,但实际上只允许几种类型,可能有其他类型可以被上传并执行。 包含外部文件:如果 $_GET['page']
可以被控制,攻击者可能通过将其设置为一个恶意文件路径来包含代码。
第二步:潜在的漏洞点
会话管理:
如果没有密码验证或其他身份验证措施,攻击者可以绕过 $_SESSION['user']
检查。
文件扩展名检查:
虽然只允许几种格式,但如果没有进一步验证文件类型,攻击者可能上传隐藏的恶意代码(如 .php
或.jpg
中的执行代码)。
包含外部文件:
如果 $_GET['page']
未过滤,攻击者可以将其设置为一个恶意路径,比如?page=shell.php
,导致服务器包含该文件。
form action空白:
action=''
可能导致提交后的数据以GET方式处理,而不是POST,这取决于服务器配置,但通常会自动处理。这点需要确认。
错误信息:
如果某些错误条件下显示出过多的信息,攻击者可以利用这些错误来推断服务器结构或配置。
cookie管理:
如果没有防止跨站请求伪造(CSRF),攻击者可能通过设置特定cookie值来执行恶意操作。
文件移动与存储:
生成的文件名包含MD5哈希,理论上可以预防重复上传,但如果有缓存或其他方法,可以绕过这个机制。
第三步:如何利用这些漏洞
绕过登录检查:
攻击者可以直接访问受保护的页面,如果会话管理没有额外的验证。
上传非允许文件类型:
由于扩展名检查仅基于 .jpg
等,攻击者可能上传带有恶意代码的文件,比如.php
或.jpg
中的执行代码。虽然服务器可能拒绝,但如果检查不严格,仍然有风险。
包含外部文件:
攻击者可以通过设置 ?page=evil.php
来包含任意文件。如果页面加载逻辑允许,这会导致服务器返回该文件内容。
CSRF攻击:
如果没有anti-CSRF tokens,攻击者可以伪造cookie或请求,执行恶意操作。
文件覆盖:
如果 move_uploaded_file()
不正确处理,攻击者可能覆盖现有文件或创建新的恶意文件。
信息泄露:
错误信息中的“Error 4”等可能提供服务器细节,帮助攻击者了解系统状态。
第四步:具体利用示例
假设攻击者想包含一个恶意PHP脚本shell.php
,他可以尝试以下方法:
通过包含外部文件:
修改页面参数为 ?page=shell.php
。
绕过登录检查:
如果会话管理没有进一步的验证,攻击者可以直接访问受保护的页面。
上传恶意文件:
上传一个 .jpg
文件,但其中包含PHP代码。当用户查看图片时,这些代码可能被执行。
利用错误信息:
如果服务器返回详细错误信息,攻击者可以使用这些信息来推断更多细节。
CSRF攻击:
创建一个请求,伪造cookie值,使其看起来是从受信任的来源发送的,从而执行恶意操作。
第五步:防御措施
加强会话管理:
增加身份验证层次,如密码或双因素认证。
严格的文件上传检查:
使用更严格的内容类型检测,拒绝不允许的格式,并且进行恶意代码扫描。
防止包含外部文件:
过滤 $_GET['page']
或其他参数,仅允许特定的值。
引入anti-CSRF tokens:
在每个表单或请求中添加token,并在提交时验证其一致性。
限制文件上传大小和类型:
设置最大文件大小限制,拒绝过大文件,并严格检查允许的格式。
日志记录与监控:
实时监控异常访问,及时发现并处理潜在攻击。
安全更新:
定期更新服务器软件和数据库,修复已知漏洞。
通过以上步骤,可以识别和利用系统中的潜在漏洞,同时实施相应的防御措施来保护系统免受攻击。
qwen:7b
qwen:7b
,阿里云还是牛逼,直接找出了利用点没有那么详细,而且有一些分析也不算很到位,但是找到了利用点 该代码存在多个安全漏洞,主要涉及输入验证不足、文件上传限制和权限控制问题。以下是利用步骤及分析:
漏洞1:未处理的外部脚本包含
//Multilingual. Not implemented yet.//setcookie("lang","en.lang.php");if (isset($_COOKIE['lang'])){include("lang/".$_COOKIE['lang']); }
漏洞描述: 这段代码允许通过设置lang
cookie来动态加载多语言文件。然而,没有对加载的脚本进行安全检查或限制,这可能导致执行任意PHP代码。
利用步骤:
注入恶意代码:用户可以构造一个包含恶意代码的URL,例如 http://example.com/index.php?page=login&lang=evil_code.php
。服务器响应:当用户访问上述链接时,脚本会尝试加载并执行 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
进行验证。这可能导致执行任意代码。
利用步骤:
构造恶意文件:创建一个包含PHP代码的文件(例如 myfile.php
),并尝试以其他类型上传。上传和触发:通过提交表单上传该文件,试图绕过扩展名检查。
漏洞3:未验证MIME类型
if($imageinfo['mime'] != 'image/gif' && $imageinfo['mime'] != 'image/jpeg' && $imageinfo['mime'] != 'image/jpg'&& $imageinfo['mime'] != 'image/png') { die('Error 002');}
漏洞描述: 代码仅检查文件是否为特定的图像类型,但未考虑$filetype
的实际值。
利用步骤:
构造恶意MIME类型:上传一个文件时使用自定义或不合法的MIME类型。 绕过验证:尝试通过上述类型的错误提示来上传非图像内容。
漏洞4:未限制文件路径
在处理上传文件时,代码可能暴露于目录遍历攻击:
$uploadfile = $uploaddir . md5(basename($_FILES['file']['name'])).$file_ext;
漏洞描述: 通过构造特定的文件名或使用特殊字符,可能导致文件被写入到不期望的位置。
漏洞5:未处理上传错误
代码中对上传过程中的错误处理不足:
setx OLLAMA_MODELS F:chatgpt_allollama
0
漏洞描述: 仅检查$error
是否小于等于0,而忽略可能的异常情况或非预期的行为。
演示利用步骤
注入恶意脚本:构造 lang/evil_code.php
并尝试通过设置lang
cookie加载。绕过文件类型验证:上传一个包含PHP代码的文件(如 myfile.php
),利用不正确的扩展名或MIME类型。触发目录遍历和错误处理:上传具有特定命名策略的文件,试图利用路径构造漏洞或未处理的异常。
为了解决这些问题,应实施更严格的安全措施,包括:
对外部脚本加载进行白名单过滤。 严格验证并限制上传文件的类型、MIME类型和扩展名。 确保文件上传路径安全,并使用安全的文件命名策略以避免目录遍历攻击。 完善错误处理逻辑,确保对所有可能的异常情况进行妥善处理。
总结
毕竟只是7b和8b量级的
其实两款都非常优秀了,已经是市面上顶尖的ai模型,而且deepseek最高有671b,而qwen最高只有110b,所以在最高配置的情况下,开源的deepseek确实是第一了
学习交流群
可以加入学习交流群,里面有学习一些资源。泷老师也在里面,有什么学习方面不会的大家可以一起交流,共同进步。如果问题比较困难可以问泷老师,他会帮忙解答的。如果二维码过期,后台发送 安全屋 获取新的二维码。
由于直接放群二维码有很多广告加进来,如果想加入学习交流群的师傅请扫码添加我为好友,再拉你进群,避免广告进入。
我们红队全栈公益课链接:https://space.bilibili.com/350329294
推荐站内搜索:最好用的开发软件、免费开源系统、渗透测试工具云盘下载、最新渗透测试资料、最新黑客工具下载……
还没有评论,来说两句吧...