欢迎光临散文网 会员登陆 & 注册

ctf2

2022-11-11 10:53 作者:温柔的烟火  | 我要投稿



Flask_FileUpload

F12发现只能上传,jpg,png文件,

可以看到

且给出提示,python 的文件

<!-- Give me the file, and I will return the Running results by python to you! -->

确实应该想到写一个python然后在重名为png格式提交

但是即便这样可能写代码还是不知道写什么上去

import os

os.system('find /* | grep flag')


解释:

os 是python 的一个头文件,主要操作文件,文件夹


下面列出一些函数:

os.getcwd()   获取当前工作的路径

os.listdir(path) 传入任意一个path路径,返回的是该路径下所有文件和目录组成的列表

os.walk(path)  传入任意一个path路径,深层次遍历指定路径下的所有子文件夹,返回的是一个由路径、文件夹列表、文件列表组成的元组。

os.mkdir(path) 传入路径创建文件夹

os.rmdir(path)   传入一个path路径,删除指定路径下的文件夹

os的system原理:

 system函数可以将字符串转化成命令在服务器上运行;其原理是每一条system函数执行时,其会创建一个子进程在系统上执行命令行,子进程的执行结果无法影响主进程

用来解释命令很合适,find /* | grep flag    表示在根目录下,通过管道来寻找有关flag的目录文件


可以看到

<!-- /flag

/proc/sys/kernel/acpi_video_flags

/proc/sys/kernel/sched_domain/cpu0/domain0/flags

/proc/sys/kernel/sched_domain/cpu0/domain1/flags

/proc/sys/kernel/sched_domain/cpu1/domain0/flags

/proc/sys/kernel/sched_domain/cpu1/domain1/flags

/proc/sys/kernel/sched_domain/cpu2/domain0/flags

/proc/sys/kernel/sched_domain/cpu2/domain1/flags

/proc/sys/kernel/sched_domain/cpu3/domain0/flags

/proc/sys/kernel/sched_domain/cpu3/domain1/flags

/proc/kpageflags

/sys/devices/pnp0/00:04/tty/ttyS0/flags

/sys/devices/pnp0/00:05/tty/ttyS1/flags

/sys/devices/virtual/net/lo/flags

/sys/devices/virtual/net/eth0/flags

/sys/devices/platform/serial8250/tty/ttyS2/flags

/sys/devices/platform/serial8250/tty/ttyS3/flags

/sys/module/scsi_mod/parameters/default_dev_flags -->

大致会出来这些东西,然后看到/flag

写一个os.system('cat /flag')即可继续提交

看到

flag

就可以了





简单的图片

下载后,用记事本打开,

&amp;#107;&amp;#101;&amp;#121;&amp;#123;&amp;#121;&amp;#111;&amp;#117;&amp;#32;&amp;#97;&amp;#114;&amp;#101;&amp;#32;&amp;#114;&amp;#105;&amp;#103;&amp;#104;&amp;#116;&amp;#125



而&amp;#xxx; 著名的html实体编码所以接下来在改成html

打开之后可得

这个就是,不能老想是flag,这个key也是头,当然他题目也有提示




隐写

给了这么一个图片,让你找flag

我看到预览图后面确实有字,但是打开之后就没了

差不多可以看到

一般我们会想到图片的高度的问题

使用的工具一般提及的是

winhex以及tweakpng

这两个工具,下载的话,网上搜索的话是很容易的,当然我还留着的话你问我我可以给的


那么怎么写这个题呢,我第一开始的思路,是换成文本看看

发现并没有什么可以看到的有用的信息,基本是乱码

那么评论说使用winhex看看,我试试


WinHex打开图片,“89504E0D0A1A0A”说明这是PNG图片,“0000000D”表示IHDR头部是13个字节,“000001F4”是宽度,“000001A4”是高度(以像素为单位),修改A4为F4,保存查看图片


修改



修改之后就有了

看到字出来

补充:

winhex到底是这个什么工具呢,能干设么呢

看二进制数据的

可能有部分的数据损坏了,对其二进制数据进行修改可以修复或者有不一样的效果



图像二进制文件在表达什么:


直接看博客学习就好,了解

给出一些例子

2.2.1、第0行开始:

转载


文件署名域:开头"8950 4e47 0d0a 1a0a"固定数据表示文件格式是PNG ;


第一个数据块:文件头数据块IHDR(含有PNG文件中存储的图像数据基本信息,是关键数据块):


Length:前4个字节"0000 000d"代表IHDR块长度为13字节(可变);


Chunk Type Code:固定4个字节数据为"4948 4452"(为IHDR标识,该ASCII码代表英文字符"IHDR");


Chunk Data:IHDR数据块的具体内容如下:

0000 04D0图像的宽,1232像素

0000 0404图像的高,1028像素

08 表示色深,这里是2^8=256,即这是一个256色的图像

00 颜色类型,查表可知这是灰度图像

00 PNG Spec规定此处总为0(非0值为将来使用更好的压缩方法预留),表示使压缩方法(LZ77派生算法)

00 同上

00 非隔行扫描

可知总长度正好是13字节。

CRC校验码:最后4个字节为:9E F6 B9 00 


2.2.2、第20行,offset=01开始:tIME数据块(辅助数据块),包含文件最后修改时间信息;只需该知道数据块长度为7,数据块类型码为"74 49 4D 45",跳过7(data)+ 4(CRC)个字节后是新的数据块IDAT;

转载



2.2.3、第30行,offset=04开始:IDAT数据块(关键数据块),包含最重要的图像实际内容。长度为"00 00 20 00",8192个字节;数据块类型码为"49 44 41 54";注意由于图片总共有1232x1028个像素,每个像素占1字节,因此应当有1232x1028/8192 = 155 个IDAT数据块,每个数据块后都有4个字节的CRC校验码;


2.2.4、第33029行,offset=02开始:实际数据长度为0的IEND数据块(关键数据块),代表文件内容的结束,通常固定为"00 00 00 00 (数据块长度)49 45 4E 44(数据块类型码) AE 42 60 82(CRC)"。PS:在IEND块后面添加任何的字符都不会对文件打开造成影响。

转载

3.bmp格式

注意:文件中所有数据都是以字节为单位,低位在前,读实际数据时需要以字节为单位反序读取。

转载

数据段名称 大小(Byte)

bmp文件头 14

bmp信息头 40

调色板信息 由颜色索引数决定

位图数据(有效数据) 由图像真实分辨率决定

bmp文件头数据结构:


bmp信息头数据结构:


文件中具体内容:

转载

在读取真实像素数据时,参数bfOffbits是最重要的,能快速定位数据所在位置,这对于实际应用来说最直截了当。如图中地址偏移量(红色框)实际为0x00_00_04_36 = 1078d,水平方向像素个数为0x00_00_04_D0 = 1232d,垂直方向像素个数为0x00_00_04_04 = 1028d,灰度图位深为8,符合要求-》https://blog.csdn.net/swordjun/article/details/108667926





1和0 的故事

给的是一个文本文件

如图所示,给的文件

首先我想的是看看图片文件如何

是破损的文件,不太适合,毕竟都是0和1,二进制文件?

评论说放在excel里面,我试试(还有说用python暂时不研究,不够都挺神奇的)

数据是25行25列  -》想到二维码

以字符串的形式放在excel里面

那么使用excel的一些方法将睡着分裂

点点就可以分开,这个方法在导航栏里面,选数据,再选分裂列
设置行高,列宽

然后设置行高15.1,列宽2

替换

使用ctrl+H  替换


填充结果
查找所有1

使用查找的时候,在下拉框中选中所有,即可定位所有的1


然后将选中的1替换背景为黑色

如图:

如图

这里如果有左上角的绿三角的话,一般是类型错误,可以全选然后忽略就好

然后就可以扫码了,如果不可以扫的话,那么你可以试试调整行高

二维码是怎么生成:

二维码原理:


ctf2的评论 (共 条)

分享到微博请遵守国家法律