国赛部分复现

2024-05-24 04:04
文章标签 部分 复现 国赛

本文主要是介绍国赛部分复现,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

MISC

神秘文件

下载解压后是个pptm文件,内容丰富

使用010打开ppt查看

发现为PK开头,属于压缩包文件。复制粘贴ppt,修改副本后缀为.zip并解压

part1

查看属性,发现奇怪字符

QFCfpPQ6ZymuM3gq

根据提示Bifid chipher,为双歧密码解密

使用Bifid Cipher Decode解码

CyberChef

key为:lanjing

再进行base64解码

得到:Part1:flag{e

part2

第二张ppt内有隐藏内容

点击打开后为

再解压后的压缩包中,找到了.docx文件,同理,010查看将此docx文件为压缩包文件。拷贝后,修改为.zip文件

解压打开压缩包,逐个查找里面的网页文件

在document.xml中,发现以下内容

特殊字符:mQPinNS6Xtm1JGJs

根据提示:凯撒加密,偏移量为:10

base64解码

得到:part2:675efb

part3

将vbaProject.bin文件拖进010后,发现一串编码

i13POMdzEAzHfy4dGS+vUA==

base64解码,RC4解码,再次base64解码

得到:PArt3:3-34

part4

第三张ppt,将图片略微移动,能够看到一串编码

手打下来得到:UGFSdDQ6NmYtNDA=

直接解码得到

PaRt4:6f-40

part5

第五张ppt下有备注

Vm1wR1UxRXhXWGhUV0d4WFlrZG9WMWxVUm1GWFJscHlWMjVrVmxKc2NIaFZiVFZQVkd4S2MxSnFVbGRXTTFKUVdWVmtVMDVyTVVWaGVqQTk=

根据提示,多轮base解码

得到:pArt5:5f-90d

part6

第五张ppt缩小一定比例后,能看到一串编码

或者在压缩包的media文件夹里面,能够更直观的看到编码

UGFyVDY6ZC0y

解码得到:ParT6:d-2

part7

第四张ppt,选择窗口后

看到一串编码:HRSFIQp9ZwWvZj==

以及提示:ROT13(All)

ROT13解码,以及base64解码

得到:PART7=22b3

part8

点击视图,查看ppt母版

似乎有隐藏内容,修改背景颜色,看见所有内容

c1GFSbd3Dg6BODbdl

去掉Bb13后解 base64

cGFSdDg6ODdl

得到:paRt8:87e

part9

第五张ppt,拖走中间的图片后,发现隐藏了一张图片文件,应该是图片隐写,使用图片隐写功能工具查看

或者

打开压缩包里面的media文件夹,找到解压好的完整图片

看见编码:cGFyVDk6ZGVl

解码

得到:parT9:dee

part10

缩小第四周的ppt,发现备注,是一段对话

逐句查看后,发现是维吉尼亚密码

密文:ZYWJbIYnFhq9

密钥:furry

得到:UEFSdDEwOjl9

base64解码

得到:PARt10:9}

将十部分的内容结合在一起

得到flag:

flag{e675efb3-346f-405f-90dd-222b387edee9}

通风机

下载解压,打开附件

得到一个.mwp文件

上网搜索后,得知

mwp是西门子PLC软件程序文件,一般来说我们可以通过西门子MICRO WIN编程软件打开。nwp格式文件也可能是S7-200编程程序文件,它是Lotus WordPro 97 的Smart Master文件,通过S7-200的编程软件,我们可以直接打开nwp格式的编程文件!

S7-200 SMART软件安装 (siemens.com.cn)

使用010打开.mwp文件,发现缺少文件头

补全文件头:47 4A 4B

保存后使用S7-200打开

符号表的用户定义中,发现一串编码

ZmxhZ3syNDY3Y2UyNi1mZmY5LTQwMDgtOGQ1NS0xN2RmODNlY2JmYzJ9

解码得到flag

flag{2467ce26-fff9-4008-8d55-17df83ecbfc2}

盗版软件

题目描述:在网上下了一个盗版软件就中毒了,他从内存中提取了文件和浏览器,请帮助分析;(flag为flag{md5(网站域名+c2地址)},例如flag{md5(baidu.com114.114.114.114)}为flag{ac0997de69c84760c943f59d9c7fc3cf})

下载附件,解压得到

分析 3842.dmp 文件,将后缀名改为 data,使用 gimp 调整参数发现域名

免费开源的图像处理软件GIMP下载安装(Windows)-CSDN博客

发现域名为 winhack.com

直接运行 hacked.exe 生成一个.ss 文件夹,包含一个 loader.exe 和一张图片。

Png 用 stegslove打开,发现红通道有隐写

隐写了一个压缩包,但是有干扰数据,对干扰数据进行清除,编写脚本

import numpy as np
from PIL import Image
import structimage = Image.open(r"E:\新建文件夹\2024国赛\Day2\Misc--Day2\盗版软件\盗版_047c296e75ae5b4950e2c9fe3c146c24\.ss\output.png")#文件路径image = image.convert('RGBA')# 转换图像数据为 numpy 数组
data = np.array(image.getdata(), dtype=np.uint8)length_bytes = bytearray(data[0:8:2, 0])
data_length = struct.unpack('<I', length_bytes)[0]extracted_data = bytearray(data[8:8 + (data_length * 2):2, 0])# 将提取的数据写入文件
with open("1.zip", 'wb') as file:  file.write(extracted_data)

运行脚本,得到压缩包文件

解压获得 .b 文件

放到微步云沙箱分析发现 C2 主机地址 

微步在线云沙箱 (threatbook.com)

复现时,环境已过期,故分析失败

CRYPTO

hash

题目描述:题目内容:你能仅仅通过一个Python2.7自带的hash函数的输出,计算出它的原象的sha384哈希值吗?

附件:

hash.py

#!/usr/bin/python2
# Python 2.7 (64-bit version)
from secret import flag
import os, binascii, hashlib
key = os.urandom(7)
print hash(key)
print int(hashlib.sha384(binascii.hexlify(key)).hexdigest(), 16) ^ int(binascii.hexlify(flag), 16)
 

output.txt

7457312583301101235
13903983817893117249931704406959869971132956255130487015289848690577655239262013033618370827749581909492660806312017

output.txt 的两行数据分别是 hash.py 中的两行输出。

根据源代码逻辑,可以知道首要问题是如何将key 的密文,解密出原文。

第十七届全国大学生信息安全竞赛(初赛)Crypto部分hash题解-CSDN博客

OvO

附件得到task.sage,审计代码。

task.sage

from Crypto.Util.number import *
from secret import flag

nbits = 512
p = getPrime(nbits)
q = getPrime(nbits)
n = p * q
phi = (p-1) * (q-1)
while True:
    kk = getPrime(128)
    rr = kk + 2
    e = 65537 + kk * p + rr * ((p+1) * (q+1)) + 1
    if gcd(e, phi) == 1:
        break
m = bytes_to_long(flag)
c = pow(m, e, n)

e = e >> 200 << 200
print(f'n = {n}')
print(f'e = {e}')
print(f'c = {c}')

"""
n = 111922722351752356094117957341697336848130397712588425954225300832977768690114834703654895285440684751636198779555891692340301590396539921700125219784729325979197290342352480495970455903120265334661588516182848933843212275742914269686197484648288073599387074325226321407600351615258973610780463417788580083967
e = 37059679294843322451875129178470872595128216054082068877693632035071251762179299783152435312052608685562859680569924924133175684413544051218945466380415013172416093939670064185752780945383069447693745538721548393982857225386614608359109463927663728739248286686902750649766277564516226052064304547032760477638585302695605907950461140971727150383104
c = 14999622534973796113769052025256345914577762432817016713135991450161695032250733213228587506601968633155119211807176051329626895125610484405486794783282214597165875393081405999090879096563311452831794796859427268724737377560053552626220191435015101496941337770496898383092414492348672126813183368337602023823
"""

编写脚本

from Crypto.Util.number import *
n = 111922722351752356094117957341697336848130397712588425954225300832977768690114834703654895285440684751636198779555891692340301590396539921700125219784729325979197290342352480495970455903120265334661588516182848933843212275742914269686197484648288073599387074325226321407600351615258973610780463417788580083967
e = 37059679294843322451875129178470872595128216054082068877693632035071251762179299783152435312052608685562859680569924924133175684413544051218945466380415013172416093939670064185752780945383069447693745538721548393982857225386614608359109463927663728739248286686902750649766277564516226052064304547032760477638585302695605907950461140971727150383104
c = 14999622534973796113769052025256345914577762432817016713135991450161695032250733213228587506601968633155119211807176051329626895125610484405486794783282214597165875393081405999090879096563311452831794796859427268724737377560053552626220191435015101496941337770496898383092414492348672126813183368337602023823
k = e // n - 2
tmp = 65537 + (k+2)*n + (k+2)+1
R.<x> = PolynomialRing(RealField(1024))
f = e*x - (2*(k+1)*x^2 + (k+2)*n + tmp*x)
res = f.roots()for root in res:p_high = int(root[0])PR.<x> = PolynomialRing(Zmod(n))f1 = x + p_highroots = f1.monic().small_roots(X=2^200,beta=0.4)if roots:p = int(roots[0]) + p_highq = n // pe = 65537 + k * p + (k+2) * ((p+1) * (q+1)) + 1d = inverse(e,(p-1)*(q-1))m = pow(c,d,n)print(long_to_bytes(int(m)))

使用sagemath打开

运行脚本

得到flag:

flag{b5f771c6-18df-49a9-9d6d-ee7804f5416c}

古典密码

题目:

AnU7NnR4NassOGp3BDJgAGonMaJayTwrBqZ3ODMoMWxgMnFdNqtdMTM9

CyberChef

atbash解码   埃特巴什解码

Atbash Cipher

base64解码

得到fa{2b838a-97ad-e9f743lgbb07-ce47-6e02804c}

观察为栅栏密码栅栏加密/解密 - Bugku CTF

使用在线工具,枚举解密

得到flag

flag{b2bb0873-8cae-4977-a6de-0e298f0744c3}

注意:

采用一些其他的在线工具解码后,再复制粘贴到其他在线工具进行base64解码,可能会出错。因为两种相同的字符串格式不同。

zmf7mmi4mzhhltk3ywqtztlmnzqzbgdiyja3lwnlndctnmuwmjgwngn9

ZmF7MmI4MzhhLTk3YWQtZTlmNzQzbGdiYjA3LWNlNDctNmUwMjgwNGN9

 

建议使用一个解码工具进行解密。

这篇关于国赛部分复现的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/997322

相关文章

poj 2976 分数规划二分贪心(部分对总体的贡献度) poj 3111

poj 2976: 题意: 在n场考试中,每场考试共有b题,答对的题目有a题。 允许去掉k场考试,求能达到的最高正确率是多少。 解析: 假设已知准确率为x,则每场考试对于准确率的贡献值为: a - b * x,将贡献值大的排序排在前面舍弃掉后k个。 然后二分x就行了。 代码: #include <iostream>#include <cstdio>#incl

笔记整理—内核!启动!—kernel部分(2)从汇编阶段到start_kernel

kernel起始与ENTRY(stext),和uboot一样,都是从汇编阶段开始的,因为对于kernel而言,还没进行栈的维护,所以无法使用c语言。_HEAD定义了后面代码属于段名为.head .text的段。         内核起始部分代码被解压代码调用,前面关于uboot的文章中有提到过(eg:zImage)。uboot启动是无条件的,只要代码的位置对,上电就工作,kern

Detectorn2预训练模型复现:数据准备、训练命令、日志分析与输出目录

Detectorn2预训练模型复现:数据准备、训练命令、日志分析与输出目录 在深度学习项目中,目标检测是一项重要的任务。本文将详细介绍如何使用Detectron2进行目标检测模型的复现训练,涵盖训练数据准备、训练命令、训练日志分析、训练指标以及训练输出目录的各个文件及其作用。特别地,我们将演示在训练过程中出现中断后,如何使用 resume 功能继续训练,并将我们复现的模型与Model Zoo中的

项目实战系列三: 家居购项目 第四部分

购物车 🌳购物车🍆显示购物车🍆更改商品数量🍆清空购物车&&删除商品 🌳生成订单 🌳购物车 需求分析 1.会员登陆后, 可以添加家居到购物车 2.完成购物车的设计和实现 3.每添加一个家居,购物车的数量+1, 并显示 程序框架图 1.新建src/com/zzw/furns/entity/CartItem.java, CartItem-家居项模型 /***

码蹄集部分题目(2024OJ赛9.4-9.8;线段树+树状数组)

1🐋🐋配对最小值(王者;树状数组) 时间限制:1秒 占用内存:64M 🐟题目思路 MT3065 配对最小值_哔哩哔哩_bilibili 🐟代码 #include<bits/stdc++.h> using namespace std;const int N=1e5+7;int a[N],b[N],c[N],n,q;struct QUERY{int l,r,id;}que

UMI复现代码运行逻辑全流程(一)——eval_real.py(尚在更新)

一、文件夹功能解析 全文件夹如下 其中,核心文件作用为: diffusion_policy:扩散策略核心文件夹,包含了众多模型及基础库 example:标定及配置文件 scripts/scripts_real:测试脚本文件,区别在于前者倾向于单体运行,后者为整体运行 scripts_slam_pipeline:orb_slam3运行全部文件 umi:核心交互文件夹,作用在于构建真

文章解读与仿真程序复现思路——电力自动化设备EI\CSCD\北大核心《考虑燃料电池和电解槽虚拟惯量支撑的电力系统优化调度方法》

本专栏栏目提供文章与程序复现思路,具体已有的论文与论文源程序可翻阅本博主免费的专栏栏目《论文与完整程序》 论文与完整源程序_电网论文源程序的博客-CSDN博客https://blog.csdn.net/liang674027206/category_12531414.html 电网论文源程序-CSDN博客电网论文源程序擅长文章解读,论文与完整源程序,等方面的知识,电网论文源程序关注python

2024年高教社杯数学建模国赛最后一步——结果检验-事关最终奖项

2024年国赛已经来到了最后一天,有必要去给大家讲解一下,我们不需要过多的去关注模型的结果,因为模型的结果的分值设定项最多不到20分。但是如果大家真的非常关注的话,那有必要给大家讲解一下论文结果相关的问题。很多的论文,上至国赛优秀论文下至不获奖的论文并不是所有的论文都可以进行完整的复现求解,大部分数模论文都为存在一个灰色地带。         白色地带即认为所有的代码均可运行、公开

关于断言的部分用法

1、带变量的断言  systemVerilog assertion 中variable delay的使用,##[variable],带变量的延时(可变延时)_assertion中的延时-CSDN博客 2、until 的使用 systemVerilog assertion 中until的使用_verilog until-CSDN博客 3、throughout的使用   常用于断言和假设中的

牛客小白月赛100部分题解

比赛地址:牛客小白月赛100_ACM/NOI/CSP/CCPC/ICPC算法编程高难度练习赛_牛客竞赛OJ A.ACM中的A题 #include<bits/stdc++.h>using namespace std;#define ll long long#define ull = unsigned long longvoid solve() {ll a,b,c;cin>>a>>b>