2024寒假MISC小记录_更0130


MISCMISC!

2024/01/14

签到喵:

python库函数,喵语

加密 A 宽宽 S 00 E:

零宽字节,ASE加密

是uu吗:

uuencode,steghide (感觉这几个隐写工具都得筛一次啊(悲

机密:

文件隐藏,爆破

EZ签到:

伪加密,imagemagick,gaps,f5加密,base家族 (ez))

社会主义好:

核心价值观解码,rabbit解码

2024/01/15

签到(web混入)

元素反应

看到提交按钮不能用,先把元素里的disabled变成abled点击试试,弹框:

小火汁提交“ilovejljcxy”就能的到flag了啊

输入框只能输入9位,改成11位,提交”ilovejljcxy“,得到flag

签到题(web再混入)

cookie 绕过

看cookie,didi=no,用Editthiscookie插件改一下yes,刷新得

Li9kYXRhL2luZGV4LnBocA(补全==后)解密./data/index.php

1
2
3
4
5
6
7
8
9
 <?php
error_reporting(0);
$file = $_GET['file'];
if(!isset($file))
$file = '1';
$file = str_replace('../', '', $file);
include_once($file.".php");
highlight_file(__FILE__);
?>

绕过->

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

PD9waHANCiAgICAkZmxhZyA9ICJmbGFnezkyZWI1ZmZlZTZhZTJmZWMzYWQ3MWM3Nzc1MzE1NzhmfSI7DQo/Pg==(base64)解密:

flag{92eb5ffee6ae2fec3ad71c777531578f}

0和255

程序逆向

小小的程序逆向

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# -*- coding = utf-8 -*-
# @software:PyCharm
from PIL import Image
image = Image.open('flag.png') #flag.png分辨率为33*33
width = image.width
height = image.height
image_list = []
for x in range(height):
scanline_list = []
for y in range(width):
pixel = image.getpixel((y, x))
scanline_list.append(pixel)
image_list.append(scanline_list)
print(image_list)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
# -*- coding = utf-8 -*-
# @software:PyCharm
from PIL import Image

image_list =[...]
width = len(image_list[0])
height = len(image_list)
new_image = Image.new('RGB', (width, height))
for x in range(height):
for y in range(width):
pixel = image_list[x][y]
new_image.putpixel((y, x), pixel)

new_image.save('flag.png')

扫出来:Polar_Night

得到字符串MD5加密套上flag

2024/01/16

docx隐写

docx 隐写

docx隐写的主要考察方式有:

​ 1.docx文件的本质是压缩包,其内可存储文件。

​ 2.docx内将文字颜色改透明实现隐藏。

​ 3.officewps均支持docx文件的隐藏文字功能,通过设置可以看到隐藏的文字。

猜到了1、2,但是没找到3

蛮好玩的。

超级简单的流量

确实简单—追踪tcp流–tcp.stream eq 2

100RGB

1
2
3
4
5
6
7
8
9
🐯🐩🐣🐮🐨🐣🐭🐭
🐨🐧🐩🐣🐨🐧🐯🐣🐰🐮
🐨🐧🐪🐣🐨🐩🐪🐣🐭🐬
🐨🐨🐧🐣🐫🐰🐣🐨🐧🐰
🐰🐮🐣🐫🐰🐣🐨🐨🐬
🐪🐩🐣🐰🐬🐣🐰🐮
🐨🐨🐫🐣🐬🐨🐣🐰🐬
🐰🐰🐣🐨🐨🐮🐣🐫🐪
🐨🐧🐨🐣🐨🐩🐬🐣🐧

..我懂了,base100啊。base100是emoji加密

记得删除换行。

然后就是ascii解密(16进制

……

后面写了几道蚌埠住了,去画画了嘿嘿

2024/01/17

ctfshow做了几道(突然发现的小题库(好玩((欸嘿

杂项签到

直接拖winhex

损坏的压缩包

拖winhex–png–改了后缀–flag

2024/01/19

?做的题又没记录?

好像是什么。

迷之栅栏

这里放个破解010的过程,有时间读读

使用010editor的文件比较功能找到两张图片的十六进制不同点,按顺序互相取一位数或者栅栏2位解得flag

image-20240121000329395

你会数数吗

使用010editor的 工具→直方图 统计计数解得flag,或者复制出来词频统计

image-20240121000544233

2024/01/20

你会异或吗

图片16进制0x50异或

flag一分为二

前半watermark,后半改高度

打不开的图

png文件开头应该是89 50 4E 47,观察下题目给的png的开头是77 B0 B2 B9,会发现0x89+0x77=0x100, 0x50+0xB0=0x100, 0x4E+0xB2=0x100, 0x47+0xB9=0x100, 所以,只要用0x100减去现在png文件中的每个字节的16进制数即可恢复出可以预览的png图片。
但是要注意这里还有一个小坑,就是0x100是十进制数的256,而bytes格式最大只能表示到255,出现256会报错,所以题目原png文件中是0的位置,还是0,不能用0x100去减。

1
2
3
4
5
6
7
8
9
10
11
ff=open('./misc5.5.png','rb')
data=ff.read()
l=[]
for dd in data:
if dd==0:
l.append(dd)
else:
l.append(0x100-dd)
ff=open('./1234.png','wb') #会新建一个可写入的新文件1234.png
ff.write(bytes(l))
ff.close()

2024/01/21

黑丝白丝还有什么丝?

莫斯密码,白丝·,黑丝_,转场是空格

1
.-- ....- -. - - ----- -... ...-- -- --- .-. . -.-. ..- - .

我吐了你随意

好题目。零宽解密

迅疾响应

一道二维码题目,得学学了。。—>http://t.csdnimg.cn/hNYjT

他写的好好。

QRazyBox

image-20240121223704858

You and me

盲水印,使用工具 BlindWaterMark-master

python3 bwmforpy3.py decode you.png you_and_me.png wm2.png

https://ctf-show.feishu.cn/docx/UpC6dtDqgo7VuoxXlcvcLwzKnqh

20240122

两个图片题,好像直接扔识图里就ok

还有一个re

简单rc4加密,密钥是DHmqqvqxB^||zll@Jqjkwpmvez{

密文:£%öL6;YÌÄéñµ2±–®¿5

不想写了,chatpy

1
2
3
4
5
6
7
8
9
10
11
12
13
def xor_with_0x1F(input_str):
result = ''
for char in input_str:
# 将每个字符与0x1F进行异或操作
xored_char = chr(ord(char) ^ 0x1F)
result += xored_char
return result

# 示例
input_string = "DH~mqqvqxB^||zll@Jq~jkwpmvez{"
output_string = xor_with_0x1F(input_string)
print("输入字符串:", input_string)
print("异或操作后的字符串:", output_string)

20240123

crypto签到

63746673686f777b77656c636f6d655f325f636169676f755f6375707d

1
2
3
str=bytes.fromhex('63746673686f777b77656c636f6d655f325f636169676f755f6375707d')
print(str)
print(str.decode())

16进制是ascii

crypto签到2

Ao(mgHX^E)AN2PSBOu3qI0o

wp:

Ao(mg就是flag用base85编码之后的表示形式
base85还有各式各样的编码表。。这是ASCII

1
2
3
4
import base64
a="Ao(mgHX^E)AN2PSBOu3qI0o"
a=base64.a85decode(a).decode()
print(a)

Caesar

1
Zhofrph wr FWIvkrz yhjhwdeoh grj fxs!

#3 Welcome to CTFshow vegetable dog cup!

0x36d

密文: 😫🙄👰😰👣🙋😱👧👌👷👯👩😴👖👫👚🙃👹👏👏😶👳😫👕🙂🙊👵👶👨👰👮🙉👶👵👸👲👺👮👑😶👴😫🙊👫😴👬👹👤👑😱👗🙃👐😶 提示: 有没有一种可能,标题就是密码?

wp:熟悉的emoji解密,但是,,0x36d不行,换成877

类型-7

1
094F5A0F0A0D1805103B0B3D143117183B720438350A45550967674D1E064F2969784440455A460F1A1B

ctfshow{Wow_u_Kn0w_Ci$c0_Type7_P@ssword!}

base47

写的很好

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
import libnum

ciper = 'E9CV^T+HT5#X36RF4@LAU703+F$E-0N$@68LMXCVDRJJD5@MP#7MUZDTE?WWLG1S#L@+^66H@59KTWYK8TW0RV'
key = '0123456789ABCDEFGHJKLMNPQRSTUVWXYZ?!@#$%^&*-+'

num = 0 # 密文转十进制数

for i in range(len(ciper)):
p = key.index(ciper[i]) # 找到每个密文字符对应字典的下标
num += p * (len(key) ** (len(ciper) - i - 1)) # 45进制转十进制后求和

s = libnum.n2s(num) # 十进制数转字符串 ascii码表 256进制

print(s)

PWN签到题

欸嘿 nc过去就是

PWN02

http://t.csdnimg.cn/GMR5G

20240124

flag白给

嗯…看出套壳upx,然后找flag

想了半天,不知道这个序列号啥意思,启动程序才知道,

输入错了,按着这个串找

嗯……HackAv

数学不及格

嗯……数学题,好题解

源程序不困难,逻辑清晰

先预定几个参数(注意strtol),再参数运算判断,逆向求解

签退

pyc逆向

在线工具反编译

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
#!/usr/bin/env python
# visit https://tool.lu/pyc/ for more information
# Version: Python 2.7

import string
c_charset = string.ascii_uppercase + string.ascii_lowercase + string.digits + '()'
flag = 'BozjB3vlZ3ThBn9bZ2jhOH93ZaH9'

def encode(origin_bytes):
c_bytes = [ '{:0>8}'.format(str(bin(b)).replace('0b', '')) for b in origin_bytes ]
resp = ''
nums = len(c_bytes) // 3
remain = len(c_bytes) % 3
integral_part = c_bytes[0:3 * nums]
for x in [
0,
6,
12,
18]:
tmp_unit = [][int(tmp_unit[x:x + 6], 2)]
resp += ''.join([ c_charset[i] for i in tmp_unit ])
integral_part = integral_part[3:]
if remain:
remain_part = ''.join(c_bytes[3 * nums:]) + (3 - remain) * '0' * 8
tmp_unit = [ int(remain_part[x:x + 6], 2) for x in [
0,
6,
12,
18] ][:remain + 1]
resp += ''.join([ c_charset[i] for i in tmp_unit ]) + (3 - remain) * '.'
return rend(resp)


def rend(s):

def encodeCh(ch):

f = lambda x: chr(((ord(ch) - x) + 2) % 26 + x)
if ch.islower():
return f(97)
if (None,).isupper():
return f(65)

return (''.join,)((lambda .0: pass)(s))

#补充一个,ZmxhZw常见flagbase64头,

明文+base64+凯撒3—->密文

20240125

misc2

1、打开misc2压缩包,里面只有misc1是未加密的。

2、打开misc1压缩包,里面png文件未加密,打开是2020,尝试输入加密文件music的密码。

3、打开music,得到 ♭‖♭‖‖♯♭♭♬‖♩♫‖♬∮♭♭¶♭‖♯‖¶♭♭‖∮‖‖♭‖§♭‖♬♪♭♯§‖‖♯‖‖♬‖‖♪‖‖♪‖¶§‖‖♬♭♯‖♭♯♪‖‖∮‖♬§♭‖‖‖♩♪‖‖♬♭♭♬‖♩♪‖♩¶‖♩♪‖♩♬‖¶§‖‖♩‖¶♫♭♭♩‖♬♯‖♬§♭‖♭‖♩¶‖‖∮♭♭♬‖‖♭‖♫§‖¶♫‖♩∮♭♭§‖♭§‖♭§§=

4、音符解码得到 U2FsdGVkX1/eK2855m8HM4cTq8Fquqtm6QDbcUu4F1yQpA==

5、考虑rabbit解码,key为2020,得到:welcome_to_payhelp

6、将5、得到的考虑为hint.txt的密码,得到: VmpKMFUxTXhXWGxVV0dob1RUSjRVVll3V2t0aFJscDBZMGhLYTAxWGVIaFZiRkpUWWtaYVZWSnJXbFpOVjJoeVZYcEdZVkpzVG5KVWJHaHBWa1ZWZDFkV1ZtRmtNRFZYVjJ4c2FWSlVWbFJVVnpWdVRXeFZlV1ZHVGxSaVZrWTBXVlJPYzFWR1pFZFRiVGxYWW01Q1dGcEdXbE5UUjBZMlVXMTBWMWRGU2xkV1ZtUXdVekpGZUZOWWJHaFRSVFZWV1d0YVMxTXhjRVZUYTFwc1ZteHdlRlp0ZERCV01VcFlaRE53V0Zac2NIWldSekZMVW1zeFdWSnNTbWxXUjNodlZtMXdUMkl5Vm5OaVNGWnBVbXh3YzFac1VrZFNiRlY0WVVkMFZXSlZXbmxWYlRWUFZsWlplbEZyWkZSaVJrcFFWV3hGYkUwd1VXeE5NRkVsTTBRJTNE

7、将6、base64解码6次,得到 welcome_to_2020%0Aflag%20is%20coming…%0Athe%20key%20is%20hello%202020%21Ü0

8、对7、中的url解码进行替换得到 welcome_to_2020 flag is coming…%0Athe key is hello 2020!Ü0

9、猜测hello 2020!为flag.txt密码

10、得到flag:flag{g00d_f0r_y0u}

misc50

嗯……蛮复杂的

http://t.csdnimg.cn/Y9SyV

20240129

忘记录了呜呜

一个是word隐写(因为打开查看隐藏功能,所以一打开就是flag(有点无语

一个是图片隐写,winhex打开有字符,base85

20240130

适合作为桌面

http://t.csdn.cn/XsnrR

题解

单纯从图片观察,未发现线索;

右键使用记事本打开,依然未发现 flag 字样;

考虑图片隐写,
启动 Stegsolve ,加载图片;
直接切换图片,在 red plane 1 中,可以看到,图片左上角出现了一个二维码。(图片隐写大概率可能还会涉及到数据提取,这道题比较基础,所以直接切换就可以看到)

识别该二维码,在线条码解析,记得选择二维码,然后 read 读取;

扫描结果是一串十六进制的数字;

启动 winhex 进行解码,选择 AscII Hex

虽然解析出来是乱码,但是根据这些关键字可以推断出,这应该是一个 python 被编译之后的 pyc 文件

将其保存为 pyc 文件

启动 easy python decompiler 对其进行反编译

反编译会在 pyc 文件所在目录下生成这个文件

将其后缀改为 py 使用 vscode 打开,发现实际上是一个名为 flag 的 python 方法,但并无调用语句,于是自己加上一行代码,调用这个方法

找到 flag

如来十三掌

拿题目

首先还是分析题目,看看从题目中能发现什么蛛丝马迹。这是一道“13掌”打架题。先下载附加看看。

与佛论禅

附件里面是一段看不懂的文字,但是正常的应该能看出这应该是一段佛文。

立马想到【与佛论禅】

复制解密一下:注意格式一定要加上:【佛曰:】进行解密,得到密文:{MzkuM3gvMUAwnzuvn3cgozMlMTuvqzAenJchMUAeqzWenzEmLJW9}

十三掌解密

上面的第一步解密完成,但是输入进去是一个错误的flag,继续分析题干。题干上有一个比较明显的提示:【如来十三掌】。

必须很快的想到要进行rot13解码:解码得到{ZmxhZ3tiZHNjamhia3ptbmZyZGhidmNraWpuZHNrdmJramRzYWJ9}

输入依然不是正确的flag。

Base64解密

从13掌中得到的密文后,我们再进行一个Base64解密得到最终flag。flag{bdscjhbkzmnfrdhbvckijndskvbkjdsab}


文章作者: W3nL0u
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 W3nL0u !
  目录