IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> .wav异或提取png 提取blue通道数值并转换写成zip文件(2022DASCTF x SU 三月春季挑战赛 书鱼的秘密) -> 正文阅读

[Python知识库].wav异或提取png 提取blue通道数值并转换写成zip文件(2022DASCTF x SU 三月春季挑战赛 书鱼的秘密)

2022DASCTF x SU 三月春季挑战赛 书鱼的秘密
题目wp参考来源:
2022DASCTF x SU 三月春季挑战赛wp–WHT战队

一、.wav异或提取png

从data之后的第二个 k 之后开始,每隔10个字节,有一个字节的数据,其余的都是填充,混淆之类的数据。

把前几个字节提取出来与 233 异或。发现最终结果是png字节流文件尾的逆序。
在这里插入图片描述
在这里插入图片描述
编写脚本,将这些数据提取出来,异或,然后逆序重新写入成png

from binascii import *

data = ''
with open('书鱼的多重文件.wav', 'rb') as f:
	with open('flag.png', 'wb') as f1:
		for idx in range(0x9e, len(f.read()), 10):
			f.seek(idx)
			data += '{:02x}'.format(ord(f.read(1)) ^ 233)
		data = data[::-1]
		for i in range(0, len(data), 2):
			hex_data = data[i:i+2][::-1]
			f1.write(unhexlify(hex_data))

得到的png图片无法正常显示,binwalk分析发现,文件前部分都是无效数据,png图片被附加在了这些无效数据之后,foremost分离即可

二、提取blue通道数值并转换写成zip文件

在这里插入图片描述
Stegsolve的Data Extract查看并不像隐写了文件数据,猜测应该是对颜色动了手脚,使用 PS 打开,发现图片的前两行像素确实颜色一场,查看blue通道的数值,发现是 50 的十进制。继续提取前几个像素的blue数值,发现是 50 4B 03 04 的zip文件头。
在这里插入图片描述
编写脚本提取blue通道数值并转换写成zip文件

from PIL import Image
from binascii import *


img = Image.open('flag.png')
width, height = img.size
with open('flag.zip', 'wb') as f:
	for h in range(2):
		for w in range(width):
			blue = '{:02x}'.format(img.getpixel((w, h))[2])
			f.write(unhexlify(blue)

三、输入法九键+国际区号解密码

在这里插入图片描述
输入法九键226232是 Canada ,加拿大

在这里插入图片描述
国际手机号码开头,区号:

https://cwlwxr.github.io/s3n62u57_/

在这里插入图片描述
发现这些国家的区号代码,都有一至三四位数字,对应右边的数字,猜测右边的数字就是这些国家地区的区号代码下标,即得到:

226232	1	=>	1
	Canada
23442647826	1	=>	9
	Afghanistan
528842	3	=>	1
	Latvia
5893626874	3	=>	2
	Luxembourg
46342	2	=>	1
	India
6443742	1	=>	2
	Nigeria
473323	2	=>	0
	Greece
24462	1-2	=>	86
	China
6626	2	=>	6
	Oman
35426884	3	=>	3
	Djibouti
3782867425 484632	2	=>	4
	Equatorial Guinea
2654842    3	=>	1
	Bolivia
2376832    0-3	=>		-440
	Bermuda
52726      1	=>	8
	Japan
1912120866341-440
>>> import hashlib
>>> hashlib.md5('1912120866341-4408'.encode()).hexdigest()
'4d1a3568b2a81c7d958892bf100b3f15

DASCTF{4d1a3568b2a81c7d958892bf100b3f15}
  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2022-03-30 18:19:14  更:2022-03-30 18:21:09 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 20:37:23-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码