目录

  • 前言
  • 一、Misc
    • 1.great_art
      • 1)用zsteg查看和提取隐写内容
      • 2)用binwalk分离出压缩文件
      • 3)得到前四个txt文件的crc值
      • 4)借助Python脚本爆破crc得到文件内容
      • 5)输入解压密码得到flag
  • 二、Steg
    • 1.lalala
      • 1)发现是考察MP3隐写但需要密码
      • 2)想办法拿到用来提取隐写信息的密码
      • 3)拿着密码再去用工具提取隐写内容
  • 三、Forensics
    • 1.流量分析
      • 1)追踪流看到密码
      • 2)从上一个流看到压缩文件包含flag
      • 3)保存原始数据流并删除多余部分
      • 4)用binwalk分离出压缩文件
  • 四、Crypto
    • 1.CRY2
      • 1)借助AES解密工具得到输出的密文
      • 2)把函数encrypt中的操作逆过来得到明文

前言

菜鸡浅写一下泰山杯练习平台上做出来的题。

一、Misc

1.great_art

考点:bmp隐写,提取隐写内容,分离文件,crc爆破文件内容

1)用zsteg查看和提取隐写内容

zsteg -a great_art.bmp


简单粗暴的命令往往可以获取想要的信息~看到在b1,bgr,lsb,xy有个文件是1.txt,猜测其有用,去提取出内容。

zsteg -e b1,bgr,lsb,xy great_art.bmp > art

2)用binwalk分离出压缩文件

得到art后尝试分离文件

binwalk -e art


得到一个压缩文件8.zip,里面有5个txt文件,可以看到以数字1234命名的txt文件很小,只有4B或5B,想到是通过crc爆破文件内容

3)得到前四个txt文件的crc值

可以通过010打开art文件来看到每个txt的crc值
其实这里先试了一下用winrar看crc(因为winrar会直接显示crc很方便),但是只显示了1.txt,看不到另外几个文件的显示。后来发现这里还有个小坑,就是8.zip文件后面其实有很多多余的东西,用010可以发现这个问题,在010中手动去掉8.zip文件后面多余的东西再保存,就可以用winrar来看所有txt的crc了。
直接winrar打开只能看到1.txt:

删除多于部分后再保存,就能在winrar下面看到全部txt文件的crc了,重点关注前四个:
(其实这步就是多个经验,既然都在010打开过了那肯定也能看到crc了啊哈哈)

4)借助Python脚本爆破crc得到文件内容

因为1.txt,2.txt和3.txt三个文件的内容有4bytes,而4.txt内容有5bytes,即4个字符还是5个字符的区别,所以要分开爆破
因为我已试验多次,所以已经知道了爆破的结果全是小写字母或下划线_,所以字典就只给了小写字母和下划线_,实际在做题时我们应该多尝试一些字符比如ascii可见字符。
最后想说明的就是爆破4个字符和5个字符其实是一个道理,为了直观出结果我写了两个函数分别调用,让这个脚本一次运行即可得出全部爆破结果并放在out.txt中。
(Python3下执行哦

import string
import binascii#前三个txt的crc用这个:
def CrackCrc123(crc):for i in dic:for j in dic:for p in dic:for q in dic:s = i + j + p + qif crc == binascii.crc32(s.encode()):f.write(s)return
#第四个txt的crc用这个:
def CrackCrc4(crc):for i in dic:for j in dic:for p in dic:for q in dic:for r in dic:s = i + j + p + q + rif crc == binascii.crc32(s.encode()):f.write(s)returndic = string.ascii_lowercase+'_'l=[0xCE70D424,0xC3F17511,0xF72ABC62]
for ll in l:f = open('out.txt', 'a')CrackCrc123(ll)f.close()l4=0x6545AE5C
f = open('out.txt', 'a')
CrackCrc4(l4)
f.close()

运行完上面脚本后,看到out.txt文件中有了内容:

passwordis__venus

要注意的是有俩下划线

5)输入解压密码得到flag

压缩包密码就是__venus
输入后打开flag.txt就拿到了flag
flag{c730a078-0db5-4fe3-819c-23d43f7093b1}

二、Steg

1.lalala

题目除了文件还给了一串数字:

3441353234343435353735323442353634423539354134353336353333323536343735323444343535333537344234433441343634353535353535323533343734413335344134363439353534423530344135413437353634463444353334463441344534443435333235363533353534423531354134363431353334413335

题目给的一串数字复制粘贴到上面了↑

1)发现是考察MP3隐写但需要密码

lalala.zip解压之后得到一个exe文件,我用010打开看了下文件头是FFFB92C0,百度一下发现FFFB开头是mp3文件
后来群里也有人说是mp3文件了并且连用什么工具都说了……工具叫mp3stego,去看了一下是个在Windows下才能用的工具。
去这个网址下个mp3stego:
https://www.petitcolas.net/steganography/mp3stego/
网站上也有说明用法:
encode -E hidden_text.txt -P pass svega.wav svega_stego.mp3
compresses svega.wav (mono, 44.1 kHz, 16bit encoded) and hides hidden_text.txt. The hidden text is encrypted using pass as a password. This produces the output called svega_stego.mp3. If no information was hidden, you would obtain this.
decode -X -P pass svega_stego.mp3
uncompresses svega_stego.mp3 into svega_stego.mp3.pcm and attempts to extract hidden information. The hidden message is decrypted, uncompressed and saved into svega_stego.mp3.txt.

偷个懒直接复制网站的英文过来了,大概就是两种命令:encode和decode。所以就先给lalala加个.mp3后缀,把lalala.mp3放到工具所在目录下,在cmd中进入工具所在目录尝试执行命令
decode -X lalala.mp3
然后……
果然要输密码……不知道密码

2)想办法拿到用来提取隐写信息的密码

那肯定是要想办法从题面给的一串神秘的数字中得到密码咯。
打开网站http://www.hiencode.com/
把这串数字做两次hex解码,结果如下:

4A52444557524B564B595A453653325647524D4553574B4C4A464555555253474A354A4649554B504A5A47564F4D534F4A4E4D45325653554B515A4641534A35
JRDEWRKVKYZE6S2VGRMESWKLJFEUURSGJ5JFIUKPJZGVOMSOJNME2VSUKQZFASJ5

把上一行结果做两次base32解码,结果如下:

LFKEUV2OKU4XIYKIIJFFORTQONMW2NKXMVTT2PI=
YTJWNU9taHBJWFpsYm5Weg==

把上一行结果做两次base64解码,结果如下:

a2V5OmhpIXZlbnVz
key:hi!venus

所以刚才不知道的密码,其实就是hi!venus

3)拿着密码再去用工具提取隐写内容

回到Windows下工具所在目录在cmd中尝试执行命令:

decode -X -P hi!venus lalala.mp3

执行成功可以看到隐写结果输出至了lalala.mp3.txt文件中
flag{e987913e4cb7605baf3b46b17ddc8760}
留图纪念、


最后,好奇的我试了一下,发现lalala不加.mp3的后缀也可以用mp3stego提取隐写内容,即

decode -X -P hi!venus lalala

所以这题主要是由题目那串数字得出密码比较难~

三、Forensics

1.流量分析

题目文件解压得到一个pcapng文件,用wireshark打开。

1)追踪流看到密码

以协议排序,找到HTTP协议的包,看到从上往下数第二个HTTP包有upload.php,觉得可能有用,右键选择追踪流。

追踪流后看到filename是pass.txt,感觉是放了密码,往下一看,直接以明文形式显示了文件内容,不出意外后面要用到的密码就是wHa1_a_bUsY_dAy!!

2)从上一个流看到压缩文件包含flag

就是单纯地试了一下看看“上一个流”(刚才有密码的流是20,看一下19)
看到有一个叫f1aG5.zip的压缩文件,重要的是能看出里面有个flag.txt
想到那就把压缩文件提取出来(先另存为,再用binwalk分解)

3)保存原始数据流并删除多余部分

raw显示数据流,save as一个文件(我这里叫liuliang),不用指定文件类型不用加后缀。

把数据流的原始形式另存为文件liuliang后,用010打开并删除消息正文前后的多余部分并保存(即保留压缩文件的内容)。留下的内容如下图所示:

4)用binwalk分离出压缩文件

用binwalk -e liuliang这个命令分离出压缩文件3.zip,然后用1)中得到的密码wHa1_a_bUsY_dAy!!解压压缩文件,打开flaG.txt,得到的明显是一个base64编码的结果,用base64解码可得flag是
flag{2546a6d80c4db48635eb6}

binwalk -e liuliang

四、Crypto

1.CRY2

题目给的是加密过程(.py)和输出的加密结果(.txt):

1)借助AES解密工具得到输出的密文

分析代码可以发现,输出的密文即
Mj7W2LnusNPxK91Xf2n+NnFUBxKwN/+Znzto2CijM3+QhpJH458gN9A+nDElNFeG
这一字符串,其实是用key2作密钥把enc1做ecb模式的AES加密得到的结果,所以把这一base64形式的字符串放到在线AES解密工具里即可得到enc1。

2)把函数encrypt中的操作逆过来得到明文

可以看出题目给的脚本中那个encrypt函数的过程是对明文(flag)的每一位进行如下操作:
①每个字符ascii码-0x20
②上一步结果+(ord(key[i % len(key)]) - 0x20)
③上一步结果%(0x7e - 0x20 + 1)
④上一步结果+0x20
最后把得到的数字转换回字符

所以就……反过来啊,但是取余那个地方自己有点纠结,然后试了一下发现在解密操作时取余也是放在第③步进行
即:把enc1的每个字符转换成ascii码后,先逆第④步,要减去0x20;然后逆第②步减去(ord(key[i % len(key)]) - 0x20),这里key是用的key1;再逆第③步中的取余,%(0x7e - 0x20 + 1);最后再加上①的0x20,把数字转回字符。
脚本如下:

key1 = "VENUS"
key2 = "venusctf2022"
enc2='Mj7W2LnusNPxK91Xf2n+NnFUBxKwN/+Znzto2CijM3+QhpJH458gN9A+nDElNFeG'
#enc2就是用密钥key2、AES的ecb模式加密enc1的结果,这里用在线工具解密得到enc1
enc1='=20=Oh^2j5<[5ndiUbg88(dfj<+cl9gXf7fj,L'flag = ''
for i in range(len(enc1)):flag+=chr(((ord(enc1[i])-0x20)-(ord(key1[i % len(key1)]) - 0x20))% (0x7e - 0x20 + 1)+0x20)
print(flag)

留图纪念、

可以输出flag:flag{29c5ae6f913042dab617ee57e138a34f}

泰山杯练习平台部分题目wp相关推荐

  1. 2020网鼎杯青龙组部分题目WP

    0x00 Crypto之boom 下载下来是个exe文件,拖到cmd运行(切记一定不要双击,用cmd打开) 找个md5网站解密,得到明文 输入后得到一个方程组,解方程组(找个就不用说了,初中知识) 输 ...

  2. 数据库2021“安恒·泰山杯”山东省网络安全大赛测试赛部分题目write up

    数据库2021"安恒·泰山杯"山东省网络安全大赛测试赛部分题目write up 2021"安恒·泰山杯"山东省网络安全大赛测试赛部分题目wp web1 admi ...

  3. [网鼎杯 2020 青龙组]AreUSerialz WP

    [网鼎杯 2020 青龙组]AreUSerialz WP 看到题目,首先进入代码审计 <?phpinclude("flag.php");//在文件中插入flag.php文件的 ...

  4. NewStarCTF公开赛week2密码学题目wp

    文章目录 前言 一.unusual_base 1.分析 2.解题脚本 二.Affine 1.分析 2.解题脚本 三.robot 1.分析 2.解题脚本 四.ezPRNG 1.分析 2.解密脚本 五.e ...

  5. [pwn]星号格式化串:2020网鼎杯白虎组pwn quantum_entanglement wp

    [pwn]星号格式化串:2020网鼎杯白虎组pwn quantum_entanglement wp 文章目录 [pwn]星号格式化串:2020网鼎杯白虎组pwn quantum_entanglemen ...

  6. Bugku-杂项部分题目WP

    前言 一个新手学习CTFer的成长之路必定要通过大量的刷题,下面是bugku部分题目wp Bugku-MISC-论剑 把图片放进010发现有一串二进制先转ASCII码获得一个关键词,但不知道是什么东西 ...

  7. ISCC 2021 部分题目WP

    ISCC 2021 部分题目WP 题目目录 练武题:web-ISCC客服一号冲冲冲(一) 练武题:web-介是嘛 练武题:web-Web01正则匹配最后的倔强 练武题:web- ISCC客服一号冲冲冲 ...

  8. 2020网鼎杯青龙组部分题目writeup

    2020网鼎杯青龙组部分题目writeup 0x00 Crypto之boom 0x00 Crypto之boom 下载下来是个exe文件,拖到cmd运行(切记一定不要双击,用cmd打开,双击运行后最后程 ...

  9. 2021第五届蓝帽杯初赛部分题目wp

    文章目录 前言 WEB Ball_sigin PWN slient MISC 冬奥会_is_coming 前言 本次蓝帽杯初赛做出了三道解出人数最多的题,勉强混个线下.但不得不吐槽一下这届题目.冬奥会 ...

最新文章

  1. QQ和新浪微博登陆第三方的简单实现
  2. Java设计模式(学习整理)---命令模式
  3. [Swift通天遁地]九、拔剑吧-(9)创建支持缩放、移动、裁切的相机视图控制器
  4. java的main函数为什么是public static void main(String[] args)
  5. RHEL5.1下安装GCC
  6. 最短路(遍历边)计蒜客—DD坐地铁
  7. 【OGG】 RAC环境下管理OGG的高可用 (五)
  8. 平衡小车之家_人教版高中物理必修一 专题 共点力作用下的动态平衡 公开课优质课课件教案视频...
  9. 无敌大奉献:iOS技术开发知识整理
  10. (一)员工信息管理系统(超级详细代码)
  11. ESXI安装威联通NAS系统
  12. 机器学习大作业---文献综述
  13. 股票大作手操盘术[图解]
  14. SameSite Cookie支持的浏览器版本
  15. matlab实现jpg转pgm,Matlab实现图片格式转换 pgm转jpg等
  16. ACM在线模版-f-zyj
  17. Java工作5年的迷茫,是否要转互联网?
  18. 谷歌地图上不去了,用BIGEMAP就可以了
  19. 互联网行业职位介绍 —— OD、PM、RD、FE、UE、QA、OP、DBA...
  20. lazada各国家站点讲解

热门文章

  1. 三星ARM Cortex-A8 S5PV210(蜂鸟)简介
  2. 喇叭的灵敏度代表什么
  3. 图灵的文章“Computing machinery and intelligence”译文
  4. 如何查看直播间在线人数?观看软件数据分析
  5. 猪年开年喜报—涛思数据完成 Pre A轮融资
  6. 干货 | 视频插帧的方案实现与对比~~
  7. 广东中考可以用计算机吗,广州中考改革迎五大变革:中考禁用计算机 详细新政一览...
  8. 大数据时代的地理信息科学与科研能力培养
  9. 怎样用两部手机同时登陆一个QQ(两部手机同时在线)
  10. java画篮球_PS教程!手把手教你绘制炫酷的科比篮球海报