目录

  • 一、附加字符串
  • 二、修改图片的宽高
  • 三、jphide图片隐写
  • 四、OutGuess隐写
  • 五、异或隐写
  • 六、盲水印
  • 七、二维码画图
  • 八、灰度图片LSB隐写

一、附加字符串

flag藏在图片中,使用WinHex软件或者记事本打开,搜索发现flag。

二、修改图片的宽高

像这种图片很明显是被修改过高度的,我们使用python脚本得出正常图片的宽高。

import zlib
import structfilename = '1.png'
with open(filename, 'rb') as f:all_b = f.read()crc32key = int(all_b[29:33].hex(),16)data = bytearray(all_b[12:29])n = 4095  for w in range(n):          width = bytearray(struct.pack('>i', w))     for h in range(n):height = bytearray(struct.pack('>i', h))for x in range(4):data[x+4] = width[x]data[x+8] = height[x]crc32result = zlib.crc32(data)if crc32result == crc32key:print("宽为:",end="")print(width)print("高为:",end="")print(height)exit(0)

得出的结果是:

使用软件WinHex打开那张图片,就能看到当前的图片的高是不对的:

在WinHex里把高改成01 df就可以了,得到正常图片:

三、jphide图片隐写

使用小程序stegdetect来检测图片是不是用了jphide隐写。
在cmd中使用这个代码:stegdetect.exe -tjopi -s 10.0 jphide.jpg

密码破解使用字典,代码为stegbreak.exe -r rules.ini -f password.txt jphide.jpg,得到密码为power123

再使用软件Jphswin来破解图片:

打开这个图片:

点击Seek,输入破解到的密码,再另存为txt文件就能得到flag。

四、OutGuess隐写

需要在kali虚拟机里面使用outguess工具。

安装方法是:

git clone https://github.com/crorvick/outguess
# 进入outguess的目录
./configure && make && make install

一般图片属性-详细信息-备注里面会有图片的Key

把图片文件复制到虚拟机里面,然后使用代码outguess -k gUNrbbdR9XhRBDGpzz -r outguess.jpg -t 1.txt能得到结果文件。

五、异或隐写

这个图片需要用Stegsolve这个工具进行反色,点击上面“>”按钮得到:

再把下面的图片进行异或处理

用这个Image Combiner功能

最后用工具QR Research进行扫描,就可以得到结果

六、盲水印


当一张图片的WinHex里面有这些东西,说明这个图片有盲水印,先在kali里面使用binwalk,binwalk -e 1.png --run-as=root得到了很多文件。

把压缩文件复制到实体机,得到两张盲水印图片:

使用python bwmforpy3.py decode day1.png day2.png flag.png --oldseed即可得到flag图片。

七、二维码画图


有时候题目中会给这么一大串的0和1的组合,这时需要用到python脚本来进行画出二维码。

from PIL import Image
MAX = 60    #二维码长宽
pic = Image.new("RGB",(MAX, MAX))
str=" " #二进制数据
i=0
for y in range (0,MAX):for x in range (0,MAX):if(str[i] == '1'):pic.putpixel([x,y],(0, 0, 0))else:pic.putpixel([x,y],(255,255,255))i = i+1
pic.show()
#pic.save("flag.png")
  • 如果电脑上没有安装PIL库,可以使用命令pip install Pillow来安装一下。

    如果给的是这种坐标,也是需要用python脚本画图。
from PIL import Image, ImageDraw, ImageFont, ImageFilter
f1 = open(r'flag.txt','r')
width = 300
height = 300
image = Image.new('RGB', (width, height), (255, 255, 255))
draw = ImageDraw.Draw(image)
color = (0,0,0)
while 1:s = f1.readline()if not s:breaks = s.strip('\n')s = s.lstrip('(')s = s.rstrip(')')a = int(s.split(',')[0],10)b = int(s.split(',')[1],10)draw.point((a, b), fill=color)
image.show()

八、灰度图片LSB隐写

如果一个题目给的是一张灰度图片,那么大概率是进行了LSB隐写,使用python脚本解码即可出现结果。

from PIL import Image
p = Image.open('1.png').convert('L')
a,b = p.sizeflag = Image.new('L',(a,b),255)
for y in range(b):for x in range(a):if  p.getpixel((x,y))%2==0:flag.putpixel((x,y),255)else:flag.putpixel((x,y),0)
flag.show()

简单讲述几种查找图片中隐藏Flag的方法相关推荐

  1. 查找图片中隐藏的字符串

    查找图片中隐藏的flag 执行代码 import requests import threading import time a=[] q=time.time() def ctf(i,se):se.a ...

  2. Linux几种检测rootkit隐藏进程的方法

    Rootkit通常会隐藏进程,隐藏文件和网络连接.这里主要记录几种对隐藏进程的检测方法 一. 隐藏进程的方法 1.1 用户级Rootkit 通过LD_PRELOAD来hook libc库,从而过滤/p ...

  3. 最简单的6种防止数据重复提交的方法!(干货)

    有位朋友,某天突然问磊哥:在 Java 中,防止重复提交最简单的方案是什么? 这句话中包含了两个关键信息,第一:防止重复提交:第二:最简单. 于是磊哥问他,是单机环境还是分布式环境? 得到的反馈是单机 ...

  4. php 计算字符串相邻最大重复数_php查找字符串出现次数的方法

    本文实例讲述了php查找字符串出现次数的方法.分享给大家供大家参考.具体方法如下: 在php中查找字符串出现次数的查找可以通过substr_count()函数来实现,下面就来给大家详细介绍这些函数. ...

  5. php 查找数组指定元素,PHP查找与搜索数组元素方法总结

    本文实例讲述了PHP查找与搜索数组元素方法.分享给大家供大家参考.具体分析如下: 查找.筛选与搜索数组元素是数组操作的一些常见功能.下面来介绍一下几个相关的函数. in_array()函数 in_ar ...

  6. 【Unity 知识点】Unity 如何查找被隐藏的游戏对象

    1.第一种方式比较繁琐,就是通过foreach语句. foreach (Transform button in child.transform)              {              ...

  7. 查找窗口隐藏了怎么办_如何快速查找网站管理页面

    很多时候,对任何URL进行扫描以查找其漏洞时,渗透测试者或安全研究人员都会尝试查找管理页面(" admin",控制面板或登录名). 登陆任何网站的任何管理页面是任何网站的严重漏洞. ...

  8. 【Python自动化任务】让运维更简单的7种定时任务实现方式,总有一种适合你的场景

    想要看更加舒服的排版.更加准时的推送 关注公众号"不太灵光的程序员" 每日八点有干货推送 有粉丝留言问什么时候可以写一个关于自动化任务的文章 准备上!~ 感觉有用关注公众号 &qu ...

  9. 让生活变得简单的60种方法

    让生活变得简单的60种方法 60 Ways To Make Life Simple Again [zz]来自:http://www.marcandangel.com/2010/11/01/60-way ...

最新文章

  1. mysql如何提高其查询速度的方法
  2. 各种安卓对话框代码合集
  3. 【消息中间件】Spring整合RabbitMQ
  4. [androd] android的在线源码网站,各个版本都有(目前已到俺android 4.2,但不包含kernel部分的代码)
  5. 【转载】如何清晰地表达信息
  6. 手把手教你将pyqt程序打包成exe(1)
  7. 机器学习实战:GBDT Xgboost LightGBM对比
  8. C#OOP之一面向对象简介
  9. android touch事件坐标原点,Android – 捏缩放ontouch事件坐标
  10. 【操作系统/OS笔记02】操作系统的历史、操作系统结构
  11. python实用技巧(二)
  12. python成功之路,Day1-发展历史
  13. 表格制作模块xlwt
  14. android qq群加群代码,QQ群一键强制加群API源代码
  15. 庞皓计量经济学第四版_庞皓《计量经济学》(第4版)全套资料【教材+笔记+题库】...
  16. PDF中加入HTML,将PDF导入/嵌入到HTML中(For PDF)
  17. Markdown中插入excel表的简便方法
  18. 一起来回忆一些经典的台词吧~~
  19. Unity Bone weights do not match bones.
  20. Vue3折叠面板(Collapse)

热门文章

  1. Oracle入门笔记(三)——Oracle数据类型
  2. 什么是服务器?超详细
  3. 新年签通用php,C#开发微信门户及应用微信现金红包的封装及使用
  4. spring注解详解与用法(总览)
  5. 前端网页兼容电脑笔记本分辨率放大125%、150%的办法
  6. {} == {} 结果为什么是false?
  7. 关于hibernate 更新或者删除报错different object with the same identifier
  8. EDMA SEED 例程
  9. 【Rust日报】2022-12-11 EDMA:用 Rust 编写的嵌入式数据库管理终端应用程序
  10. html中如果设置颜色为半透明状态,css如何利用transparent属性设置透明度?