渗透测试CTF-图片隐写的详细教程2(干货)

简介: 渗透测试CTF-图片隐写的详细教程2(干货)

 上篇文章我们介绍了这7个工具,这里简单的介绍一下。

Binwalk

用来检测图片中是否有隐藏的文件。

Foremost

将图片中的隐藏文件拆分出来。

010Editor

①修改图片的参数来查看隐藏信息。

②查看压缩包是否是伪加密。

Stegsolve.jar

图片隐写查看神器。

OurSecret

1个图片解密的工具

ARCHPR和Ziperello

暴力破解压缩包的工具。

Zipcenop

专门用来破解伪加密的一个工具。

这里再分享几个工具。

Exif

Exif按照JPEG的规格在JPEG中插入一些图像/数字相机的信息数据以及缩略图象,可以通过与JPEG兼容的互联网浏览器/图片浏览器/图像处理等一些软件来查看Exif格式的图像文件,就跟浏览通常的JPEG图像文件一样。

图片右键属性,查看exif或查看详细信息,在相关选项卡中查找flag信息。

image.gif编辑

有的图片会有GPS定位,如图。

image.gif编辑

Stegolve

当两张jpg图片外观、大小、像素都基本相同时,可以考虑进行综合分析,即将两个文件的像素RGB值进行XOR、ADD、SUB等操作,看能否得到有用的信息,StegSolve可以方便的进行这些操作。

使用场景:两张图片信息基本相同

    1. 打开第一张图片,点击analyse->image combiner

    image.gif编辑

    2.在弹出的窗口中点击左右按钮选择处理方式,点击save保存有价值的结果。

    我这里只是随便放了一张图,出题人有时候会给两张基本一样的图片,可以在这里尝试一下,会有意外的收获,比如说打开第二张图片后,点击左右按钮会看到flag或者二维码这样子。

    image.gif编辑

    LSB(最低有效位)

    LSB替换写基本思路是用嵌入的秘密信息取代载体图像的最低比特位,原来的7个高位平面与替代秘密信息的最低为平面组合成含隐藏信息的新图形。

      1. 像素三原色(RGB)
      2. 通过修改像素中最低位的1bit来达到隐藏的效果。
      3. 工具:stegsolve、zsteg、python脚本

      stegsolve.jar 检测LSB隐写

      打开文件>>analyse>>data extract

      image.gif编辑

      2.调整Bit Planes、Bit Order、Bit Plane Order

      image.gif编辑

      Zsteg工具 检测LSB隐写

      使用方式:zsteg xxx.png

      这个工具在kali里面自带有,可以直接使用。

      image.gif编辑

      Wbstego4工具

      解密通过lsb加密的图片

      image.gif编辑

      如图,可以看到,它支持bmp,txt,html和pdf文件。

      如果我们拿到的图片是jpg,png等格式,我们可以直接用画图工具直接将图片格式转换一下。

      这里是要输入密码的,没有的可以跳过

      image.gif编辑

      然后就解密成功,如果打开是乱码的话,我们可以用010editor打开,去找是否有flag。

      TeakPNG

      TweakPNG是一款简单易用的PNG图像浏览工具,它允许查看和修改一些PNG图像文件的元信息存储。

      使用场景:文件头正常却无法打开文件,利用TweakPNG修改CRC。

      举个例子:

      1.当PNG文件头正常但无法打开文件,可能是CRC校验出错,可以尝试通过TweakPNG打开PNG,会弹出校验错误的提示。

      image.gif编辑

      如图,我们可以看到正确的crc应该是ce5dec1d,我们打开010editor去修改一下就可以了。

      image.gif编辑

      Bftools

      Bftools用于解密图片信息

      使用场景:在windows的cmd下,对加密过的图片进行解密

      格式:

      Bftools.exe decode braincopter 图片名字 --output 输出的文件名

      Bftools.exe run 输出的文件名

      bftools.exe decode braincopter 1.png --output 2.png

      bftools.exe run 2.png

      相关文章
      |
      1月前
      |
      测试技术 API Android开发
      《手把手教你》系列基础篇(九十七)-java+ selenium自动化测试-框架设计篇-Selenium方法的二次封装和页面基类(详解教程)
      【7月更文挑战第15天】这是关于自动化测试框架中Selenium API二次封装的教程总结。教程中介绍了如何设计一个支持不同浏览器测试的页面基类(BasePage),该基类包含了对Selenium方法的二次封装,如元素的输入、点击、清除等常用操作,以减少重复代码。此外,页面基类还提供了获取页面标题和URL的方法。
      44 2
      |
      1月前
      |
      Web App开发 XML Java
      《手把手教你》系列基础篇(九十六)-java+ selenium自动化测试-框架之设计篇-跨浏览器(详解教程)
      【7月更文挑战第14天】这篇教程介绍了如何使用Java和Selenium构建一个支持跨浏览器测试的自动化测试框架。设计的核心是通过读取配置文件来切换不同浏览器执行测试用例。配置文件中定义了浏览器类型(如Firefox、Chrome)和测试服务器的URL。代码包括一个`BrowserEngine`类,它初始化配置数据,根据配置启动指定的浏览器,并提供关闭浏览器的方法。测试脚本`TestLaunchBrowser`使用`BrowserEngine`来启动浏览器并执行测试。整个框架允许在不同浏览器上运行相同的测试,以确保兼容性和一致性。
      47 3
      |
      1月前
      |
      存储 Web App开发 Java
      《手把手教你》系列基础篇(九十五)-java+ selenium自动化测试-框架之设计篇-java实现自定义日志输出(详解教程)
      【7月更文挑战第13天】这篇文章介绍了如何在Java中创建一个简单的自定义日志系统,以替代Log4j或logback。
      133 5
      |
      1月前
      |
      设计模式 测试技术 Python
      《手把手教你》系列基础篇(九十二)-java+ selenium自动化测试-框架设计基础-POM设计模式简介(详解教程)
      【7月更文挑战第10天】Page Object Model (POM)是Selenium自动化测试中的设计模式,用于提高代码的可读性和维护性。POM将每个页面表示为一个类,封装元素定位和交互操作,使得测试脚本与页面元素分离。当页面元素改变时,只需更新对应页面类,减少了脚本的重复工作和维护复杂度,有利于团队协作。POM通过创建页面对象,管理页面元素集合,将业务逻辑与元素定位解耦合,增强了代码的复用性。示例展示了不使用POM时,脚本直接混杂了元素定位和业务逻辑,而POM则能解决这一问题。
      43 6
      |
      1月前
      |
      设计模式 Java 测试技术
      《手把手教你》系列基础篇(九十四)-java+ selenium自动化测试-框架设计基础-POM设计模式实现-下篇(详解教程)
      【7月更文挑战第12天】在本文中,作者宏哥介绍了如何在不使用PageFactory的情况下,用Java和Selenium实现Page Object Model (POM)。文章通过一个百度首页登录的实战例子来说明。首先,创建了一个名为`BaiduHomePage1`的页面对象类,其中包含了页面元素的定位和相关操作方法。接着,创建了测试类`TestWithPOM1`,在测试类中初始化WebDriver,设置驱动路径,最大化窗口,并调用页面对象类的方法进行登录操作。这样,测试脚本保持简洁,遵循了POM模式的高可读性和可维护性原则。
      27 2
      |
      1月前
      |
      XML Java 测试技术
      《手把手教你》系列基础篇(九十一)-java+ selenium自动化测试-框架设计基础-Logback实现日志输出-下篇(详解教程)
      【7月更文挑战第9天】在Java项目中,使用Logback配置可以实现日志按照不同包名输出到不同的文件,并且根据日志级别分开记录。
      52 4
      |
      1月前
      |
      XML 测试技术 数据格式
      《手把手教你》系列基础篇(八十五)-java+ selenium自动化测试-框架设计基础-TestNG自定义日志-下篇(详解教程)
      【7月更文挑战第3天】TestNG教程展示了如何自定义日志记录。首先创建一个名为`TestLog`的测试类,包含3个测试方法,其中一个故意失败以展示日志。使用`Assert.assertTrue`和`Reporter.log`来记录信息。接着创建`CustomReporter`类,继承`TestListenerAdapter`,覆盖`onTestFailure`, `onTestSkipped`, 和 `onTestSuccess`,在这些方法中自定义日志输出。
      37 6
      |
      1月前
      |
      XML Java 测试技术
      《手把手教你》系列基础篇(九十)-java+ selenium自动化测试-框架设计基础-Logback实现日志输出-中篇(详解教程)
      【7月更文挑战第8天】这篇教程介绍了如何使用Logback将Java应用的日志输出到文件中。首先,通过创建`logback.xml`配置文件,设置`FileAppender`来指定日志文件路径和格式。然后,提供了一个`RollingFileAppender`的例子,用于每日生成新的日志文件并保留一定天数的历史记录。文中包含配置文件的XML代码示例,并展示了控制台输出和生成的日志文件内容。教程最后提到了一些可能遇到的问题及解决建议。
      24 0
      《手把手教你》系列基础篇(九十)-java+ selenium自动化测试-框架设计基础-Logback实现日志输出-中篇(详解教程)
      |
      1月前
      |
      Java 关系型数据库 测试技术
      《手把手教你》系列基础篇(八十九)-java+ selenium自动化测试-框架设计基础-Logback实现日志输出-上篇(详解教程)
      【7月更文挑战第7天】Apache Log4j2的安全漏洞促使考虑使用logback作为替代的日志框架。Logback由log4j创始人设计,提供更好的性能,更低的内存使用,并且能够自动重载配置文件。它分为logback-core、logback-classic(实现了SLF4J API)和logback-access(用于Servlet容器集成)三个模块。配置涉及Logger、Appender(定义日志输出目的地)和Layout(格式化日志)。
      40 1
      |
      1月前
      |
      Java 测试技术 Apache
      《手把手教你》系列基础篇(八十六)-java+ selenium自动化测试-框架设计基础-Log4j实现日志输出(详解教程)
      【7月更文挑战第4天】Apache Log4j 是一个广泛使用的 Java 日志框架,它允许开发者控制日志信息的输出目的地、格式和级别。Log4j 包含三个主要组件:Loggers(记录器)负责生成日志信息,Appenders(输出源)确定日志输出的位置(如控制台、文件、数据库等),而 Layouts(布局)则控制日志信息的格式。通过配置 Log4j,可以灵活地定制日志记录行为。
      39 4

      热门文章

      最新文章