CTF misc总结

一、图片篇

1.png

(1)宽高

a.手动修改宽高

下面来看看png的二进制格式

png的固定头:前8字节:89 50 4E 47 0D 0A 1A 0A
png的固定尾:00 00 00 00 49 45 4E 44 AE 42 60 82

图片宽:00 00 02 A7
图片高:00 00 01 00
crc校验:6D 7C 71 35

 crc循环冗余码用来校验图片在传输过程中有没有出差,CTF中常用来进行宽高的爆破

用buuctf中的题目举例:

打开为一张图片,推测是高度太小了我们将高度改大一点原来为00 00 01 00改为00 00 11 00看到答案

b.宽高爆破

利用CRC的校验值不断修改宽高就行了,网上可参考相应脚本

(2)LSB隐写

图片颜色由红绿蓝三颜色通道构成,在最低位进行修改颜色发生的变化是肉眼察觉不到的,达到信息隐藏的效果。

参考buuctf 的题目LSB

 加载图片到stegsolve工具进行分析,勾选LSB,勾选red,green,blue最低位。preview后看到出现png的头。保存png图片为二维码图片,扫描即可得到flag。

(3)动图apng使用专门的apng工具分离

(4)盲水印隐写

E:\Python36\python.exe bwmforpy3.py decode  blind1.png blind2.png flag.png  得到flag

一张图片的盲水印提取工具:Watermark.exe

(5)图片分离命令
binwalk -e 1.png
binwalk -eM 1.png
dd if=1.png of=flag.png skip=1111 bs=1
foremost 1.jpg -o 保存文件夹

分离工具同样可以用到别的文件上。

(6)Tweakpng获取正确CRC

2.JPG

固定头:FFD8FF;文件尾:FF D9

(1)查看图片附件信息

exiftool查看图片附件信息,其它文件也适用

exiftool 1.jpg

(2)查看图片隐藏信息

outguess -k 'key' -r 图片 flag.txt

有时密码是空的,有时需要猜测

steghide extract -sf 1.jpg -p 123456

工具jphswin提取图片隐藏信息

Stegdetect工具可以检测JSteg、JPHide、OutGuess、Invisible Secrets、F5、appendX和Camouflage等这些隐写工具隐藏的信息

(3)修改宽高

ctfshow misc入门27,有模板脚本非常方便修改文件结构,直接在WORD Y_image处修改图片高度为255就可以看到flag

3.BMP图片

1.修改宽高

运行bmp模板直接找到对应位置修改就行

4.gif

使用分离工具,或者脚本分离

修改宽高

搜索2c后5,6字节代表宽,7,8字节代表高,每一帧都要修改。

隐藏信息

不同帧之间的间隔时间来隐写identify -format "%T " misc.gif > 1.txt

二.影像音频

1.wav

音频能够传输图片,播放音频

使用MMSSTV工具接收即可

波形隐写,频谱隐写。使用audacity分析即可

工具点点看就行

silenteye工具获取隐藏信息

2.MP3

MP3隐写使用

./decode -X -P 123466  flag.mp3

-p参数为密码,-x为提取

 三、压缩包

1.zip

a.密码爆破
b.明文攻击
c.字典攻击
d.掩码爆破

都可以使用工具Advanced Archive Password Recovery

可使用

zipfile 库编写python代码
e.伪加密

     50 4B 01 02为目录中文件文件头标记 
     1F 00:压缩使用的 pkware 版本  
     14 00:解压文件所需 pkware 版本  
     00 00:全局方式位标记(此处需要修改)

50 4B 03 04伪压缩文件头

开头50 4B 03 04后第三个和第四个字节是00 00、而50 4B 01 02后第五个和第六个字节是00 09,或开头50 4B 03 04后第三个和第四个字节是00 09、而50 4B 01 02后第五个和第六个字节是00 00,那么就是伪加密

将09 00改为00 00

使用binwalk -e无视伪加密

f.CRC明文爆破

工具https://github.com/theonlypwner/crc32

我们创建一个txt文件里面写上“flag",获取文件crc,可以看到或到了4字节的flag

python crc32.py reverse 0xd1f4eb9a

如果是多个文件

import zipfile
import subprocess
import re
file_handler=zipfile.ZipFile('1.zip')
name_list=file_handler.namelist()
crc_list=[]
print(sorted(name_list))
for i in sorted(name_list):
    name_info=file_handler.getinfo(i)
    crc_list.append(hex(name_info.CRC))
    print(i)
h=""
for crc in crc_list:
    s=subprocess.run(['python','crc32.py','reverse',crc],capture_output=True,text=True)
    h+=s.stdout
print(re.findall(r'.*5 bytes: (.*) (OK)*.',h))

 随便写个联动代码

1.txt内容:"flag_",2.txt内容:"kali_",3.txt:"kali_",4.txt:"6666_"。代码灵活多变,还是要会写代码。

2.rar

a.伪加密

找到24个字节,该字节尾数为4表示加密,0表示无加密,将尾数改为0即可破解伪加密

伪加密下压缩包报错

b.winrar压缩包修复
c.爆破

rarcrack 文件名 --threads 线程数 --type rar(zip)(7z)

四、office文件

工具Advanced Office Password Recovery 破解Word、Excel、PPT文件密码

五、wireshark流量分析

frame:物理层

Ethernet II,Src 数据链路层

internert Protocl version 4:网络层

transmission control protocol,src port:传输层信息

搜索了一下http协议,多出了两个信息

Hypertext Transfer Protocol应用层

data为传输数据

wirshark常用指令

ip.src==192.168.0.1/24 指定网段源ip

ip.dst==192.168.0.1 指定目的IP

ip.addr==192.168.0.1 指定ip

tcp.port==22 指定端口

udp.port==22 指定端口

http:应用过滤器,只显示HTTP流量

obex:                  蓝牙协议 为   obex协议
http && http.request.method==POST
http contains flag   //搜索flag

usb键盘和鼠标的流量

提取数据:

tshark -r 1.pcap -T fields -e usb.capdata | sed '/^\s*$/d'> flag.txt

16进制代表符号:

这是加上了Shift键的对照表,可以对应自己键盘没有加Shift键的对照表


    {"04":"A", "05":"B", "06":"C", "07":"D", "08":"E",
     "09":"F", "0a":"G", "0b":"H", "0c":"I", "0d":"J",
     "0e":"K", "0f":"L", "10":"M", "11":"N", "12":"O",
     "13":"P", "14":"Q", "15":"R", "16":"S", "17":"T",
     "18":"U", "19":"V", "1a":"W", "1b":"X", "1c":"Y",
     "1d":"Z","1e":"!", "1f":"@", "20":"#", "21":"$",
     "22":"%", "23":"^","24":"&","25":"*","26":"(","27":")",
     "28":"<RET>","29":"<ESC>","2a":"<DEL>", "2b":"\t","2c":"<SPACE>",
     "2d":"_","2e":"+","2f":"{","30":"}","31":"|","32":"<NON>","33":"\"",
     "34":":","35":"<GA>","36":"<","37":">","38":"?","39":"<CAP>","3a":"<F1>",
     "3b":"<F2>", "3c":"<F3>","3d":"<F4>","3e":"<F5>","3f":"<F6>","40":"<F7>",
     "41":"<F8>","42":"<F9>","43":"<F10>","44":"<F11>","45":"<F12>"}

键盘:

第一字节:

键盘错误状态 (ERR) - 0x01
控制键 Left Control (LCtrl) - 0x02
控制键 Left Shift (LShift) - 0x04
控制键 Left Alt (LAlt) - 0x08
控制键 Left GUI (LGUI) - 0x10
控制键 Right Control (RCtrl) - 0x20
控制键 Right Shift (RShift) - 0x40
控制键 Right Alt (RAlt) - 0x80

第三字节是我们最关注的键码

鼠标:

第一个字节代表按键,当取0x00时,代表没有按键,为0x01时,代表按左按键,为0x02时,代表当前按键为右键。第二个字节最高位为符号位,值为正时,代表鼠标水平右移动多少像素,为负时,代表水平左移多少像素;第三个字节代表垂直上下移动的偏移像素。

 wife

 wife连接协议为EAPOL协议

使用aircrack-ng -w 密码字典 wife.cap得到wife密码

 sql注入

获取库名,表名,字段名。一般flag在字段中,需要找到相应的包

 webshell

分析黑客的命令操作,传输的文件之中包含flag

寻找黑客IP

连接比较多的IP,查看数据包有恶意信息的IP

传输过程的文件

有图片,压缩包等,有时可以binwalk一下获取,但一般获取不全,需要手动复制二进制文件还原

  • 20
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值