Web漏洞分析-SQL注入XXE注入(上)

       随着互联网的不断普及和Web应用的广泛应用,网络安全问题愈发引起广泛关注。在网络安全领域中,SQL注入和XXE注入是两个备受关注的话题,也是导致许多安全漏洞的主要原因之一。本博客将深入研究这两种常见的Web漏洞,带您探寻背后的原理、攻击方式和防御策略。
       SQL注入是一种臭名昭著的攻击方式,通过在输入框中插入恶意SQL语句,黑客可以绕过身份验证,进而访问、篡改或删除数据库中的数据。我们将探讨SQL注入的不同形式,以及如何通过正确的输入验证和参数化查询等手段来有效预防这类攻击。
       另一方面,XXE注入则利用XML处理器解析XML输入时的弱点,使攻击者能够读取本地文件、发起远程请求等。我们将详细分析XXE注入的工作原理,并介绍如何使用安全的XML解析器配置来降低风险。通过了解这两种漏洞的内在机制,我们希望能够为开发者、安全从业者以及对网络安全感兴趣的人们提供关于Web应用安全的深度认识。在这个信息互联的时代,保护我们的Web应用免受SQL注入和XXE注入等威胁是至关重要的。  

一、数据库基础

1、主流数据库简介

(1)、Microsoft SOL Server

①、SQL Server 是Microsoft 公司推出的关系型数据库管理系统

②、具有使用方便可伸缩性好与相关软件集成程度高等优点

③、从旧版本的个人电脑到运行Microsoft Windows server 的大型多处理器的服务器都可以使用

(2)、MySQL

MySQL是现在非常流行的的关系型数据库管理系统,在WEB应用方面MySOL是最好的RDBMS(Relational Database Management System: 关系数据库管理系统)应用软件之一。

(3)、MySQL数据库连接方法

①、命令行下连接: [root@host]# mysql-u root -p

②、PHP连接: mysqli_connect(host,username,password,dbname,port,socket);

③、第三方软件连接

4)、Oracle

①、Oracle Database,又名Oracle RDBMS,或简称Oracle。

②、甲骨文公司的一款关系数据库管理系统。

③、在数据库领域一直处于领先地位的产品,在大公司的大型网络中运用非常多

5)、PostgreSQL

①、PostgreSQL是一个功能强大的开源对象关系数据库管理系统 (ORDBMS)

②、稳定性极强,用于安全地存储数据

2、识别数据库方法

(1)、识别数据库方法

①、盲跟踪

--Web应用技术

--不同数据库SQL语句差异

②、非盲跟踪

--报错、直接查询

(2)、报错信息:

①、MySQL报错信息:

②、MSSQL报错信息:

③、Oracle报错信息:

(3)、利用字符串连接方式去匹配数据库产品:

(4)、利用特定数据库函数匹配数据库产品

(5)、利用特定数据库函数匹配数据库产品:

6)、数据库版本查询

①、Mssql   select @@version

②、MySQL  select version( ) / select @@version

③、Oracle   select banner from $version

④、Postgresql  select version()

(7)、数据库版本查询

①、Oracle版本查询

②、Mysql版本查询

③、Mssql版本查询

(8)、数据库版本在字符串处理时的区别

9)、根据网页编程语言去判

常见的搭配 :

①、ASP和.NET: Microsoft SQL Server

②、PHP: MySOL、PostgreSQL

③、Java: Oracle、MySOL

3、SQL语法基础

(1)、表、列/字段、值的定义

①、数据库名: data.mdb

②、表: gmadmin、news (14) 、评论 (40).....

③、表gmadmin字段或列: id gmadmin gmpass

④、每个对应的字段都有对应的数据。

(2)、用于与关系型数据库交互的标准 SQL 命令有

CREATE、SELECT、INSERT、UPDATE、 DELETE 和 DROP

(3)、分为三组

①、数据定义(Create、Drop)

②、数据操纵(Select、Insert、Update、 Delete)

③、数据控制(Grant、Revoke)

(4)、SQL基本操作: CUD

①、C=Create 创建

CREATE DATABASE testdb;

CREATE TABLE table name (column name column_type);

②、U=Update 更改

UPDATE table name SET field1=new-value1, field2=new-value2 [WHERE Clause]

③、D=Delete 删除

DELETE FROM table name[WHERE Clause]

(5)、SQL高级操作: 排序,分组,限定条数

①、排序 order by

SELECT *FROM test table ORDER BY userid;

②、分组 group by

SELECT name,COUNT(*) FROM test table GROUP BY name!

③、限定条数 limit

SELECT * FROM test table limit 0,10;

SELECT * FROM test table limit 1,5:

④、组合使用

SELECT * FROM test table LIMIT 0,5 ORDER BY userid;

(6)、语句用法

①、order by用法: 用来确定字段数

order by:要是后面跟着的数字超出了字段数的时候,则会报错!通过这个可以确定字段数

②、limit用法
select * from table limit m,n 其中m是指记录开始的index,从0开始表示第一条记录 n是指从第m+1

条开始取n条

(1)、两个参数:第一个是偏移量,第二个是数目

select * from employee limit 3, 7; // 返回4-11行

select * from employee limit 3,1;// 返回第4行

(2)、一个参数:

select * from employee limit 3;//返回前3行
③、group by 用法

group by语句:根据(by)一定的规则进行分组(Group)。

作用: 通过一定的规则将一个数据集划分成若干个小的区域,然后针对若干个小区域进行数据处理。

注意:group by 是先排序后分组;

group by必须有“聚合函数” sum()、count()、avg()来配合才能使用

select product from orders

select product from orders GROUP BY product

错误查询语句: select product,price from orders group by product

正确查询语句: select product,sum(price) from orders GROUP BY product

当查询语句同时出现了where、 group by、having、order by的时候,执行顺序和编写顺序是:

Ⅰ、执行where xx对全表数据做筛选,返回第1个结果集。

Ⅱ、针对第1个结果集使用group by分组,返回第2个结果集

Ⅲ、针对第2个结果集中的每1组数据执行select xx,有几组就执行几次,返回第3个结果集

Ⅳ、针对第3个结集执行having xx进行筛选,返回第4个结果集

Ⅴ、针对第4个结果集排序

select product,sum(price) from orders GROUP BY product HAVING sum(price)>100 ORDERBY sum(price);

④、联合查询union

因为查询语句构造问题,可直接否认掉之前的查询,执行一个全新的语句来执行需要注意的是查询的列应当和之前对应,

用and union select 1,2,3,4,5,6...;来猜解列数(字段数),只有列数相等了,才能返回True

知道列名后,把列名至于其中任意位置,就能在那个位置暴出列的内容来

⑤、结合其他函数
Ⅰ、结合exists()函数猜解表名and exists (select.....)

exists()函数用于检查子查询是否至少会返回一行数据。实际上不返回任何数据,而是返回True或者False

不存在admin表

存在heihei表

Ⅱ、union 结合系统函数暴数据库信息

在MySOL中,把information schema看作是一个数据库,确切说是信息数据库。其中保存着关于MySOL服务器所维护的所有其他数据库的信息。如数据库名,数据库的表,表栏的数据类型与访问权限等。

information schema数据库是MvSOL自带的

information_schema.SCHEMATA表中的SCHEMA NAME 查看所有的数据库

select* from hehe where id=3 and 1=2 union select 0,0,SCHEMA_NAME frominformation ——schema.SCHEMATA limit 12;

Ⅲ、union 结合系统函数暴数据库信息
information_schema.TABLES 表中的TABLE_NAME和TABLE_SCHEMA查看所有的表名和所在的

数据库:

select TABLE NAME ,TABLE_SCHEMA from information_schema.TABLES where TABLE SCHEMA ="haha"

Ⅳ、结合load file()读取服务器文件内容

函数 LOAD_FILE(file name): 读取文件并将文件内容按照字符串的格式返回

前提条件:

(1)、文件的位置必须在服务器上,你必须为文件制定路径全名,而且你还必须拥有 FILE 特许权。

(2)、文件必须可读取,文件容量必须小于 max allowed_packet 字节

(3)、若文件不存在,或因不满足上述条件而不能被读取, 则函数返回值为 NULL。

load_file()用在MySQL中可以在UNOIN中充当一个字段,读取web服务器的文件

Ⅴ、示例:

服务器上文件:"d:/test.txt",里面内容是:"key:HelloWorld.",用load file读取出来

select * from hehe where id=3 and 1=2 union select 0,load_file("d:/testtxt"),count(*) from mysql.user;

4、挖掘SQL注入常用语句

(1)、使用逻辑进行确认

OR 1=1

OR 1=2

AND 1=1

AND 1=2

5、SQL注入漏洞利用

(1)、识别数据库

要想成功发动SQL注入攻击,首先要确定数据库的类型这样才能使得注入工作具有针对性

(2)、盲跟踪

Web应用技术

不同数据库Sql语句差异

(3)、非盲跟踪

报错、直接查询

4)、关于数据库版本的查询

Mssql   select @@version

Mysql   select version[]/ select @@version

Oracle   select banner from $version

Postgre  sqlselect version()

(5)、使用UINON语句提取数据

SELECT column-1,column-2, ....,column-N FROM table-1  

UNION

SELECT column-1,column-2, ..., column-N FROM table-2

(6)、如果允许重复的值,就要使用 UNION ALL

SELECT column-1,column-2, ..column-N FROM able-1

UNION ALL

SELECT column-1,column-2, ....column-N FROM table-2

(7)、匹配列

①、主要两种方法:

union select NULL,NULL,NULL..... 直到匹配对应列时返回为真

order by 3, order by 4. order by 5......当列数小于或者等于当前列的时候返回正常

②、例如:

http://123.59.116.191/sqli-labs-master/Less-1/?id='union select 1,2,3-

http://123.59.116.191/sqli-labs-master/Less-1/?id=1'order by 1 --

http://123.59.116.191/sqli-labs-master/Less-1/?id=1'order by 2 --

http://123.59.116.191/sgli-labs-master/Less-1/?id=1' order by 3 --

(8)、常见手工注入SQL语句:

查看数据库

union select 1,(select group_concat(schema name) from information_schema.schemata),'3>

查看 security 库数据表

union select 1,(select group_concat(table_name) from information_schema.tables wheretable schema='security'),'3

(9)、使用条件语句

IF condition THEN do something ELSE do something else

二、注入漏洞利用

1、SQL注入

(1)、什么是SQL注入漏洞

攻击者利用Web应用程序对用户输入验证上的疏忽,在输入的数据中包含对某些数据库系统有特殊意义的符号或命令,让攻击者有机会直接对后台数据库系统下达指令进而实现对后台数据库乃至整个应用系统的入侵。

(2)、SQL注入原理

SQL注入攻击的本质,服务端没有过滤用户输入的恶意数据,直接把用户输入的数据当做SQL语句执行,从而影响数据库安全和平台安全

(3)、注入的本质

对于输入检查不充分,导致SQL语句将用户提交的非法数据当作语句的一部分来执行。

(4)、两个条件

用户能够控制输入

原本程序要执行的SQL语句,拼接了用户输入的恶意数据

(5)、注入过程

6)、SQL注入带来的危害

①、绕过登录验证:使用万能密码登录网站后台等

②、获取敏感数据:获取网站管理员帐号、密码等

③、文件系统操作: 列目录,读取、写入文件等。

④、注册表操作: 读取、写入、删除注册表等

⑤、执行系统命令: 远程执行命令

2、SQL注入示例

1)、直接将前台动态参数拼接入SQL语句中。

攻击者可以构造出恶意的SQL语句进行其他操作

SELECT username, password FROM users WHERE username=’ ”+username +" ‘AND password='" + password +’”;

(2)、通过在用户名处传入参数' or 1=1 # 进行万能密码登陆

SELECT username, password FROM users WHERE username='textvalue'  or=1 #' AND

password='textvalue2'

①、输入字符

formusr = ' or 1=1 --

formpwd = anything

②、实际的查询代码

SELECT * FROM users WHERE username =''or 1=1 -- AND password = 'anything

(3)、判断一个HTTP请求是否存在SQL注入的方式:

①、经典: and 1=1 | and 2 > 1 | or1 =1 | or 1<1

②、数据库函数: and sleep(4)=1 | and length(user())>3

③、特殊符号: 单引号 (’) 双引号 (”)

3SQL注入分类

(1)、注入类型

①、SQL注入: 攻击者把SQL命令插入到Web表单的输入域或页面请求的查询字符串,欺骗数据库服务器执行恶意的SQL命令

②、命令注入: 后端未过滤掉恶意数据,代码当做系统命令执行。

③、代码注入:一般出现在不安全的使用某些函数(例如文件包含、反序列化漏洞)

④、LDAP注入

LDAP (轻量级目录访问协议) ,用于访问网络中的目录服务,常用在ActiveDirectory,企业管理目录。

用户提交的输入不经验证插入LDAP搜索过滤器中,攻击者通过提交专门设计的输入修改过滤器的结构,以检索数据或执行未授权操作。

⑤、XML注入

(1)、XXE漏洞:引用外部实体时,通过构造恶意内容,导致读取任意文件、执行系统命令、探测内网端口、攻击内网网站等危害。

(2)、XPath注入: 与SQL注入类似,XPath解析器本身对URL、表单中提交的代码内容未作严格限制,导致恶意代码可以直接解析执行

(3)、XQuery注入

⑥、JSON注入: 轻量级的数据交换格式,主要利用特殊字符注入JSON中,造成解析失败

⑦、JSONP注入: 回调函数未作严格的检测和过滤

(2)、数字型注入

①、输入的参数为整数,如ID、年龄、页码等,如果存在注入型漏洞,则为数字型注入

http://www.testweb.com/user.php?id=8

②、存在数字型注入测试方法

(3)、字符型注入

①、输入的参数为字符串

②、与数组型注入的区别在于: 字符型注入一般要使用单引号来闭合

http://www.testweb.com/test.php?user=admin

③、存在字符型注入测试方法

4)、搜索型注入

这类注入主要是指在进行数据搜索时没过滤搜索参数

一般在链接地址中有“keyword=关键字”,有的不显示的链接地址,而是直接通过搜索框表单提交。

此类注入点提交的 SQL 语句,其原形大致为:

select * from 表名 where 字段 like %关键字%

当我们提交注入参数为“keyword='and[查询条件] and'%'=',则向数据库提交的SQL语句为:select * from 表名 where 字段 like '% ' and[查询条件]and '%'='%'

4、造成SQL注入原因

(1)、动态字符串构建引起

①、不正确的处理转义字符 (宽字节注入)

②、不正确的处理类型 (报错泄露信息 )

③、不正确的处理联合查询

④、不正确的处理错误 (报错泄露信息)

⑤、不正确的处理多次提交 (二次注入)

(2)、后台存在的问题:

①、后台无过滤或者编码用户数据

②、数据库可以拼接用户传递的恶意代码

(3)、错误处理不当:

①、详细的内部错误消息显示给用户或攻击者

②、错误信息可以直接给攻击者提供下一步攻击帮助

(4)、不安全的数据库配置

①、默认账户:

SQL Server“sa”作为数据库系统管理员账户

MySOL使用“root”和“anonymous”用户账户

Oracle则在创建数据库时通常默认会创建SYS、SYSTEMS DBSNMP和OUTLN账户

②、权限:

问题:系统和数据库管理员在安装数据库服务器时允许以roots SYSTEM或Administrator特权系统用户账户身份执行操作。

正确方法: 应该始终以普通用户身份运行服务器上的服务,降低用户权限,将用户权限只限于本服务

5、SQL注入过程

(1)、自动化注入工具

①、SQL注入工具:

Sqlmap Havij Sqlid

②、ASP,JSP注入工具:

NBSI 阿D注入软件 明小子注入软件

③、PHP注入工具:

穿山甲注入软件  海阳顶端注入软件

6、安全专家经常使用的SQL注入工具

(1)、BSQL Hacker

由Portcullis Labs开发,BSOL Hacker是一种自动化SOL注入框架,支持SQL盲注,定时盲注,深度盲注和错误识别盲注。

2)、The Mole

Mole是一个开源工具,能够绕过一些使用普通过滤规则的IPS/IDS系统。通过Union和Boolean查询技术,Mole能够通过一个脆弱的URL或网站的一串字符就能侦查和实施注入。Mole的命令行工具支持攻击MySQL、SOL Server、Postgres和Oracle数据库。

(3)、Pangolin

与web安全漏洞扫描器JSky工具出自同一家公司--NOSEC,Pangolin是一个完整的SQL注入测试工具,有一个用户友好的GUI,能够攻击几乎市场上所有的数据库。Pangolin通常被白帽社区用作渗透测试工具

4)、Sqlmap

号称自动化SQL注入和数据库接管工具,Sqlmap是开源工具,支持使用五中SQL注入技术攻击数据库,如果用户拥有DBMS账户、IP地址端口和数据库名称,则可以实施直接

攻击。可通过内置的字典攻击用户名密码哈希值。

(5)、Havij

Havij是在全球黑帽中非常流行的一个工具,由伊朗开发者开发,Havij在波斯语里是胡萝卜的意思(编者按: 暗指男根) 。Havij可攻击MySOL、Oracle、PostgreSQL、MSAccess和Sybase,攻击成功率号称有95%。

步骤1.Havii获取数据库类型与信息

Havij获取数据库cms内的表

步骤2.Havii获取网站管理员账号与密码

步骤3.MD5值破译哈希值

步骤4.登陆后台

步骤5.篡改文章或主页

步骤6.管理数据库

(6)、Safe3 SQL Injector

Safe3 SOL Injector是简单易用的自动化注入工具,可以自动侦测SOL注入漏洞并进行攻击,直至最后接管数据库。Safe3 SQL还能自动识别数据库类型,并选择最佳的SQL注入方法。

7)、SQL Poizon

Safe3 SQL Injector是简单易用的自动化注入工具,可以自动侦测SQL注入漏洞并进行攻击,直至最后接管数据库。Safe3 SQL还能自动识别数据库类型,并选择最佳的SQL注入方法。

(8)、SQL注入工具利用实验(需要的话关注联系)

工具1:利用Sglmap注入cms

工具2:利用Havii注入cms

7SQL手工注入过程

(1)、手工注入过程

①、判断是否存在注入点;

②、判断字段长度 ;

③、判断字段回显位置:

④、判断数据库信息 ;

⑤、查找数据库名;

⑥、查找数据库表;

⑦、查找数据库表中所有字段以及字段值

⑧、猜解账号密码;

⑨、登陆管理员后台

(2)、SQL手工注入实验

实验1:基于phpcms注入 (报错+get请求)

实验2: 基于sqli平台Less-1注入(报错+get请求)

8、寻找SQL注入

(1)、GET方法

①、GET是一种请求服务器的HTTP方法。

②、使用该方法时,信息包含在URL中

③、点击一个链接时,一般会使用该方法

(2)、GET请求方法,格式:

? text =valuel&cat=value2&num=value3 ..

(3)、修改方法:

①、浏览器的导航栏中直接修改即可操纵这些参数

②、HackBar插件

(4)、POST方法

①、POST是一种用于向Web服务器发送信息的HTTP方法

②、数据信息无法URL中看到

③、可以发送字节大的数据

POST /sqli-labs-master/Less-11/ HTTP/1.1Host: 123.59.116.191

User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.12; rv:57.0) Gecko/20100101 Firefox/57.0Content-Type: application/x-www-form-urlencodedContent-Length: 43

Connection: close

Upgrade-Insecure-Requests: 1



uname=w3g43we&passwd=h64j4wj5&submit=Submit

(5)修改POST包方法

①、浏览器修改扩展(Hackbar)

②、代理服务器 (Burpsuite)

(6)、其它注入点数据

①、Cookie

②、Host

③、User-Agent

(7)、总结

只要后台接收前端输入的数据,并且未对数据进行过滤处理,最后直接进入到数据库中,从而都能构成威胁。

9、确认SQL注入

(1)、确认搜索类型

①、SELECT: 根据搜索条件从数据库中读取数据

②、INSERT: 将新数据插入到数据库中

③、UPDATE: 根据指定的条件更新数据中己有的数据

④、DELETE: 根据指定的条件删除数据库中己有的数据

(2)、确认数据类型

①、数字型:

SELECT* FROM products WHERE idproduct=3SELECT *FROM products WHERE value > 200SELECT *FROM products WHERE active = 1

②、字符型:

SELECT*FROM products WHERE name = Bike'SELECT*FROM products WHERE published date>'01/01/2013SELECT*FROM products WHERE published time>'01/01/2013 06:30:00'

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/216872.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

十二月四日多继承

#include <iostream>using namespace std; //定义沙发类 class Sofa { private:string *sitting; public:Sofa(){}//无参构造函数Sofa(string sitting):sitting(new string (sitting))//有参构造函数{}~Sofa() //析构函数{delete sitting;}Sofa &op…

DeepStream--测试PCB-Defect-Detection

GitHub - clintonoduor/PCB-Defect-Detection-using-Deepstream: PCB defect detection using deepstream & YoloV5我参考了了这个代码&#xff0c;作者基于YoloV5&#xff0c;训练一个电路板检测的模型&#xff0c;训练数据集来自https://robotics.pkusz.edu.cn/resources…

4K-Resolution Photo Exposure Correction at 125 FPS with ~8K Parameters

MSLTNet开源 | 4K分辨率125FPS8K的参数量&#xff0c;怎养才可以拒绝这样的模型呢&#xff1f; 错误的曝光照片的校正已经被广泛使用深度卷积神经网络或Transformer进行广泛修正。尽管这些方法具有令人鼓舞的表现&#xff0c;但它们通常在高分辨率照片上具有大量的参数数量和沉…

GitHub项目推荐-Deoldify

有小伙伴推荐了一个老照片上色的GitHub项目&#xff0c;看了简介&#xff0c;还不错&#xff0c;推荐给大家。 项目地址 GitHub - SpenserCai/sd-webui-deoldify: DeOldify for Stable Diffusion WebUI&#xff1a;This is an extension for StableDiffusions AUTOMATIC1111 w…

Stm32 CubeIDE对RTC的日期、时间读写,后备存储的读写

Stm32 CubeIDE对RTC的日期、时间读写&#xff0c;后备存储的读写&#xff0c;一折腾又是好多的问题&#xff0c;现在梳理一下&#xff0c;后面的不要过多踩坑了。 用STM32CubeIDE生成代码 这里有时间和日期的设置&#xff0c;在代码中也会生成相应的代码&#xff0c;首次设置后…

密集书库是什么意思?图书馆密集书库的书可以借出吗

密集书库是一种用于存储大量书籍和资料的高密度储存设施。它通常包括一系列钢制书架和可移动的储存架&#xff0c;使得书籍可以被紧密地排列和存储&#xff0c;以最大程度地利用存储空间。同时&#xff0c;密集书库还有各种自动化系统&#xff0c;如自动化取书系统、气候控制系…

微信小程序引入node_modules依赖

微信小程序不支持直接读取node_modules 首先在目录文件夹下cmd输入npm init命令 D:\小程序\project\calendar\calendar_1>npm init This utility will walk you through creating a package.json file. It only covers the most common items, and tries to guess sensible…

甘草书店记:6# 2023年10月31日 星期二 「梦想从来不是一夜之间实现的」

甘草书店 今天收到甘草书店第二版装修设计平面图&#xff0c;与理想空间越来越近。 于我而言&#xff0c;每一次世俗意义上所谓的成功都不如文艺作品中表现的那样让人欢腾雀跃。当你用尽120分努力&#xff0c;达到了冲刺满分的实力时&#xff0c;得个优秀的成绩也并不意外。 …

Pycharm配置jupyter使用notebook详细指南(可换行conda环节)

本教程为事后记录&#xff0c;部分图片非实操图片。 详细记录了pycharm配置jupyter的方法&#xff0c;jupyter添加其他conda环境的方法&#xff0c;远程密码调用jupyter的方法&#xff0c;修改jupyter工作目录的方法。 文章目录 一、入门级配置1. Pycharm配置Conda自带的jupyt…

案例研究|作为一家BI厂商,飞致云是如何人人使用DataEase的?

杭州飞致云信息科技有限公司&#xff08;以下简称为飞致云&#xff09;长期秉持“软件用起来才有价值&#xff0c;才有改进的机会”的核心价值观&#xff0c;以“为数字经济时代创造好软件”为使命&#xff0c;致力于成为中国数字化团队首选的通用工具软件提供商。在软件产品不…

容器与集群——通过deployment 创建pod以及Java Web应用的容器化发布

## 一、通过deployment 创建pod 1.1 编写yaml文件 1.2 安装pod 创建kubectl create -f dp-nginx.yaml 查看Deployment信息 1.3 查看相关信息 查看pod信息kubecel get pods 查看rs信息 二、Java Web应用的容器化发布 1. 环境准备 部署K8s集群并启动。 为了与其他pod…

基恩士软件的基本操作(六,KV脚本的使用)

目录 什么是KV脚本&#xff1f; KV脚本有什么用&#xff1f; 怎么使用KV脚本&#xff08;脚本不能与梯形图并联使用&#xff09;&#xff1f; 插入框脚本&#xff08;CtrlB&#xff09; 插入域脚本&#xff08;CtrlR&#xff09; 区别 脚本语句&#xff08;.T是字符串类…

PTA 一维数组7-3出生年(本题请你根据要求,自动填充“我出生于y年,直到x岁才遇到n个数字都不相同的年份”这句话)

以上是新浪微博中一奇葩贴&#xff1a;“我出生于1988年&#xff0c;直到25岁才遇到4个数字都不相同的年份。”也就是说&#xff0c;直到2013年才达到“4个数字都不相同”的要求。本题请你根据要求&#xff0c;自动填充“我出生于y年&#xff0c;直到x岁才遇到n个数字都不相同的…

二极管:二极管的基本原理

一、认识导体、绝缘体、半导体 什么是导体&#xff1f; 导体 conductor &#xff0c;是指电阻率很小&#xff0c;且容易传导电流的物质。导体中存在大量可自由移动的带电粒子&#xff0c;也称为载流子。在外电场的作用下&#xff0c;载流子作定向运动&#xff0c;形成电流。 …

沐足采耳店服务预约管理系统会员小程序效果如何

沐足采耳店的很多服务都有较高的市场需求度&#xff0c;如贵妃采耳、太极足疗等&#xff0c;很多城市中都有多个品牌店铺&#xff0c;在如今互联网趋势下&#xff0c;商家们开始借势线上解决传统经营痛点和促进生意发展。 那么通过【雨科】平台搭建沐足采耳店管理小程序能实现…

考研数学 每日一题

考研数学 每日一题

YOLOv5结合BiFPN,如何替换YOLOv5的Neck实现更强的检测能力?

一、BiFPN是什么&#xff1f; 1、什么是BiFPN BiFPN是一种基于特征金字塔网络&#xff08;FPN&#xff09;和双向特征金字塔网络&#xff08;BiFPN&#xff09;的对象检测神经网络结构&#xff0c;它被用于提高目标检测的准确度和速度。在目标检测领域&#xff0c;FPN用于将不同…

现在的00后,实在是太卷了......

现在的小年轻真的卷得过分了。前段时间我们公司来了个00年的&#xff0c;工作没两年&#xff0c;跳槽到我们公司起薪18K&#xff0c;都快接近我了。后来才知道人家是个卷王&#xff0c;从早干到晚就差搬张床到工位睡觉了。 最近和他聊了一次天&#xff0c;原来这位小老弟家里条…

【网络奇缘】- 计算机网络|分层结构|深入探索TCP/IP模型|5层参考模型

​ &#x1f308;个人主页: Aileen_0v0&#x1f525;系列专栏: 一见倾心,再见倾城 --- 计算机网络~&#x1f4ab;个人格言:"没有罗马,那就自己创造罗马~" 目录 OSI参考模型与TCP/IP参考模型相同点 OSI参考模型与TCP/IP参考模型不同点 面向连接三阶段&#xff08…

【Linux】初识云服务器 -- 使用 XShell 远程登录 Linux

Linux 是一款企业级后台操作系统&#xff0c;命令行方式交互&#xff0c;开源。 搭建属于自己的 Linux 服务器&#xff1a;我是直接选择购买的腾讯云轻量级服务器&#xff08;CentOS 7.6&#xff09;&#xff0c;不贵又相对方便&#xff0c;可以直接上手使用&#xff0c;不需要…