DASCTF Sept X 浙江工业大学秋季挑战赛
本文最后更新于:6 小时前
CRYPTO
签到
1 |
|
题目意思很简单,就是求满足 mbytes_to_long(flag) %n=c 的flag值。
相关知识点
离散对数问题:离散对数(英语:Discrete logarithm)是一种基于同余运算和原根的一种对数运算。而在实数中对数的定义 logba是指对于给定的a和b,有一个数x,使得bx=a。相同地在任何群G中可为所有整数k定义一个幂数为bK,而离散对数logba是指使得bK=a的整数k
1 |
|
MISC
Girlfriend’s account
题目说明:jackie的女朋友又偷偷用他的信用卡买东西了,你能算算一共花了多少钱吗?
————考excel函数的与ctf毫无关系的sb题目
解题步骤
金额转小写=SUM(ISNUMBER(SEARCH(TEXT({1,2,3,4,5,6,7,8,9},"[dbnum2]"&{"0亿";"0仟!*万";"0佰!*万";"0拾!*万";"0万";"万!*0仟";"万!*0佰";"万!*0拾";"0元";"0角";"0分"}),IF(ISERR(FIND("万",E2)),"万",)&E2))*{1,2,3,4,5,6,7,8,9}*10^{8;7;6;5;4;3;2;1;0;-1;-2})
件数转小写=MATCH(G2,TEXT(ROW($1:$5000),"[dbnum2]"),0)
或=IF(B3=”壹”,1,IF(B3=”贰”,2,IF(B3=”叁”,3,IF(B3=”肆”,4,IF(B3=”伍”,5,IF(B3=”陆”,6,IF(B3=”柒”,7,IF(B3=”捌”,8,IF(B3=”玖”,9)))))))))
或=MATCH(G2,TEXT(ROW($1:$100),"[dbnum2]"),0)
?
总价=F2*H2
Ctrl+shift+enter
计算结果,下拉5000行填充即可(应该有简便方法。。。)
求和=SUM(I2:I5001)
得到flag:flag{12305926.36}
双目失明,身残志坚
附件为无后缀zip文件,拖入winhex查看文件头不大对劲,尝试拖入foremost分离出压缩包,解压得到两个图片,分别是blind.png和original.png,两图片内容已知,其中blind.png文件更大,结合题目名和图片名猜想为盲水印
相关知识点
数字水印
数字水印(digital watermark)技术,是指在数字化的数据内容中嵌入不明显的记号。
特征是,被嵌入的记号通常是不可见或不可察的,但是可以通过计算操作检测或者提取。
盲水印与傅里叶变换
这里介绍的盲水印是以知乎某答主的频域添加盲水印的文章为基础,在2016HCTF的也出了一个隐写题目,也是以频域为背景的。
盲水印,是指人感知不到的水印,包括看不到或听不见(没错,数字盲水印也能够用于音频)。其主要应用于音像作品、数字图书等,目的是在不破坏原始作品的情况下,实现版权的防护与追踪。
对图像进行傅里叶变换,起始是一个二维离散傅里叶变换,图像的频率是指图像灰度变换的强烈程度,将二维图像由空间域变为频域后,图像上的每个点的值都变成了复数,也就是所谓的复频域,通过复数的实部和虚部,可以计算出幅值和相位,计算幅值即对复数取模值,将取模值后的矩阵显示出来,即为其频谱图。但是问题来了,复数取模后,数字有可能变的很大,远大于255,如果数据超过255,则在显示图像的时候会都当做255来处理,图像就成了全白色。因此,一般会对模值再取对数,在在0~255的范围内进行归一化,这样才能够准确的反映到图像上,发现数据之间的差别,区分高频和低频分量,这也是进行傅里叶变换的意义。
盲水印提取项目:BlindWaterMark
环境配置
python2.3皆可,且加解密结果不同(python2和python3 random的算法不同)
若同时存在python2、python3,注意环境变量、pip、依赖库冲突
依赖库安装
pip install -r requirements.txt
经尝试不可行
需安装opencv-python、matplotlib(涉及numpy、pillow)
命令提取盲水印
1 |
|
有软件WaterMake可实现盲水印
解题步骤
将图片依次拷贝至python2(3)\Lib\site-packages\BlindWaterMark-master
目录下尝试,分别执行命令python2 bwm.py decode original.png blind.png decode1.png
,python bwmforpy3.py decode original.png blind.png decode1.png
python3成功提取到png
考虑摩斯密码因无法分段放弃,猜测为盲文
——望国家加大对残障人士的关注。。。。百度到的盲文对照表乱的一塌糊涂
下载app文星盲文学习助手,依次对照声母韵母,注意以下特殊对照
点位(1234)、(13)、(125)与i、ü开头的韵母相拼时读作j、q、x;与其他韵母相拼时读作g、k、h
点位(256)自成音节时读ueng,与韵母相拼时读作ong
点位(26)有o、e两读音
对照结果为zhejianggongiedaxüe
,修正为zhejianggongyedaxue
提交flag:flag{zhejianggongyedaxue}
——很遗憾结束后半小时才出
复现
CRYPTO
签到
[网鼎杯 2020 青龙组]you_raise_me_up原题
MISC
Girlfriend’s account
python脚本读取xls文件,字典替换中文数字,相乘并加和
双目失明,身残志坚
盲文介绍
盲文又称点字,国际通用的点字由6个凸起的圆点为基本结构组成,是专供盲人摸读、书写的文字符号。1829年,法国盲人路易•布莱尔(Louls Braille,1809-1852)受夜文的启发,创造出了以简单的凸点代替拉丁字母的盲文体系,国际上用他的名字来命名盲文(Braille)。
布莱尔创造的由6个点为基础结构的盲字,在纸面上有的凸起,有的不凸起,形成64种变化,即64种符形,在每个符号(单位称“方”)左右两列,每列各三个点,从左边自上而下叫做1、2、3点,从右边自上而下叫做4、5、6点。
解读:每个数字的盲文前面都有个“3456”点符形,是数号,表示后面的读作阿拉伯数字。
解读:英语盲文a-j都只是用了1245点位即上半截,和数字的一样;k-t是a-j下面加上了3号点位。
注意:声母g/k/h在韵母i/u/ü时变读为j/q/x。z/c/s/zh/ch/sh/r后面的i省略
ZipBomb
1 |
|
找到zipBomb\OJ.ZIP中名为FLAG的文件含错误flag:flag{F4KE_flag!}
猜测扫描每个文件内容识别flag的十六进制值找到正确flag
REVERSE
ea5ycpp
程序逻辑不懂,大概是在执行brainfuck代码吧?
brainfuck代码详解:百度百科
赋值部分汇编代码(避免大小端模式影响)
1 |
|
easy_math
根据字符串找到main函数
由于小端模式,v7的值实为’aSci!}’
1 |
|
奇奇怪怪的碰运气出flag。。。。。一堆函数不知道干啥的。。。。
pig_brain_king
题目运行需要msvcp140d.dll(放到同目录下或C:\Windows\SysWOW64中即可),题中所有文字提示的输出都是通过从字典中取值并逐一输出的
1 |
|
**法一:**在判断正误的语句中有错误跳转,将其nop掉或改成jnz即可
sub_4114BF输出answer即flag,大体思路是依次正确回答1000个问题(即输入屏幕短暂显示的字符串)后显示flag并清屏
第1001次判断未发现,flag的计算思路不明
依次改掉休眠(将push改为0即可),错误跳转,输入1000个任意字符,即显示flag
1 |
|
**法二:**利用pwntools自动化解nc -l -p 8081 -e ./re-pig_brain_king.exe
,无需修改错误跳转,直接获取屏幕输出并输入
pwntools工具未使用过
1 |
|
**flag:**flag{YOU_ar3_The_k1ng_Of_pig_bra1n!}
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!