[LitCTF 2023]ssvvgg(Steghide爆破)

简介: [LitCTF 2023]ssvvgg(Steghide爆破)

关于SVG的简介:


SVG格式文件是可缩放矢量图形文件的缩写,是一种标准的图形文件类型,用于在互联网上渲染二维图像。与其他流行的图像文件格式不同,SVG格式文件将图像存储为矢量,这是一种基于数学公式由点、线、曲线和形状组成的图形。图像文件格式可以分为两类:光栅图形和矢量图形。


我们熟知的PNG和JPEG就是光栅图形格式,它们将图像信息存储在彩色正方形网格中,也称为位图。该位图中的正方形组合在一起形成一个连贯的图像,很像计算机屏幕上的像素。光栅图形适用于需要指定每个像素的确切颜色的照片等高度详细的图像,具有固定的分辨率,因此增加大小会降低图像的质量。


矢量图形格式(如 SVG 和 PDF)的工作方式不同,矢量格式将图像存储为一组点和点之间的线,数学公式决定了这些点和线的位置和形状,并在放大或缩小图像时保持它们的空间关系,矢量图形文件还存储颜色信息,甚至可以显示文本。


使用010editor打开附件,发现一串base64编码,尝试解码

从开头可以看出是jpg格式,将文件保存

并且我们在结尾可以看到steghide并且密码为6位数字

关于Steghide的介绍:


这是一个命令行软件,可以用来将文件隐藏在图片或音频文件中,当然也可以从隐藏有文件的图片或音频中把隐藏文件提取出来,但是需要密钥。


假设密码是123456


该命令的用法:


将secret.txt文件隐藏到my.jpg中:steghide embed -cf my.jpg -ef secret.txt -p 123456


从my.jpg中提取出secret.txt文件:steghide extract -sf my.jpg -p 123456


由于steghide本身不具备爆破密码的功能,这里我们需要借助shell脚本

脚本1:

#bruteStegHide.sh 
#!/bin/bash
for line in `cat $2`;do
    steghide extract -sf $1 -p $line > /dev/null 2>&1
    if [[ $? -eq 0 ]];then
        echo 'password is: '$line
        exit
    fi  
done 

脚本2:

#!/bin/bash
if [ $# -lt 2 ]; then
    echo "Usage: $0 [steghide file] [dictionary file]"
    exit 1
fi
file=$1
dict=$2
if [ ! -f $file ]; then
    echo "Error: File not found: $file"
    exit 1
fi
if [ ! -f $dict ]; then
    echo "Error: Dictionary not found: $dict"
    exit 1
fi
while read password; do
    if steghide extract -sf $file -p $password &> /dev/null; then
        echo "Password found: $password"
        exit 0
    else
        echo "Trying: $password"
    fi
done < $dict
echo "Password not found"
exit 1

在使用脚本前,我们还需要自己先创建用来爆破的密码字典

使用crunch命令,因为密码是6位的数字,我们创建000000-999999的字典即可

关于crunch命令的用法:


crunch <min-len> <max-len> [<charset string>] [options]


min-len crunch要开始的最小长度字符串,max-len crunch要开始的最大长度字符串,charset string 是指定设置的字符集,否则将使用缺省的字符集设置,缺省的设置为小写字符集,大写字符集,数字和特殊字符(符号),options则是后面可以追加的一些参数。


使用脚本进行爆破


我们使用./来执行脚本,如果权限不够就使用chmod命令,755表示加上可执行权限

执行脚本:./脚本名 要爆破的图片名 密码字典

这里要说一下:

爆破到正确key时会自动将txt文档分离出来,如果已经存在分离出txt时,再次爆破是找不到密码的

通过爆破得知密码是666666,且自动分离出了一个flag.txt

打开即可看到flag

此时已经存在这个flag.txt了,我们知道密码是666666,但是我们再去跑脚本

你会发现提示密码未找到,这是因为已经存在被分离出的文件

当然我们如果已经知道密码,也可以steghide命令直接提取

最终flag为

NSSCTF{svg?_base642png!&steghide!}

目录
相关文章
|
SQL Java 数据库连接
Hive教程(08)- JDBC操作Hive
Hive教程(08)- JDBC操作Hive
2150 0
|
存储 供应链
flexsim仿真模型-MC公司下游仓库管理仿真实验(下)
flexsim仿真模型-MC公司下游仓库管理仿真实验
990 0
|
7月前
|
人工智能 缓存 资源调度
AI数字人系统开发全流程:源码选型 + 部署 + 商业化指南
本文从实战角度系统拆解AI数字人项目的完整开发流程,涵盖源码选型策略、系统部署架构设计以及主流商业化路径。针对企业与开发团队在落地过程中常见的成本控制、性能优化与变现模式问题,提供可执行的解决思路,帮助读者从“能跑Demo”迈向“可持续盈利”的数字人业务体系。
|
安全 网络协议 网络安全
2025年第十六届蓝桥杯网络安全CTF国赛总决赛真题详解Writeup(Web漏洞挖掘、Crypto密码学、Misc杂项、Reverse逆向、Pwn二进制漏洞)
2025年第十六届蓝桥杯网络安全CTF国赛总决赛真题详解Writeup(Web漏洞挖掘、Crypto密码学、Misc杂项、Reverse逆向、Pwn二进制漏洞)
2025年第十六届蓝桥杯网络安全CTF国赛总决赛真题详解Writeup(Web漏洞挖掘、Crypto密码学、Misc杂项、Reverse逆向、Pwn二进制漏洞)
|
弹性计算 Linux 数据安全/隐私保护
在已有的 ECS 上重装幻兽帕鲁服务器、迁移到计算巢、或升级计算巢服务版本
现在你可以参考这篇教程,将原来搭建的幻兽帕鲁服务器迁移到计算巢上,享受计算巢上所支持的界面化调整游戏配置(死亡掉落、服务器密码等)。 或者也可以用于重新安装,升级到最新版本的计算巢幻兽帕鲁服务。
35329 8
|
安全 网络安全 网络协议
【信安评估】2024年全国职业院校技能大赛高职组“信息安全管理与评估”安徽省选拔赛赛项规程
【信安评估】2024年全国职业院校技能大赛高职组“信息安全管理与评估”安徽省选拔赛赛项规程
2607 0
【信安评估】2024年全国职业院校技能大赛高职组“信息安全管理与评估”安徽省选拔赛赛项规程
|
人工智能 运维 监控
2025年阿里云服务器配置选择全攻略:CPU、内存、带宽与系统盘详解
在2025年,阿里云服务器以高性能、灵活扩展和稳定服务助力数字化转型,提供轻量应用服务器、通用型g8i实例等多样化配置,满足个人博客至企业级业务需求。针对不同场景(如计算密集型、内存密集型),推荐相应实例类型与带宽规划,强调成本优化策略,包括包年包月节省成本、ESSD云盘选择及地域部署建议。文中还提及安全设置、监控备份的重要性,并指出未来可关注第九代实例g9i支持的新技术。整体而言,阿里云致力于帮助用户实现性能与成本的最优平衡。 以上简介共计238个字符。
|
Java Linux 数据安全/隐私保护
CTF — 图像隐写三板斧
CTF — 图像隐写三板斧
5740 1
|
安全 Python Linux
Volatility2.6内存取证工具安装及入门-1
Volatility2.6内存取证工具安装及入门
2725 0
Volatility2.6内存取证工具安装及入门-1
|
安全 Shell Linux
Webshell管理工具:AntSword(中国蚁剑)
中国蚁剑的下载、安装、详细使用步骤
18720 1

热门文章

最新文章