文章目录
- 1、白给签到
- 2、Welcome
- 3、Get
- 4、Post
- 5、滴滴滴
- 6、每逢佳节
- 7、Bacon
- 8、古典变奏
- 9、affine
- 10、affine-revenge
- 11、Random_encrypt
- 12、easy_re
- 13、re1
- 14、ez_xor
- 15、maze
- 16、easy_php
- 17、easy_bypass
- 18、Autumn
- 19、easy_Cookie
- 20、[白给] 连上就给flag
- 21、小兔子
- 22、我在城楼观山景
- 23、Stream
- 24、如来の兽
- 25、PDF
- 26、QR code
- 27、Trytouse
- 28、Boringboss
- 29、esay-RSA
1、白给签到
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-xgCKHo5f-1637033025081)(C:\Users\张开斌\AppData\Roaming\Typora\typora-user-images\image-20211115074027767.png)]](https://i-blog.csdnimg.cn/blog_migrate/d2ed8ff8f772cd4b5196e05581251054.png)
直接填入flag即可
2、Welcome
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-pFqTDWyG-1637033025088)(C:\Users\张开斌\AppData\Roaming\Typora\typora-user-images\image-20211115074120440.png)]](https://i-blog.csdnimg.cn/blog_migrate/ae2f58e6375d8fb844b4508f130fc346.png)
进入题目链接地址
右键查看源代码或者Fn+F12
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-81WXeOsJ-1637033025116)(C:\Users\张开斌\AppData\Roaming\Typora\typora-user-images\image-20211115074236775.png)]](https://i-blog.csdnimg.cn/blog_migrate/5543300598dbe9e08543995310fc472b.png)
获得flag
3、Get
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-HKuR2K8o-1637033025120)(C:\Users\张开斌\AppData\Roaming\Typora\typora-user-images\image-20211115074321608.png)]](https://i-blog.csdnimg.cn/blog_migrate/4662370c6912ac37c1d9fe0256d17571.png)
使用Get传入参数henu
使得参数henu=flag即可回显flag
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-tA5hLiB5-1637033025125)(C:\Users\张开斌\AppData\Roaming\Typora\typora-user-images\image-20211115074446487.png)]](https://i-blog.csdnimg.cn/blog_migrate/90f4e1222946d44ccfcb0debea82086c.png)
4、Post
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Ggvopz40-1637033025128)(C:\Users\张开斌\AppData\Roaming\Typora\typora-user-images\image-20211115074520210.png)]](https://i-blog.csdnimg.cn/blog_migrate/72d7f979598607c8df733b7309bd15cd.png)
和刚刚的Get几乎没有什么区别(注意这里是henu=fl@g,一般可以直接复制),不过这一次是Post传入参数
Post传参需要借助插件HackerBar或其他类似的插件,我这里使用的Max HackerBar
右键点击“检查”,选中Max HackerBar插件
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Eex09d7N-1637033025130)(C:\Users\张开斌\AppData\Roaming\Typora\typora-user-images\image-20211115074934895.png)]](https://i-blog.csdnimg.cn/blog_migrate/02a0d7776a9a1a00042c8ced5295c848.png)
先Load URL,勾选上Post Data,这时候下面会出现Post Data输入框,将要传入的参数写上henu=fl@g,最后点击Execution(执行),即可获得flag
5、滴滴滴
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-FOS2xg62-1637033025133)(C:\Users\张开斌\AppData\Roaming\Typora\typora-user-images\image-20211115075126562.png)]](https://i-blog.csdnimg.cn/blog_migrate/ac9cd7461bbb94ab0594bfff238fbcdd.png)
打开附件,可以看到很明显是摩斯电码
复制摩斯电码
打开一个在线摩斯电码转换器
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-VyLsWrcJ-1637033025136)(C:\Users\张开斌\AppData\Roaming\Typora\typora-user-images\image-20211115075334941.png)]](https://i-blog.csdnimg.cn/blog_migrate/606485483ab4bf0b4412b03d8c9c67e4.png)
又根据题目描述是小写,所以将flag小写即可
6、每逢佳节
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Wmf52741-1637033025139)(C:\Users\张开斌\AppData\Roaming\Typora\typora-user-images\image-20211115075452988.png)]](https://i-blog.csdnimg.cn/blog_migrate/dd6e3c1dedad34626f38f4a3b41de6a2.png)
解密字符串以"="号结尾,由大写英文字母、小写英文字母和数字组成
base64的特征
1.标准base64只有64个字符(英文大小写、数字和+、/)以及用作后缀等号;
2.base64是把3个字节变成4个可打印字符,所以base64编码后的字符串一定能被4整除(不算用作后缀的等号);
3.等号一定用作后缀,且数目一定是0个、1个或2个。这是因为如果原文长度不能被3整除,base64要在后面添加\0凑齐3n位。为了正确还原,添加了几个\0就加上几个等号。显然添加等号的数目只能是0、1或2;
所以推测是base64加密
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-5KOuTP50-1637033025150)(C:\Users\张开斌\AppData\Roaming\Typora\typora-user-images\image-20211115075628871.png)]](https://i-blog.csdnimg.cn/blog_migrate/c49fc908b34556cdd64583cac6e37a5a.png)
7、Bacon
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-wgXf5Cac-1637033025152)(C:\Users\张开斌\AppData\Roaming\Typora\typora-user-images\image-20211115083122572.png)]](https://i-blog.csdnimg.cn/blog_migrate/14cb7b0ad606e19afb709113ac113bec.png)
得到一个字符串,又由题目名称得知这题使用的是Bacon密码
分析字符串可知是由“王果”和“王木”组成
可以将“王果”当作A,“王木”当作B
str1="王果 王果 王木 王木 王果 王果 王木 王木 王木 王果 王果 王木 王木 王木 王果 王果 王果 王果 王木 王木"
str2=""
for i in range(len(str1)):if str1[i]=="果":str2+="A"elif str1[i]=="木":str2+="B"
print(str2)
得到AABBAABBBAABBBAAAABB
(一般如果不行把A和B互换位置,因为不知道王果和王木哪个代表A和B)
打开在线Bacon解密工具
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-aPdBIjK8-1637033025153)(C:\Users\张开斌\AppData\Roaming\Typora\typora-user-images\image-20211115083407546.png)]](https://i-blog.csdnimg.cn/blog_migrate/bbb6cfab764f95e78a2e9a9554863bd9.png)
即可获得flag
8、古典变奏
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-SRs9Yt3s-1637033025154)(C:\Users\张开斌\AppData\Roaming\Typora\typora-user-images\image-20211115083451621.png)]](https://i-blog.csdnimg.cn/blog_migrate/b3980be4794edc81be735399190278ab.png)
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-TTbttCeh-1637033025155)(C:\Users\张开斌\AppData\Roaming\Typora\typora-user-images\image-20211115083532214.png)]](https://i-blog.csdnimg.cn/blog_migrate/cfe8f4dcdaab4c619d64df65e23c4a91.png)
打开附件发现一串奇怪的字符
由经验的积累或者题目的提示“小明要去猪圈”得知这是一个猪圈密码
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-wf4BelDL-1637033025157)(C:\Users\张开斌\AppData\Roaming\Typora\typora-user-images\image-20211115083854230.png)]](https://i-blog.csdnimg.cn/blog_migrate/634bdcd74d7fc64e9323362ff4bf3d83.png)
猪圈密码在线解密即可得到一个字符串
由题目提示“他上6楼找凯撒”推测这是一个凯撒密码,经过移六位得到的
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-nSQkEFWv-1637033025158)(C:\Users\张开斌\AppData\Roaming\Typora\typora-user-images\image-20211115084036229.png)]](https://i-blog.csdnimg.cn/blog_migrate/e18d21af87759a644754caac819d819e.png)
凯撒密码在线解密得到一个字符串
由题目提示“钥匙就在栅栏下面”推测是栅栏密码
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-n8WHNXr6-1637033025159)(C:\Users\张开斌\AppData\Roaming\Typora\typora-user-images\image-20211115084235256.png)]](https://i-blog.csdnimg.cn/blog_migrate/9898b4473b936cbd89e78f41484aef5a.png)
但是题目没有给出每组字数,需要自己不断去尝试,最后得到一个有含义的字符串,即为flag
9、affine

assert flag==decrypt(cipher,a,b,m)
python assert断言是声明其布尔值必须为真的判定
所以flag一定等于cipher使用a,b,m解密后的得到的字符串
分析可知加密和解密都是使用的a,b,m,这题的公钥和私钥都是a,b,m,且这题的a,b,m已经明确给出
cipher是flag进行加密后得到的,且cipher已知
那么现在就可以直接通过cipher反解出flag即可

10、affine-revenge

这一题和上面一题唯一的区别就是这一题的钥匙a,b,m没有明确给出,需要自己去找
这里我直接使用爆破
11、Random_encrypt

可以看到这里最后的cipher是经过flag随机使用base64或base32或base16加密十次后得到的结果
(刚开始我任何可以在python代码中让随机解码十次,但因为base64、base32、base16编码组成不同base64>base32>base16,base64的编码几乎不可以用base16和base32解码,但base16和base32编码却一定可以用base64解码,所以在进行解码时候要先判断它们可能是哪种编码,再随机使用该编码进行解码,发现这样难度系数增加),我直接使用人工判断,进行解码
Base64:
包含大写字母(A-Z),小写字母(a-z),数字(0-9)以及+/;
Base32:
而Base32中只有大写字母(A-Z)和数字234567;
Base16:
而Base16就是16进制,他的范围是数字(0-9),字母(ABCDEF);
12、easy_re
拖入exeinfo中查看exe基本信息

可以看到是64可执行文件
拖入64位ida中

flag直接给出了
13、re1

拖入32位ida,找到main函数,F5查看伪代码

首先我们可以看到代码的最后的if-else语句会进行v3作为条件进行判断,如果v3为真,会printf(aFlag_0);否则 printf(aFlagGet);
然后往上看到 v3 = strcmp(v5.m128i_i8, v7);
将输入的v7和v5进行比较,如果v5不等于v7直接就printf(aFlag_0);(这里就可以判断出来了真正的flag是aFlag_0,否则aFlagGet输出过于容易了)
所以v5就显得格外关键了,找跟v5相关的
v5 = _mm_loadu_si128((const __m128i *)&xmmword_413E34);
可以看到_mm_storeu_si128(),对其进行分析发现它类似于memset(),将xmmword_413E34的值赋值给v5,所以,我们可以得到正确的flag应该在xmmword_413E34中,然后,我们双击413E34进行跟进

可以看到它的值是十六进制的数,将十六进制的数转换成字符串(选中之后按R键)

注意这里是小端存储方式,要从后往前读(其实根据代码的含义也可以大概判断出来),flag就出来了
14、ez_xor
拿到ez_xor.exe附件直接丢进PE

可以看到是64位exe文件,丢进ida64
Shift+F12查看字符串(如果是笔记本电脑的话,F12自带热键,先按Fn,即Fn+Shift+F12)

一般在这里找有没有和flag相关的字符串,可以看到这里是有的,双击进入

找到该字符串,点击上图所示,进入main方法
会进入流程图界面,按空格进入文本界面
可以看到汇编代码了,按F5(同理如果是笔记本记得按Fn+F5)反汇编,转换成C语言

现在就可以分析代码了,这里的C语言可能数据类型之类的会和我们平时的有点不一样
比如说这里的v3=0i64,0i64表示int64_t类型的0,其实就基本上可以理解为0
这里代码可以看到关键异或代码while ( (char)(v3 ^ v5[v3]) == dword_403020[v3] )


可以看到该字符串每个字符对应的ASCII码(这里按R键即可看到对应的字符)
现在已知dword_403020和v3(v3就是0~31),逐个进行异或即可得到flag
写一个Python脚本
s=[0x35, 0x62, 0x37, 0x30, 0x33, 0x3D, 0x60, 0x63, 0x3F, 0x3D, 0x6C,0x69, 0x6D, 0x6F, 0x68, 0x6D, 0x72, 0x77, 0x20, 0x70, 0x76, 0x73,0x72, 0x2F, 0x2E, 0x21, 0x7E, 0x2B, 0x28, 0x25, 0x2C, 0x29]
flag=[0 for i in range(32)] #从给出的代码很容易看到flag是32位的
for i in range(32):flag[i]=i^s[i]
print(flag)
即可得出flag
15、maze

可以看到是64位可执行文件,拖入64位ida
找到主函数main,F5反汇编查看C语言代码
int __cdecl main(int argc, const char **argv, const char **envp)
{int result; // eaxchar Str[32]; // [rsp+20h] [rbp-70h] BYREFchar v5[63]; // [rsp+40h] [rbp-50h]char v6; // [rsp+7Fh] [rbp-11h]int v7; // [rsp+84h] [rbp-Ch]int i; // [rsp+88h] [rbp-8h]int v9; // [rsp+8Ch] [rbp-4h]_main(argc, argv, envp);v5[0] = 5;v5[1] = 0;v5[2] = 0;v5[3] = 0;v5[4] = 0;v5[5] = 0;v5[6] = 0;v5[7] = 0;v5[8] = 1;v5[9] = 0;v5[10] = 0;v5[11] = 0;v5[12] = 0;v5[13] = 0;v5[14] = 0;v5[15] = 0;v5[16] = 1;v5[17] = 1;v5[18] = 1;v5[19] = 0;v5[20] = 0;v5[21] = 0;v5[22] = 0;v5[23] = 0;v5[24] = 0;v5[25] = 0;v5[26] = 1;v5[27] = 0;v5[28] = 1;v5[29] = 1;v5[30] = 1;v5[31] = 0;v5[32] = 0;v5[33] = 0;v5[34] = 1;v5[35] = 0;v5[36] = 1;- List itemv5[37] = 0;v5[38] = 1;v5[39] = 0;v5[40] = 0;v5[41] = 0;v5[42] = 1;v5[43] = 0;v5[44] = 1;v5[45] = 0;v5[46] = 1;v5[47] = 0;v5[48] = 0;v5[49] = 0;v5[50] = 1;v5[51] = 1;v5[52] = 1;v5[53] = 0;v5[54] = 1;v5[55] = 0;v5[56] = 0;v5[57] = 0;v5[58] = 0;v5[59] = 0;v5[60] = 0;v5[61] = 0;v5[62] = 1;v6 = 5;v9 = 0;i = 0;printf(Format);scanf("%s", Str);v7 = strlen(Str);if ( v7 == 20 ){for ( i = 0; i <= 19; ++i ){if ( Str[i] == 85 )v9 -= 8;if ( Str[i] == 74 )v9 += 8;if ( Str[i] == 72 )--v9;if ( Str[i] == 75 )++v9;if ( !v5[v9] )break;}if ( v9 == 63 && v6 == 5 )puts("Congratulations!");elseputs("Sorry,your flag is wrong!");system("pause");result = 0;}else{puts("Sorry,your flag is wrong!");system("pause");result = 0;}return result;
}

16、easy_php

提示get不到henu,那get henu试一下

查看源码

这题考察的是:常见的MD5碰撞:md5值为0e开头
你需要get传参,使得参数的md5值和s214587387a的md5值相等,但又不能等于s214587387a
因为0e开头的md5的原值包括有s214587387a
因此只需要传递一个0e开头的md5的原值即可


17、easy_bypass

他提示说少了一个参数N,那就给他传一个参数N

看到了include(“flllagggggg.php”)文件包含;
那进去看看吧

得到一串字符有数字0~9和字母A-F组成,所有推测可能是base16编码

解码后又得到一串编码以等号结尾,由大写字母、小写字母和数字组成,推测应该是base64

得到flag
18、Autumn
题目提示:爱、死亡和机器人
进入网址


后面都是重复的了,直接关闭dialog,题目多次提示机器人,很容易就让人想到robots.txt,那进去看看吧

又出现了新的提示,where_is_flag.php
进去看看

除了提示框的内容不一样和刚开始界面没有什么不同,现在没有什么提示信息,查看源码,一直往下翻,得到flag

19、easy_Cookie
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Or3zzAWt-1637033025161)(C:\Users\张开斌\AppData\Roaming\Typora\typora-user-images\image-20211115182632307.png)]](https://i-blog.csdnimg.cn/blog_migrate/66158d4c1fad6c3cf6c5214072bc4f15.png)
题目各种提示cookie,那么我们就看看cookie里面到底有什么
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-3vj7aqc2-1637033025162)(C:\Users\张开斌\AppData\Roaming\Typora\typora-user-images\image-20211115183132563.png)]](https://i-blog.csdnimg.cn/blog_migrate/8b7360498e0712527cdbb356ff2d99d9.png)
调用web服务时,参数中=变成%3D
所以这里将%3D换成=
猜测为Base64编码
解码后得到
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-jLdC0WVC-1637033025164)(C:\Users\张开斌\AppData\Roaming\Typora\typora-user-images\image-20211115183351782.png)]](https://i-blog.csdnimg.cn/blog_migrate/15c78a6421070e9972e974cb911c2708.png)
解码之后发现结果仍然是一串编码
再次base64解码即可得到flag
20、[白给] 连上就给flag
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-T6nZMRsa-1637033025166)(C:\Users\张开斌\AppData\Roaming\Typora\typora-user-images\image-20211115181540643.png)]](https://i-blog.csdnimg.cn/blog_migrate/a67bf0991d5af4f202364fa36ac1243e.png)
根据题目提示nc即可得到flag
在terminal界面
nc 39.103.198.196 10008
ls #显示当前目录下文件信息
然后发现里面有个flag
cat flag
即可得到flag
21、小兔子
拿到附件图片
一般拿到附件图片,先查看图片的属性
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ygtB84O4-1637033025167)(C:\Users\张开斌\AppData\Roaming\Typora\typora-user-images\image-20211115181310993.png)]](https://i-blog.csdnimg.cn/blog_migrate/abfcafd85a2fc7f65d2fcc8b54fe2a87.png)
很明显这里的备注有异样内容,又由文件名和图片名小兔子,猜测是兔子密码
解密即可得到flag
22、我在城楼观山景
打开附件,发现是一堆乱码
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-VkEPRMLr-1637033025169)(C:\Users\张开斌\AppData\Roaming\Typora\typora-user-images\image-20211115180402256.png)]](https://i-blog.csdnimg.cn/blog_migrate/962af385bb97e67b5de61541fc17cc8e.png)
猜测是文件类型错误
把文件放入010 Editor中查看文件的真实类型(其实这里通过文件开头的NG就可以推测出文件的类型是png)
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ZMBo8WES-1637033025170)(C:\Users\张开斌\AppData\Roaming\Typora\typora-user-images\image-20211115180524099.png)]](https://i-blog.csdnimg.cn/blog_migrate/2a73e73cf7632cad6edbb4c3c619ff65.png)
JPEG (jpg),文件头:FFD8FF
PNG (png),文件头:89504E47
GIF (gif),文件头:47494638
ZIP Archive (zip),文件头:504B0304
RAR Archive (rar),文件头:52617221
XML (xml),文件头:3C3F786D6C
HTML (html),文件头:68746D6C3E
MS Word/Excel (xls.or.doc),文件头:D0CF11E0
Adobe Acrobat (pdf),文件头:255044462D312E
ZIP Archive (zip),文件头:504B0304
RAR Archive (rar),文件头:52617221
可以看到文件头为89504E47 ,所以真实类型是png
将文件后缀名改为.png
得到一张这样的图片可以看到图片下方有字样,就是我们的flag(记得将亮度调到最大)
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Q46hXdbF-1637033025172)(C:\Users\张开斌\AppData\Roaming\Typora\typora-user-images\image-20211115180913238.png)]](https://i-blog.csdnimg.cn/blog_migrate/4e97cf423adb15a9b25c1b69eca2cbf2.png)
看不出来也没有关系,使用看图工具stegsolve,这次可以清楚地看出flag了
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-UlSKhFcc-1637033025173)(C:\Users\张开斌\AppData\Roaming\Typora\typora-user-images\image-20211115181106048.png)]](https://i-blog.csdnimg.cn/blog_migrate/199182cdcb2c9d56dd9676b042aed4df.png)
23、Stream

注意看hacker is everywhere
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-7LODEyBp-1637033025176)(C:\Users\张开斌\AppData\Roaming\Typora\typora-user-images\image-20211115103943639.png)]](https://i-blog.csdnimg.cn/blog_migrate/628e72cf2919623d1d90b9d3149a9d0b.png)
打开附件看到提示说这题需要使用wireshark工具
直接把you_are_hacker.pcapng拖入wireshark中

点击文件->导出对象->HTTP
保存后,因为hacker is everywhere
我当时随便打开了一个PHP文件,发现一串长得像Base64编码的字符,解码之后就得到了flag
24、如来の兽
打开附件

由附件名称(Buddha)和经验推测这是与佛论禅编码
进入与佛论禅在线解密工具
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-By4M02sM-1637033025179)(C:\Users\张开斌\AppData\Roaming\Typora\typora-user-images\image-20211115102917864.png)]](https://i-blog.csdnimg.cn/blog_migrate/fef0fffa4159d921491c251fe7c4adc2.png)
这里尤其要注意把与佛论禅编码放在下面输入框,点击参悟佛所言的真意!!!!!!
可以看到解密后的编码是兽语
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-hM2OmoTL-1637033025180)(C:\Users\张开斌\AppData\Roaming\Typora\typora-user-images\image-20211115103258576.png)]](https://i-blog.csdnimg.cn/blog_migrate/093daa8d7ff43f18c0e3dc269babe5d1.png)
找到兽语在线解密网址http://hi.pcmoe.net/buddha.html
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-cn5c0g0N-1637033025182)(C:\Users\张开斌\AppData\Roaming\Typora\typora-user-images\image-20211115103714411.png)]](https://i-blog.csdnimg.cn/blog_migrate/ade4609ce4bcff2b29045c1841f47347.png)
同样一定要注意解密输入框的位置
得到社会主义核心价值观编码
在线解码即可得到flag
25、PDF
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Q5XUHwqG-1637033025183)(C:\Users\张开斌\AppData\Roaming\Typora\typora-user-images\image-20211115101914375.png)]](https://i-blog.csdnimg.cn/blog_migrate/b1b61ce07ab62847a459b055e4971b08.png)
题目提示说图片名有内涵,可以得到图片下面有内容
打开pdf后,Ctrl+A获得了图片下面的字符,Ctrl+C复制字符内容
新建一个txt文档,Ctrl+V

并没有见过这个编码
进入Google搜索
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-D2BaBCIk-1637033025186)(C:\Users\张开斌\AppData\Roaming\Typora\typora-user-images\image-20211115102409431.png)]](https://i-blog.csdnimg.cn/blog_migrate/87f8ac20757542c2d67f169267e2dc37.png)
OK,可以看到是阴阳怪气编码
在网上搜索到一个在线解密工具https://mmdjiji.gitee.io/yygq.js/
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-vPfJS8ss-1637033025187)(C:\Users\张开斌\AppData\Roaming\Typora\typora-user-images\image-20211115102559054.png)]](https://i-blog.csdnimg.cn/blog_migrate/591167a3156a1c4efa5f2236d6b220c9.png)
得到flag
26、QR code
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-SYad2ou0-1637033025190)(C:\Users\张开斌\AppData\Roaming\Typora\typora-user-images\image-20211115085102106.png)]
题目是直接丢过来一个二维码,缺少二维码定位符,所以搜素一下二维码定位符
截取图片,去除白色背景
(这一题用PowerPoint更简单容易)

首先将两张图片都打开
将页面切换到定位符
选中左侧工具栏的移动工具(就是最上面的第一个工具)
然后点击图片,拖动图片到上图中QRcode.png的位置

这样定位符图片就会出现在QRcede图片上了
调整图片的大小和位置(每弄好一个记得选择右上角的对号)
最后这就是生成的二维码了

扫描二维码
得到一串符号
++++++++[>>++>++++>++++++>++++++++>++++++++++>++++++++++++>++++++++++++++>++++++++++++++++>++++++++++++++++++>++++++++++++++++++++>++++++++++++++++++++++>++++++++++++++++++++++++>++++++++++++++++++++++++++>++++++++++++++++++++++++++++>++++++++++++++++++++++++++++++<<<<<<<<<<<<<<<<-]>>>>>>>>–.<+.>+.<+++.>.-.<+++.—.—.>—.<.>–.
很明显这是密码
是brainfuck密码
在线工具解码即可得到flag
27、Trytouse
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-iDDATRF2-1637033025194)(C:\Users\张开斌\AppData\Roaming\Typora\typora-user-images\image-20211115084528962.png)]](https://i-blog.csdnimg.cn/blog_migrate/7a5423c825b374e61f17e73b9d06f7d7.png)
推测该题目是考察寂静之眼的使用
下载附件拖入寂静之眼
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-QEKQSynK-1637033025195)(C:\Users\张开斌\AppData\Roaming\Typora\typora-user-images\image-20211115084832916.png)]](https://i-blog.csdnimg.cn/blog_migrate/e4e76d18f45f642b5808e65e08296e82.png)
点击Decode
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-IT3rcqSx-1637033025200)(C:\Users\张开斌\AppData\Roaming\Typora\typora-user-images\image-20211115084854022.png)]](https://i-blog.csdnimg.cn/blog_migrate/72a08c9b70284282e229525ea4fa5f51.png)
再次点击Decode
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Q6GFqD6v-1637033025201)(C:\Users\张开斌\AppData\Roaming\Typora\typora-user-images\image-20211115084913009.png)]](https://i-blog.csdnimg.cn/blog_migrate/c062bac9948a335778f415a6a9f8db8e.png)
即可获得flag
28、Boringboss
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-38ywwlgP-1637033025202)(C:\Users\张开斌\AppData\Roaming\Typora\typora-user-images\image-20211115085429050.png)]](https://i-blog.csdnimg.cn/blog_migrate/fba8868b687ea2d4282a1772b7a2f6df.png)
由中 由中 由由 由由 由由 由由 由中 由中 由中 由由 由中 由由 由中 由由 由由 由由 由由 由由 由由 由中 由中 由由 由中 由由 由由 由中 由中 由由 由由 由由 由由 由中 由由 由由 由由 由中 由由 由由 由中 由中
打开附件看到一个很长的字符串
易得该字符串是由”由中“和”由由“组成的
将“由中”记作A,“由由”记作B(如果这样不行的话,则将“由中”记作B,“由由”记作A)
str1="由中 由中 由由 由由 由由 由由 由中 由中 由中 由由 由中 由由 由中 由由 由由 由由 由由 由由 由由 由中 由中 由由 由中 由由 由由 由中 由中 由由 由由 由由 由由 由中 由由 由由 由由 由中 由由 由由 由中 由中"
str2=""
i=1
while i<len(str1):if str1[i]=="中":str2+="A"elif str1[i]=="由":str2+="B"i+=3
print(str2)
得到AABBBBAAABABABBBBBBAABABBAABBBBABBBABBAA
Bacon在线解密后得到hrllhxm,提交后发现错误
将A,B互换
得到BBAAAABBBABABAAAAAABBABAABBAAAABAAABAABB
在线解密得到flag
29、esay-RSA
题目代码如下
更改后的主要代码
from gmpy2 import *
from Crypto.Util.number import *e = 0x10001def gcd(a, b):if a % b == 0:return belse:return gcd(b, a % b)def generate_key(bits):p, q = getPrime(bits), getPrime(bits)phi = (p-1)*(q-1)assert gcd(e, phi) == 1return p+q, (e, p*q)def ext_gcd(a, b):if b == 0:return 1, 0, aelse:x, y, gcd = ext_gcd(b, a % b) # 递归直至余数等于0(需多递归一层用来判断)x, y = y, (x - (a // b) * y) # 辗转相除法反向推导每层a、b的因子使得gcd(a,b)=ax+by成立return x, y, gcddef encrypt(msg, e, n):m = bytes_to_long(msg)return pow(m, e,n)def decrypt(msg, d, n):return pow(msg,d,n)def computeD(T, e):(x, y, r) = ext_gcd(T, e)#y maybe < 0, so convert itif y < 0:return T + yreturn ycipher = 3721706087701608031528143109887388627081325867064279646928798190372280395374522547064987799846969351893973138918258025444740621243876030264735011810425237
hint = 180542641103954693101505542753644053708448862377824438761565169103024337070352
N = 7963808967283558001727298271915511262219384674243538198387664984329127461321716628344351467966478566815452787078495773626878495336572392243183878207924327
T = N-hint+1 # 这是这一题的关键,要通过T计算秘钥 (p-1)*(q-1)=T
E = 65537
D = computeD(T, E)
flag = decrypt(cipher, D, N)
flag = long_to_bytes(flag)
print(flag)

这题明文已知,公钥(N,E)已知
通过hint和N可以求出T
再通过DE mod T=1计算出密钥D(要使用扩展欧几里得)
然后用私钥解密,即可求出密文
但注意要long_to_bytes!