[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!}

目录
相关文章
|
3月前
|
测试技术 网络安全 数据安全/隐私保护
burpsuite口令爆破的四种模式
burpsuite口令爆破的四种模式
|
4月前
|
算法 安全 PHP
24-9-24-CTFweb爆破-学习笔记
本文档详细记录了CTFshow平台上的Web安全挑战学习过程,包括条件爆破、伪随机数爆破及目录遍历等多种攻击手法。通过分析PHP的`substr()`函数与MD5加密特性,实现对特定条件的token爆破;利用Mersenne Twister算法的伪随机数生成机制破解随机数挑战;通过身份证信息爆破获取账户密码;最后通过目录遍历技术找到隐藏的flag。提供了完整的脚本示例,帮助读者理解和实践各种爆破技巧。
|
4月前
|
数据安全/隐私保护
CTF — 压缩包密码爆破
CTF — 压缩包密码爆破
272 0
|
网络协议 网络安全 数据安全/隐私保护
【渗透】爆破工具Hydra
Hydra是一款强大的工具,可以帮助用户快速地进行密码破解和暴力攻击。如果你看过我之前写的靶机视频,你就会发现,在用大字典时,相对于burp suite,Hydra的表现更为优异,那么我们就来深入了解一下这个爆破神器吧。
294 0
|
XML 开发框架 安全
记一次后门爆破到提权实战案例
记一次后门爆破到提权实战案例
102 0
|
存储 数据安全/隐私保护 计算机视觉
6.暴力破解
暴力破解,是一种针对于密码的破译方法,将密码进行逐个推算直到找出真正的密码为止。例如一个已知是四位并且全部由数字组成的密码,其可能共有10000种组合,因此最多尝试10000次就能找到正确的密码。而当遇到人为设置密码(非随机密码,人为设置密码有规律可循)的场景,则可以使用密码字典(例如彩虹表)查找高频密码,破解时间大大缩短。 设置长而复杂的密码、在不同的地方使用不同的密码、避免使用个人信息作为密码、定期修改密码等是防御暴力破解的有效方法。
6.暴力破解
|
Web App开发 安全 数据安全/隐私保护
BurpSuite进行暴力破解
靶场环境Pikachu 攻击机KALI 工具BurpSuite 1.打开并设置BurpSuite的代理 首先依次点击Proxy-Intercept 在监听的IP前打上勾
334 0
BurpSuite进行暴力破解
|
安全 小程序 Linux
黑客是怎么知道你的密码的
在踏入网络安全领域之前,我也和周围的很多人一样很奇怪,键盘上的组合这么多,黑客是怎么知道我的密码的。其实这一切就是这么简单。 首先,要声明,我不是黑客啊,不要误会,从不干任何违法的事。然后再说一下,任何的防护都是有漏洞的,无数的大佬已经用行动证明了世界上没有不透风的墙,安全永远只是相对的。下面是一些常用的破解密码的方法。
黑客是怎么知道你的密码的
|
安全 JavaScript 数据安全/隐私保护
网站安全-浅谈用户密码暴力破解
网站安全里,用户密码被暴力破解,尤其网站的用户登录页面,以及网站后台管理登录页面,都会遭到攻击者的暴力破解,常见的网站攻击分SQL语句注入攻击,密码弱口令攻击,用户密码暴力破解攻击,跨站攻击XSS等等网站攻击方式。
1631 1
|
安全 关系型数据库 Linux
暴力破解工具Hydra
Hydra是世界顶级的密码暴力破解工具,支持几乎所有协议的在线密码破解,功能强大,密码能否被破解的关键取决于破解字典是否足够强大。在网络安全渗透过程中,Hydra是一款必备的测试工具,配合社工库进行社会工程学攻击,有时会获得意想不到的效果。 本文选自《黑客攻防:实战加密与解密》
6770 0

热门文章

最新文章