Skip to content

Lec3-Misc

约 1802 个字 3 张图片 预计阅读时间 7 分钟

授课:郑俊达(Gooduck)

什么是Misc

  • Miscellaneous,即杂项,包含了一些不属于其他类别的题目
  • MISC = ALL - PWN - WEB - CRYPTO- REVERSE

Misc题型

  • 隐写、取证、OSINT(信息搜集)、PPC(编程类) ——传统misc题
  • 游戏类题目、工具运用类题目
  • 编解码、古典密码 ——不那么crypto的crypto
  • 网络解谜、网站代码审计 ——不那么web的web
  • 代码审计、沙箱逃逸 ——不那么binary的binary
  • Blockchain、IoT、AI ——新兴类别题目

如何学习misc?

  • 用于尝试学习新东西,许多题目需要快速入门/快速上手新工具
  • 思维活跃,大胆尝试
  • 一定的编程能力
    • 熟练掌握Python或其他一门语言
  • 多做题

基础编解码知识

三种常见的01串转换方式01串转换方式

常用编解码工具:CyberChef /(TonyCrane ver.)

字符编码

  • 字符编码:人类理解的字符 $ \iff $ 计算机理解的01串 之间的映射
  • 出现乱码:用一种字符编码规则解读另一种字符编码的01串

常见的字符编码:

  • ASCII:一共 128 个项,即每个字符可以用一个7位的01串表示(或一字节)
    • 00-1F:制字符;20-7E:可见字符;7F:控制字符(DEL)
  • Latin-1(ISO-8859-1):扩展了 ASCII,一共 256 个项
    • 80-9F:控制字符;A0-FF:可见字符
    • 特点:任何字节流都可以用其解码
  • 利用Unicode 字符集的一系列编码
    • UTF-8 / UTF-16 / UTF-32 / UCS
  • 中国国标字符集系列编码8
    • GB 2312 / GBK / GB 18030-202

Unicode字符集与UTF编码

参考:TonyCrane的笔记

以平面划分,有17个平面,每个平面65536个码位(2字节)

  • 通过码位可以表示为U+0000 ~ U+10FFFF
  • 可容纳111w+个字符,现有14w+字符(超过一半为CJK字符)

UCS(Universal Character Set):Unicode字符集的标准名称

  • UCS-2:2字节表示码位;UCS-4:4字节表示码位

UTF(Unicode Transformation Format):Unicode字符集的编码方式

  • UTF-8:变长编码,1~4字节表示一个字符,兼容ASCII
    • 1字节:0xxxxxxx;
    • 2字节:110xxxxx 10xxxxxx;
    • 3字节:1110xxxx 10xxxxxx 10xxxxxx;
    • 4字节:11110xxx 10xxxxxx 10xxxxxx 10xxxxxx
    • ASCII字符:1字节;常用字符:2字节;其他字符:3字节或4字节
  • UTF-16:2字节或4字节表示一个字符,不兼容ASCII
    • BMP(基本多文种平面):2字节表示;SMP(补充多文种平面):4字节表示

出现乱码原因

几个字符集不兼容的部分互相编解码

  • 用 GBK 解码 UTF-8 编码的文本
  • 用 UTF-8 解码 GBK 编码的文本
  • 用 latin-1 解码 UTF-8 编码的文本
  • 用 latin-1 解码 GBK 编码的文本
  • 先用 GBK 解码 UTF-8 编码的文本,再用 UTF-8 解码前面的结果
  • 先用 UTF-8 解码 GBK 编码的文本,再用 GBK 解码前面的结果

code

摩尔斯电码(Morse Code)

字符 $ \iff $ 字符

  • 摩尔斯电码:一种用点(·)和划(-)(时间长短)表示字符
    • 点·:1单位;划-:3单位
    • 点划之间间隔:1单位;字符之间间隔:3单位;单词之间间隔:7单位
  • 字符集:A-Z、0-9、标点符号等(. : , ; ? = ' / ! - _ " ( ) $ & @ +)
  • 表示中文:电码表(一个汉字对应四个数字),数字使用短码发送

Base系列编码

01串 $ \iff $ 字符,Base家族的结果都可以转为可见字符

  • Base16:16进制编码表示字节流
  • Base32:5bit一组(0-31),按照字符表(A-Z、2-7)映射
    • 最终长度必须是5的倍数,不足的用=补齐(明显特征)
  • Base64:6bit一组(0-63),按照字符表映射
    • 标准字符表:A-Z a-z 0-9 + /
    • 另有多种常用字符表,如URL安全字符表:A-Z a-z 0-9 - _
    • 最终长度必须是4的倍数,不足的用=补齐(1~2个,明显特征)

base

Base-n系列编码的本质:字节流 \(\rightarrow\) 整数 \(\rightarrow\) n进制 \(\rightarrow\) 系数查表

除了16/32/64进制外,还有一些其他的Base编码:

  • Base85:4字节整数 \(\rightarrow\) 85进制 \(\rightarrow\) 5个系数
    • 常用字符表:0-9 A-Z a-z ! # $ % & ( ) * + - ; < = > ? @ ^ _ ` { | } ~
    • 标准字符表: !-u(ASCII 0x21-0x75)
  • 作为大整数转换进制:
    • Base62:0-9 A-Z a-z(比Base64少了+ /)
    • Base58:0-9 A-Z a-z(比Base62少了不易区分的0 O I l)
    • Base56:比Base58少了1和o
    • Base36:0-9 A-Z(比Base62少了a-z)

一些其他编码

其他常用编码

  • UUencode、XXencode:二进制文件编码为可见字符
  • QR Code 二维码
  • 条形码
  • 盲文编码

常用工具

OSINT基础

什么是OSINT

Open Source INTelligence:开源网络情报

  • 通过完全公开的信息进行合理的推理,获取情报

一般在misc题目中出现即反之信息搜集,有几种情况:

  • 构造了一个全新的虚拟身份,搜集得到出题人准备好的信息
  • 根据图片、文档等附件泄漏的信息进行推理(主要)
    • 包括根据图片内容推理找到拍摄位置、当时环境等信息

信息搜集/查询基础

数字信息搜集工具:https://github.com/ffffffff0x/Digital-Privacy

用户名批量查询:

Wayback Machine :web.archive.org

  • 查找网页的历史快照(以及可以创建快照)
  • 有时可以找到出题人特意保存快照后删除的内容

文件信息泄露

各种文档的元信息(metadata)可能包含作者、修改时间等信息

  • 图片的EXIF信息,可通过exiftool查看
  • 一般以xml形式存储,可以直接通过二进制抹除,或者通过操作系统

工程文件夹泄漏信息

  • Visual Studio的各种配置文件.vs文件夹中信息
  • .vscode 文件夹中的配置文件
  • .git 文件夹,泄漏全部修改历史、提交信息、提交者等

文件夹路径信息泄漏

  • .DS_Store 文件,macOS 下的文件夹布局信息
  • 以上提到的各种工程配置文件等也会泄漏(比如vs的pdb调试信息)
  • markdown 文件图片路径(本地路径/图床用户/自建图床网站)

照片信息分析

图片搜索

常用搜索引擎:

  • 百度识图搜索:中文互联网图片搜索结果
  • Google 图片搜索:用来搜索外国范围的图片
  • Bing 图片搜索:和Google差不多,都可以参考
  • Yandex 图片搜索:
    • 搜索相似图片
    • 搜索风景时更常用
  • TinEye:搜索完全相同的图片(找来源)

地点线索搜集

注意图片中的文字、牌匾、标志性建筑等,可用来作为关键词搜索

  • 利用搜索引擎等找到大概位置后,可以用百度全景地图/谷歌全景地图进行确认/查找附近线索

如果图片中关键信息较少,可以优先考虑使用搜索引擎识图(Google识图等)

  • 搜索确认得到相关的地名/地点信息后,可以进一步搜索相关信息

环境信息分析

Comments