sqlmap:从基础用法到漏洞利用实战
1. sqlmap基础认知
sqlmap是一款开源的渗透测试工具,能自动检测和利用SQL注入漏洞,支持MySQL、Oracle、PostgreSQL等多种数据库管理系统。其设计旨在简化SQL注入检测流程,助力安全人员在复杂网络环境中快速定位与评估漏洞风险。它通过发送精心构造的SQL查询,分析Web应用程序的响应,判断是否存在SQL注入点以及可利用的漏洞类型。这一工具的出现,极大地提高了SQL注入漏洞检测的效率,让安全测试人员能够在更短时间内发现并应对潜在的安全威胁。
2. sqlmap常见用法及参数详解
2.1 指定目标
2.1.1 URL直接指定
最直接方式是用-u
参数明确目标URL。例如:
sqlmap -u "http://www.example.com/vulnerable_page.php?id=1"
此例中,告知sqlmap对该URL检测,尤其关注id
参数,因其很可能存在SQL注入点。URL可为任何怀疑有漏洞的Web页面地址,参数部分可依实际调整。通过这种方式,sqlmap能够直接对目标URL发起检测,尝试不同的注入 payload 来判断参数是否存在安全隐患。
2.1.2 从文件加载请求
若通过抓包工具(如Burp Suite)获取HTTP请求并保存为文件(如request.txt
),可用-r
参数加载该文件让sqlmap检测:
sqlmap -r request.txt
该方式在处理复杂请求或模拟特定环境时极为有用。如请求含多个自定义头信息、特殊请求体格式或特殊编码数据,通过保存文件能精准控制sqlmap发送的请求内容,提升检测针对性。例如,当请求涉及到特殊的身份验证机制、复杂的业务逻辑参数组合时,直接通过URL难以完整表述所有信息,而从文件加载请求可以确保所有细节都被准确传递给sqlmap进行检测。
2.2 请求设置
2.2.1 自定义请求头
使用-H
参数可添加额外HTTP头信息。例如,模拟特定浏览器类型发送请求:
sqlmap -u "目标URL" -H "User - Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36"
这对绕过基于用户代理的防护机制或模拟特定客户端行为很有效。还可按需添加Referer
、Cookie
等其他头信息。如添加自定义Cookie
信息:
sqlmap -u "目标URL" -H "Cookie: session_id = 1234567890; user_role = admin"
通过自定义请求头,sqlmap可以伪装成不同的客户端,绕过一些依赖特定请求头进行访问控制或防护的机制,从而更全面地检测目标应用程序在不同客户端环境下的安全性。
2.2.2 处理POST数据
当目标URL通过POST方法提交数据时,借助--data
参数指定POST数据。例如:
sqlmap -u "http://www.example.com/login.php" --data "username = admin&password = 123456"
实际应用中,POST数据可能更复杂,含多个参数和特殊字符。此时要确保数据格式正确,必要时对特殊字符进行URL编码。若参数值分隔符非默认&
,可用--param - del
参数指定。例如,参数值用;
分隔:
sqlmap -u "目标URL" --data "param1 = value1;param2 = value2" --param - del = ";"
对于POST请求的处理,使sqlmap能够针对表单提交、AJAX请求等常见的POST数据场景进行SQL注入检测,覆盖了Web应用程序中大量可能存在漏洞的交互点。
2.3 优化性能
2.3.1 多线程加速
通过--threads
参数设置并发线程数可显著加快扫描速度。例如:
sqlmap -u "目标URL" --threads 10
设置10个线程同时进行HTTP请求和检测操作。但需注意,过高线程数可能对目标服务器造成较大压力,甚至致请求超时或被目标防护机制拦截。实际使用时,要依目标服务器性能和网络状况合理调整线程数。多线程技术能够充分利用网络带宽和本地计算资源,在单位时间内发送更多的检测请求,从而快速发现潜在漏洞,但需要在效率和对目标的影响之间找到平衡。
2.3.2 预测输出提升效率
--predict - output
参数能让sqlmap预测常见查询的输出,减少不必要的检测步骤,提高检测效率。例如,检测常见数据库操作(如查询用户表、获取数据库版本信息)时,该参数可助sqlmap更快识别和处理已知模式的响应,节省大量时间。通过预测输出,sqlmap可以避免重复执行一些常规且结果可预期的检测操作,直接对可能存在异常或漏洞的情况进行深入分析,从而提升整体检测效率。
2.4 注入类型与技术选择
2.4.1 指定注入技术
--technique
参数用于精准指定具体SQL注入技术。SQL注入技术多样,包括布尔盲注(B)、报错注入(E)、联合查询注入(U)、堆叠查询注入(S)、时间盲注(T)等。例如,若只想用布尔盲注和报错注入检测,可执行:
sqlmap -u "目标URL" --technique = BE
布尔盲注通过构造条件语句,依页面返回真假推断数据;报错注入利用数据库执行错误获取信息。实际场景中,某些目标环境可能对特定注入技术响应更好,指定技术可提高检测针对性和成功率。比如,在一些对错误信息输出进行严格控制的环境中,布尔盲注可能更适用;而在能够显示详细数据库错误的环境下,报错注入能更快获取关键信息。
2.4.2 全面检测多种类型
默认情况下,sqlmap会自动尝试多种类型SQL注入检测。这是较通用方式,适用于多数未知环境扫描。但在复杂或特殊场景中,可能需依目标应用特点和已知信息,灵活调整检测技术组合,提高检测效率和准确性。全面检测多种类型确保了在不了解目标详细信息的情况下,sqlmap有较大概率发现潜在的SQL注入漏洞。而根据实际情况灵活调整技术组合,则能更好地应对各种复杂和特殊的Web应用环境。
2.5 枚举与数据获取
2.5.1 获取数据库信息
- 使用
--dbs
参数可枚举目标数据库管理系统中的所有数据库名称。例如:
sqlmap -u "目标URL" --dbs
执行该命令后,sqlmap会尝试与目标数据库建立连接,获取所有可用数据库列表。这是深入探索目标系统的基础步骤,了解数据库结构有助于后续针对性操作。通过获取数据库名称,安全测试人员可以明确目标系统所使用的数据库类型以及可能存在的敏感数据库,为进一步的表和数据探索做准备。
--current - db
参数用于获取当前正在使用的数据库名称。例如:
sqlmap -u "目标URL" --current - db
这在确定当前数据库环境及后续对特定数据库进行操作时很有用。知道当前使用的数据库名称,能够更准确地进行后续的查询和数据获取操作,避免因数据库环境混淆而导致错误。
2.5.2 获取表和列信息
-D
参数指定要操作的数据库,结合--tables
参数可获取指定数据库中的所有表名。例如:
sqlmap -u "目标URL" -D target_db --tables
这里target_db
替换为实际查询的数据库名称。获取表名可了解数据库中存储数据的结构和组织方式,为后续获取列信息和数据做准备。表名的获取能够帮助安全测试人员理解数据库中数据的分类和存储方式,从而有针对性地进一步探索列信息和数据内容。
-T
参数指定要操作的表,搭配--columns
参数能获取指定表中的所有列名。例如:
sqlmap -u "目标URL" -D target_db -T target_table --columns
其中,target_table
是要查询的表名。获取列名对理解表中存储的数据类型和含义至关重要,是后续数据提取的关键步骤。列名的获取可以让安全测试人员知道每个表中存储的数据字段,为精确提取敏感数据提供依据。
2.5.3 转储数据
使用--dump
参数可转储表中的数据。例如:
sqlmap -u "目标URL" -D target_db -T target_table --dump
该命令会将target_table
表中的数据逐行提取并展示。若只想获取表中部分数据,可用--start
和--stop
参数指定数据范围。例如,只获取第10到20条数据:
sqlmap -u "目标URL" -D target_db -T target_table --dump --start = 10 --stop = 20
转储数据是利用SQL注入漏洞获取实际敏感信息的关键步骤。通过精确控制数据提取的范围和内容,安全测试人员可以获取到目标数据库中的关键数据,如用户账号、密码、交易记录等。
3. 实战案例:发现漏洞并获取数据库数据
3.1 案例一:基于URL参数检测
假设目标URL为https://example - target.com/api/SomeModule/GetData?param = some_value
,经初步分析,怀疑param
参数存在SQL注入漏洞。以下用sqlmap逐步检测和获取数据。
3.1.1 检测数据库类型
首先用以下命令初步检测:
sqlmap -u "https://example - target.com/api/SomeModule/GetData?param = some_value" -p param --force - ssl --threads 10 --no - cast
此命令中,-p param
明确指定检测param
参数,因其可能存在注入风险。--force - ssl
参数强制sqlmap使用SSL连接,因目标URL用HTTPS协议,确保通信安全。--threads 10
设置10个并发线程加快检测速度,但要避免对目标服务器压力过大。--no - cast
参数禁止数据类型转换,在某些特殊数据库环境中可提高检测准确性,防止因类型转换问题致检测失败。通过这一步,sqlmap开始对目标URL的param
参数进行检测,判断是否存在SQL注入漏洞以及目标数据库的类型。
3.1.2 枚举数据库
确认存在注入后,用以下命令枚举数据库:
sqlmap -u "https://example - target.com/api/SomeModule/GetData?param = some_value" -p param --dbs --force - ssl --threads 10 --no - cast
执行该命令后,sqlmap会与目标数据库管理系统交互,发送一系列精心构造的查询语句,通过分析响应获取所有数据库名称。过程中,sqlmap会依之前检测到的注入类型和目标数据库特点,选择合适检测方法。如布尔盲注,会构造不同条件查询,依页面返回真假推断数据库名称字符。这一步帮助安全测试人员获取目标系统中所有数据库的信息,为进一步深入探索提供基础。
3.1.3 获取表名
假设从枚举数据库结果得知目标数据库名为main_database
,用以下命令获取该数据库中的表名:
sqlmap -u "https://example - target.com/api/SomeModule/GetData?param = some_value" -p param -D main_database --tables --force - ssl --threads 10 --no - cast
这里-D main_database
指定操作数据库为main_database
。sqlmap会针对该数据库发送查询语句,获取所有表名。与枚举数据库类似,会依不同注入技术和数据库特性,采用相应策略获取表名。如联合查询注入,可能构造联合查询语句,将查询结果与页面正常内容结合获取表名信息。通过获取表名,安全测试人员可以了解到main_database
中存储数据的结构和分类。
3.1.4 获取列名
确定表名为important_table
后,用以下命令获取该表列名:
sqlmap -u "https://example - target.com/api/SomeModule/GetData?param = some_value" -p param -D main_database -T important_table --columns --force - ssl --threads 10 --no - cast
此命令中,-T important_table
指定查询列名的表为important_table
。sqlmap会向数据库发送查询,获取表中所有列的名称、数据类型等信息。获取列名过程同样依赖之前确定的注入技术,通过巧妙构造查询语句,从数据库响应中解析列名信息。列名的获取为后续精确提取数据提供了关键信息,让安全测试人员知道表中存储的数据字段。
3.1.5 转储数据
最后用以下命令获取important_table
表中的数据:
sqlmap -u "https://example - target.com/api/SomeModule/GetData?param = some_value" -p param -D main_database -T important_table --columns --dump --force - ssl --threads 10 --no - cast
执行该命令后,sqlmap会将important_table
表中的数据逐行提取,展示在终端或输出到指定文件。若表中数据量较大,此过程可能需一些时间。数据提取过程中,sqlmap会根据列的数据类型和注入技术,采用合适方式获取每一行数据,确保数据完整性和准确性。通过这一步,安全测试人员成功获取到了目标表中的数据,这些数据可能包含敏感信息,如用户隐私、业务关键数据等。
3.2 案例二:基于请求文件检测
3.2.1 准备请求文件
通过抓包工具(如Burp Suite)捕获到含潜在SQL注入点的HTTP请求。假设捕获的请求如下:
POST /vulnerable - page HTTP/1.1
Host: www.example.com
User - Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36
Content - Type: application/x - www - form - urlencoded
Content - Length: 54username = test&password = test&search = ' OR 1 = 1 --
将此请求保存为vulnerable_request.txt
文件。需注意,请求文件格式必须严格正确,每一行代表一个HTTP头信息或请求体内容,且请求体内容要与实际发送一致。准备请求文件是利用sqlmap进行基于请求文件检测的第一步,确保请求文件准确无误是后续检测成功的基础。
3.2.2 使用sqlmap进行检测
用以下命令让sqlmap基于请求文件检测:
sqlmap -r vulnerable_request.txt
sqlmap会读取vulnerable_request.txt
文件内容,解析出目标URL、请求方法、请求头和请求体等信息,并据此进行SQL注入检测。检测过程中,sqlmap会像处理直接通过URL指定的目标一样,尝试各种注入技术,分析服务器响应,判断是否存在SQL注入漏洞。若检测到漏洞,后续同样可用--dbs
、--tables
、--columns
和--dump
等类似参数,进行数据库枚举和数据获取操作。例如,枚举数据库:
sqlmap -r vulnerable_request.txt --dbs
若获取某个数据库(假设为target_db
)中的表名:
sqlmap -r vulnerable_request.txt -D target_db --tables
通过基于请求文件的检测,sqlmap能够处理复杂的HTTP请求场景,发现潜在的SQL注入漏洞,并进行后续的数据获取操作,展示了其在不同测试场景下的强大功能。
4. 最后
sqlmap为安全测试人员提供了一套全面、高效的SQL注入检测与利用解决方案。通过深入理解其常见用法和参数选择,结合实际案例实践,安全专业人员能更好保护Web应用程序免受SQL注入攻击威胁。同时,对开发者而言,了解这些工具使用方法有助于在开发过程中采取有效安全措施,从源头上杜绝此类安全隐患。
相关文章:
sqlmap:从基础用法到漏洞利用实战
1. sqlmap基础认知 sqlmap是一款开源的渗透测试工具,能自动检测和利用SQL注入漏洞,支持MySQL、Oracle、PostgreSQL等多种数据库管理系统。其设计旨在简化SQL注入检测流程,助力安全人员在复杂网络环境中快速定位与评估漏洞风险。它通过发送精…...
DFS学习笔记
题目描述 X 国王有一个地宫宝库。是 nm 个格子的矩阵。每个格子放一件宝贝。每个宝贝贴着价值标签。 地宫的入口在左上角,出口在右下角。 小明被带到地宫的入口,国王要求他只能向右或向下行走。 走过某个格子时,如果那个格子中的宝贝价值…...
C++ STL string容器全解析
一、引言 在 C 编程的广阔领域中,字符串处理是一项极为基础且频繁的操作。从简单的文本解析,到复杂的文件读取与处理,字符串几乎无处不在。而 C 中的 string 容器,就像是一把瑞士军刀,为我们处理字符串提供了强大而便…...
React基础之项目创建
项目创建 create-react-app 项目名(小写) 运行 pnpm run start 在React中,使用的语法格式是jsx,也就是js与html相结合的形式 import logo from ./logo.svg; import ./App.css; function App() { return ( <div className"App"> <head…...
迷你世界脚本道具接口:Item
道具接口:Item 彼得兔 更新时间: 2023-04-26 10:26:18 继承自 Actor 具体函数名及描述如下: 序号 函数名 函数描述 1 getItemName(...) 获取道具名称 2 getItemId(...) 获取actor对应的道具ID,如球类等 3 getDropItemNum(...) …...
Unity摄像机跟随物体
功能描述 实现摄像机跟随物体,并使物体始终保持在画面中心位置。 实现步骤 创建脚本:在Unity中创建一个新的C#脚本,命名为CameraFollow。 代码如下: using UnityEngine;public class CameraFollow : MonoBehaviour {public Tran…...
计算机毕业设计SpringBoot+Vue.js青年公寓服务平台(源码+文档+PPT+讲解)
温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 作者简介:Java领…...
vue实现日历签到效果
在工作任务进行时,有一个签到日历的功能需求要实现,经过文档查询和样式优化实现了需求,在此记录一下。 技术背景:vue2vant(样式控件) less 一个公共样式文件 html实现部分: <div class"calenderB…...
(十 八)趣学设计模式 之 观察者模式!
目录 一、 啥是观察者模式?二、 为什么要用观察者模式?三、 观察者模式的实现方式四、 观察者模式的优缺点五、 观察者模式的应用场景六、 总结 🌟我的其他文章也讲解的比较有趣😁,如果喜欢博主的讲解方式,…...
笔记:在Git中.gitmodules文件的功能和作用和如何使用
一、目的:简单介绍下在Git中.gitmodules文件的功能和作用已经 .gitmodules 文件是 Git 子模块(submodule)功能的一部分,用于管理和配置子模块。子模块允许一个 Git 仓库包含另一个 Git 仓库作为其子目录,这对于管理依赖…...
Swift 常量
Swift 常量 引言 Swift 是一种由苹果公司开发的编程语言,主要用于 iOS、macOS、watchOS 和 tvOS 等平台的应用开发。在 Swift 中,常量是一种不可变的变量,它用于存储固定不变的值。了解和使用常量是 Swift 编程的基础,本文将详细介绍 Swift 常量的概念、类型、声明以及使…...
Ubuntu20.04双系统安装及软件安装(七):Anaconda3
Ubuntu20.04双系统安装及软件安装(七):Anaconda3 打开Anaconda官网,在右侧处填写邮箱(要真实有效!),然后Submit。会出现如图示的Success界面。 进入填写的邮箱,有一封Ana…...
Google AI概览升级,AI模式全新登场!
每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗?订阅我们的简报,深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同,从行业内部的深度分析和实用指南中受益。不要错过这个机会,成为AI领…...
【智能体架构:Agent】LangChain智能体类型ReAct、Self-ASK的区别
1. 什么是智能体 将大语言模型作为一个推理引擎。给定一个任务, 智能体自动生成完成任务所需步骤, 执行相应动作(例如选择并调用工具), 直到任务完成。 2. 先定义工具:Tools 可以是一个函数或三方 API也…...
nginx 配置403页面(已亲测)
问题:GET请求访问漏洞url即可看到泄露的内网ip 解决方式: 1.配置nginx 不显示真实Ip 2.限制接口只能是POST请求 具体配置: 编写一个403.html 在nginx的配置文件中,配置location参数: location /api/validationCode…...
安卓基础组件Looper - 02 native层面的剖析
文章目录 native使用使用总结创建Looper构造函数创建(不推荐)使用举例源代码 Looper::prepare 获取Looper可忽略初始化Looper主动休眠 pollAll主动唤醒 wake 发送消息 sendMessage轮询消息 native使用 Android Native Looper 机制 - 掘金 (juejin.cn) /system/core/libutils/…...
nodejs关于后端服务开发的探究
前提 在当前的环境中关于web server的主流开发基本上都是java、php之类的,其中java spring系列基本上占了大头,而python之流也在奋起直追,但别忘了nodejs也是可以做这个服务的,只是位置有点尴尬,现在就来探究下nodejs…...
QTday4
1:是进度条通过线程自己动起来 mythread.h #ifndef MYTHREAD_H #define MYTHREAD_H #include <QThread>class mythread : public QThread {Q_OBJECT public:mythread(QObject* parent nullptr); protected:virtual void run() override; private: signals:virtual voi…...
服务器时间同步
方法一 [rootbogon hwh-ansible]# cat time-sync.sh #!/bin/bash # NTP 服务器信息 NTP_SERVER"192.168.42.12" PASSWORD"123456" # 多个 IP 地址 HOSTS("192.168.42.8" "192.168.42.9" "192.168.42.10" "192.168.42…...
蓝桥杯备赛日记【day1】(c++赛道)
一、裁纸刀问题(2022、规律、思维、省赛) 解法思路: 参考题目给出的例子发现。不管要裁剪多少次。最外围的四次是固定的。然后通过观察发现,我们的行的裁剪次数为(m-1) 次,而每行都需要裁剪列数…...
DeepSeek大模型 —— 全维度技术解析
DeepSeek大模型 —— 全维度技术解析 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家!点我试试!! 文章目录 DeepSeek大模型 —— 全维度技术解析一、模型架构全景解析1.1…...
嵌入式开发:傅里叶变换(5):基于STM32,实现CMSIS中的DSP库
目录 步骤 1:准备工作 步骤 2:创建 Keil 项目,并配置工程 步骤 3:在MDK工程上添加 CMSIS-DSP 库 步骤 5:编写代码 步骤 6:配置时钟和优化 步骤 7:调试与验证 步骤 8:优化和调…...
Ubuntu 24.04 配置ODBC连接ORACLE 11G数据库
1. 安装必要工具和驱动 1.1 安装unixODBC和依赖库 # apt update # apt install unixodbc unixodbc-dev libaio1 执行失败,报错 libaio1包找不到,先跳过,安装其他两个。 # apt install unixodbc unixodbc-dev 安装成功 1.2 下载Oracle…...
upload-labs靶场 1-21通关
目录 1.Pass-01 前端绕过 分析 解题 2.Pass-02 服务器端检测--修改IMME 分析 解题 3.Pass-03 黑名单绕过 分析 解题 4.Pass-04 .htaccess绕过 分析 解题 5.Pass-05 . .绕过和.user.ini绕过 分析 解题 6.Pass-06 大小写绕过 分析 解题 7.Pass-07 空格绕过 分…...
Docker新手入门(持续更新中)
一、定义 快速构建、运行、管理应用的工具。 Docker可以帮助我们下载应用镜像,创建并运行镜像的容器,从而快速部署应用。 所谓镜像,就是将应用所需的函数库、依赖、配置等应用一起打包得到的。 所谓容器,为每个镜像的应用进程创建…...
c语言笔记 指针篇(上)
1.指针 在计算的存储器中有很多的存储单元,我们的操作系统把这些存储单元以字节为单位进行编号,也就是每个存储单元(字节),都有编码。这些编码在我们内存中就称为地址。一个字节有八位,位是存储信息的最小单…...
要查看 SQLite 数据库中的所有表,可以通过查询 SQLite 的系统表 sqlite_master
要查看 SQLite 数据库中的所有表,可以查询 SQLite 的系统表 sqlite_master。 每个 SQLite 数据库都包含一个名为 sqlite_master 的系统表。该表定义了数据库的模式,存储了数据库中所有表、索引、视图和触发器等对象的信息。 通过查询 sqlite_master&am…...
C#释放内存空间的方法
目录 前言释放 C# 对象内存的六种方法1、手动释放内存空间2、使用 Using 语句3、使用 垃圾回收器4、GC.Collect() 方法5、GC.WaitForPendingFinalizers() 方法6、WeakReference 类 注意 前言 当不再需要对象时释放内存空间对于防止内存泄漏和提高应用程序性能至关重要。C# 提供…...
mapbox基础,使用点类型geojson加载symbol符号图层,用于标注文字
👨⚕️ 主页: gis分享者 👨⚕️ 感谢各位大佬 点赞👍 收藏⭐ 留言📝 加关注✅! 👨⚕️ 收录于专栏:mapbox 从入门到精通 文章目录 一、🍀前言1.1 ☘️mapboxgl.Map 地图对象1.2 ☘️mapboxgl.Map style属性1.3 ☘️symbol符号图层样式二、🍀使用点类型…...
Java数组详解/从JVM理解数组/数组反转/随机排名/数组在计算机如何存储
本文详细讲解了数组的定义、数组的访问方法、数组的遍历、静态数组和动态数组、以及数组中的自动类型转换、引用类型指向数组的地址、以及从JVM理解数组、空指针异常、数组反转、随机排名的案例。 数组是存放在连续内存空间上的相同类型数据的集合。 数组可以方便的通过下标索…...
网络安全wireshark题目
一、填空题: 网络安全的目标是在计算机网络的信息传输、存储与处理的整个过程中,提高 物理逻辑上 的防护、监控、反应恢复和 对抗 的能力。SSL协议是在网络传输过程中,提供通信双方网络信息 保密性 和 可靠性 。TCP/IP网络安全管理…...
TomcatServlet
https://www.bilibili.com/video/BV1UN411x7xe tomcat tomcat 架构图,与 jre,应用程序之前的关系 安装使用 tomcat 10 开始,api 从 javax.* 转为使用 jakarta.*,需要至少使用 jdk 11 cmd 中默认 gbk 编码,解决控制…...
Seurat - Guided Clustering Tutorial官方文档学习及复现
由于本人没有使用过Seurat4.0,而是直接使用的最新版。所以本文都是基于Seurat5.2.0(截止2025/3/6)来进行撰写。 参考的官方教程来进行学习(上图中的 Guided tutorial-2.700 PBMCs),肯定没有官方文档那么全面…...
Python数据分析面试题及参考答案
目录 处理 DataFrame 中多列缺失值的 5 种方法 批量替换指定列中的异常值为中位数 使用正则表达式清洗电话号码格式 合并两个存在部分重叠列的 DataFrame 将非结构化 JSON 日志转换为结构化表格 处理日期列中的多种非标准格式(如 "2023 年 12 月 / 05 日") 识…...
极狐GitLab 正式发布安全版本17.9.1、17.8.4、17.7.6
本分分享极狐GitLab 补丁版本 17.9.1、17.8.4、17.7.6 的详细内容。这几个版本包含重要的缺陷和安全修复代码,我们强烈建议所有私有化部署用户应该立即升级到上述的某一个版本。对于极狐GitLab SaaS,技术团队已经进行了升级,无需用户采取任何…...
【JavaSE-7】方法的使用
1、方法的概念和使用 1.1、什么是方法 方法(method)是程序中最小的执行单元,类似于 C语言中的函数,方法存在的意义: 是能够模块化的组织代码(当代码规模比较复杂的时候).做到代码被重复使用, 一份代码可以在多个位置…...
阿里推出全新推理模型(因果语言模型),仅1/20参数媲美DeepSeek R1
阿里Qwen 团队正式发布了他们最新的研究成果——QwQ-32B大语言模型!这款模型不仅名字萌萌哒(QwQ),实力更是不容小觑!😎 QwQ-32B 已在 Hugging Face 和 ModelScope 开源,采用了 Apache 2.0 开源协议。大家可通过 Qwen C…...
C语言笔记(通讯录)
目录 1.通讯录的架构 2.通讯录的功能 3.实现静态通讯录的功能步骤 3.1.创建通讯录数组 3.2.显示功能菜单 3.3.初始化通讯录 3.4.添加联系人的信息 3.5.显示联系人的信息 3.6.查找某个人的信息 3.7.删除某一个联系人信息 3.8.修改某一联系人的信息 3.9.按名字对联系…...
【Manus资料合集】激活码内测渠道+《Manus Al:Agent应用的ChatGPT时刻》(附资源)
DeepSeek 之后,又一个AI沸腾,冲击的不仅仅是通用大模型。 ——全球首款通用AI Agent的破圈启示录 2025年3月6日凌晨,全球AI圈被一款名为Manus的产品彻底点燃。由Monica团队(隶属中国夜莺科技)推出的“全球首款通用AI…...
Python 面向对象高级编程-定制类
目录 __str__ __iter__ __getitem__ __getattr__ __call__ 小结 看到类似__slots__这种形如__xxx__的变量或者函数名就要注意,这些在Python中是有特殊用途的。 __slots__我们已经知道怎么用了,__len__()方法我们也知道是为了能让class作用于len()…...
安装remixd,在VScode创建hardhat
在终端,以管理员身份,cmd 需要科学上网 npm install -g remix-project/remixd 在vscode插件中,安装solidity插件,是暗灰色那款 1.将nodeJs的版本升级至18以上 2.在vscode打开一个新的文件,在终端输入 npx hardhat 3.…...
开发环境搭建-02.后端环境搭建-熟悉项目结构
一.后端环境搭建...
Linux(Centos 7.6)命令详解:vi
1.命令作用 vi/vim 是Linux 系统内置不可或缺的文本编辑命令,vim 是vi 的加强版本,兼容vi 的所有指令,不仅能编辑文本,而且还具有shell 程序编辑的功能,可以不同颜色的字体来辨别语法的正确性。 2.命令语法 usage: …...
Ubuntu 20.04下配置VSCode以支持Eigen库开发
这里写目录标题 1. 安装Eigen库2. 配置VSCode的C开发环境3. 配置c_cpp_properties.json4. 编写代码并测试5. 配置tasks.json(可选)6. 运行程序总结 在VSCode中配置Eigen库(用于线性代数、矩阵和向量运算的C库)的步骤如下ÿ…...
正点原子[第三期]Arm(iMX6U)Linux移植学习笔记-2.1 uboot简介
前言: 本文是根据哔哩哔哩网站上“Arm(iMX6U)Linux系统移植和根文件系统构键篇”视频的学习笔记,在这里会记录下正点原子 I.MX6ULL 开发板的配套视频教程所作的实验和学习笔记内容。本文大量引用了正点原子教学视频和链接中的内容。 引用: …...
Android14 OTA差分包升级报kPayloadTimestampError (51)
由于VF 架构, 所以镜像的打包时间可能存在偏差, 如 boot.img 和 客制化的一些镜像打包 可能会在 vendor 侧进行打包。 而 与system 侧进行merge 时,时间戳比较乱,为了解决这个问题,让时间戳进行统一。 使用adb方式验证…...
PPT 技能:巧用 “节” 功能,让演示文稿更有序
在制作PPT时,你是否遇到过这样的情况:幻灯片越来越多,内容越来越杂,找某一页内容时翻得眼花缭乱?尤其是在处理大型PPT文件时,如果没有合理的结构,编辑和调整都会变得非常麻烦。这时候࿰…...
Mysql创建库、表练习
创建库 #创建 create database gc_novels default charsetutf8mb4;#default charsetutf8mb4 指定编码为utf-8#使用 use gc_novels#查看当前所在位置 select database(); 结果: 创建表 #创建 create table heros(-> id int,-> name varchar(50),-&…...
【原创】Ollama Test API For Linux/MacOS/Unix
安装Json解析工具 Linux/Unix sudo apt-get install jq -yMacOS brew install jq -y设置环境变量 export IP"192.168.250.229" export PORT"8080" export MODEL"deepseek-r1:7b"检查Ollama版本 curl http://"$IP":"$PORT&qu…...
盛铂科技 SLMF315频率综合器200MHz至15GHz 国产频综模块
在当今科技飞速发展的时代,射频技术在众多领域发挥着关键作用,从通信、雷达系统到科研实验,对频率综合器的性能要求日益严苛。以下是关于盛铂科技的 SLMF315 超低相位噪声频率综合器的介绍: SLMF315超低相位噪声0.2至15GHz频率综合…...