当前位置: 首页 > news >正文

还刷刷刷刷刷

ctfshow

Misc17

这题因为提示falg在图片数据里,用binwalk分离无结果

然后尝试使用kali zsteg工具的zsteg -e extradata:0 misc17.png > 1.txt命令提权

因为注册表,重装了kali

只能重装zsteg工具

先使用sudo su命令进入root用户(其具有最高权限

sudo su 命令执行后会让输入密码,(这里是kali的密码)注意,密码是可能不会显示的,不能输错,输完回车即进入root用户

先装zstage工具,命令

sudo apt update

查看可升级的安装包

 

然后使用命令进行更新和安装

sudo apt install -y ruby ruby-dev ruby-bundler zlib1g-dev libpng-dev build-essential

 执行

以上是确保系统更新安装必要的依赖库

接下来通过RubyGems安装zsteg

命令

bash

sudo gem install zsteg

结果发现安装不了,问了deepseek一会儿让我换源一会儿让我通过GiHtub源码直接装,又或者直接命令apt装,还检查了Ruby版本是否兼容,(虽然这些我都不懂,但还是照做了)但发现并没有什么作用

最后在执行 sudo apt update sudo apt install zsteg 时显示警告,域名解析错误,然后判断应该是网络连接有问题,(真fou了,昨天还能用)这里检查了网络连接

ping 8.8.8.8

执行后发现它说网络不可达,所以尝试检查网络接口状态

检查网卡是否启用

bash
ip a

发现还是一大堆我看不懂的(忘了截图)

但如果网卡显示DOWN,则手动启用:

bash

sudo ip link set eth0 up #有线网
sudo ip link set wlan0 up #无线网

然后尝试重新获取ip

bash

sudo dhclient eth0 #有线网
sudo dhclient wlan0 #无线网

然后就发现可用了

那就继续用RubyGems安装zsteg

bash

sudo gem install zsteg

检查是否成功

bash

zsteg --version #输出示例

啥玩意儿?又没成功?

我。。今天全再这装工具了,中午也是为了重装pycharm出了点问题搞了一中午 ,。

算了,继续

既然这样那就应该检查zsteg是否真正安装

bash

which zsteg

这里注意是which,不是where

得到路径

那就说明zsteg已安装,但版本信息丢失

那就尝试命令

bash
            #进入 zsteg 所在目录
cd /user/local/bin  #替换为自己的真实路径
./zsteg --help      #直接运行,看是否能正常使用

(注意第二行和第三行是分两次执行的)

虽然看不懂,但貌似是能正常执行的

那就说明是非正式安装(手动编译或者源码运行我这应该属于后者)

因为刚我是通过gem安装的,那就先验证版本信息

bash

gem list zsteg

得到版本后重新安装强制更新

bash

sudo apt purge zsteg  #卸载现有版本
sudo apt install zsteg  #重新安装

其实第一行bash命令可执行也可不执行,毕竟刚已经进入了

 分两步执行

最后的最后,再来

zsteg --version

我就不信还安装不成功!!!

裂开了,真的,

装这个工具花了不下三小时

但还是尝试使用命令分离一下,竟然发现可用

so?明明可用为什么检测命令zsteg --version显示unknow version??

这个问题从网上找了很多方法还是没解决,既然能用就好,暂时先放一下

因为zsteg检测到misc17.png有隐藏的信息

那么接下来就用zsteg 把misc.png中的隐藏信息“extradata:0”提取到指定文件“s”

zsteg -E 'extradata:0' 图片名 >s #单引号里的即为隐藏信息

然后binwalk分离文件s

binwalk -e 图片名 --run-as=root

然后打开kali下的_s.extracted文件

打开1F1获得flag

misc的题工具很重要,但有时候知识学到的没有多少,装工具却浪费了很多时间

Misc23

题目提示答案在时间里,用notepad++打开没有发现什么

使用kali exiftool 命令

然后就发现了可疑字符串

看到第一行,ctfshow{}典型flag的格式,然后注意到UnixTimestamp这个东东, 上网查了一下,这是官方给的定义

还有背景

什么时间戳不戳的,哎呀看他说那么高端 我理解的所谓溢出就是当32位整数的值超出其表示的范围(就是无法表示了)

如32位整数的表示范围是-2,147,483,648(逗号隔开好看一点)到2,147,483,647,当超出2,147,483,647时就无法表示了,这个就叫溢出

举个例子就是当在32位整数表示范围-2,147,483,648到2,147,483,647的最大值2,147,483,647加1,结果就会相当于“绕回最小值-2,147,483,648。但在这好像没有什么大用途。

接着看DECtoHEX,别的不用管,只用记住它是将十进制数转换为十六进制数函数

然后看到getflag

注意到get flag下面这一行

没错,这个了解一下,没提供什么有用的消息hh

这里是关键:

所以上面的这个提示   ctfshow{}, UnixTimestamp, DECtoHEX, getflag 

解释起来就是用ctfshow{}包裹   先 UnixTimestamp(转换为时间戳)再 DECtoHEX (转换为十六进制结果 就能get flag  有意思有意思

对于时间戳 ,它是从1970年1月1日(UTC/GMT的午夜)开始所经过的秒数(不考虑闰秒),用于表示一个时间点。然而,这种格式对于人类阅读并不友好,因此需要转换成可读的日期和时间格式。时间戳转换工具能够将时间戳快速转换为人类可读的日期时间格式,同时也支持反向转换,即将日期时间转换为时间戳

注意到这四个时间戳

所以这里应该将可读日期转换为时间戳

 就是这个工具 Unix时间戳(Unix timestamp)转换工具 - 站长工具

(这里在找在线转换网站的时候我还发现了另一个转换时间戳的网址,有很多比如Javascript、php、html工具,条形码生成、甚至元素周期表等涉及各学科不仅仅是网络知识的有用工具,放这了在线工具 - 你的工具箱)

那么接下来开始转换时间戳  (这里转换之前不要忘了把年月分隔符:换为 - 刚开始我就忘了,还奇怪怎么转不出来 后面的时间倒不用换,就用:即可)

第一个时间:

第二个时间:

第三个:

最后一个:

所以将四个换成的时间戳就是

874865822 2699237688 2156662245 460377706 #全部转为16进制

然后转十六进制

还是一个个转

1:

2:

3:

4:

最后连起来

3425649ea0e31938808c0de51b70ce6a #转16进制结果

最后包裹ctfshow{3425649ea0e31938808c0de51b70ce6a}

提交正确

相关文章:

  • 洛谷1044栈C语言
  • 2025Java面试TOP1000问:源码级解答+避坑指南+性能优化
  • [C++][STL]unordered_set类和unordered_map类
  • 【MySQL】从零开始:掌握MySQL数据库的核心概念(五)
  • columns实现瀑布流布局
  • ⑦(ACG-网络配置)
  • 06 单目标定-去畸变
  • React Native与原生Android数据传递
  • 【Unity】 鼠标拖动物体移动速度跟不上鼠标,会掉落
  • 学习《JS数据结构与算法》
  • 同步整流和异步整流区别及其各优点
  • vm虚拟机 Ubuntu ping失败情况解决方法
  • Python的迭代器(Iterator)介绍以及实现多次使用
  • SVTAV1热点函数-svt_ext_all_sad_calculation_8x8_16x16_avx2
  • pip 安装某个包之后,Jupyter Lab仍旧显示包冲突;例如:Numba needs NumPy 2.1 or less. Got NumPy 2.2.
  • 热血传奇2超高清重置UI素材
  • Java并发编程
  • SAP-ABAP:OData 协议深度解析:架构、实践与最佳应用
  • 重学Java基础篇—什么是快速失败(fail-fast)和安全失败(fail-safe)?
  • 【Pandas】pandas Series to_xarray
  • 科技 杭州 网站建设/兰州正规seo整站优化
  • 搜点济南网站建设/app001推广平台官网
  • 微信号 网站模板/天天seo百度点击器
  • gta5显示网站建设中/潍坊seo教程
  • 公司软件管理软件/seo 推广
  • 外管局网站 报告怎么做/北京网站制作