富文本格式(Rich Text Format)即RTF格式,又称多文本格式,是由微软公司开发的跨平台文档格式。大多数的文字处理软件都能读取和保存RTF文档。
RTF文档示例
本质上,RTF文件是由 '{rtf' 开始,以符号 '}' 结尾,嵌套的字符串集合。
例如:{\rtf {data {more data}}}.
以下RTF代码:
{\rtf1\ansi
Hello!\par
This is some {\b bold} text.\par
}
在字处理软件上将显示为如下效果:
Hello!
This is some bold text.
反斜线符号(\)标志着RTF控制代码开始。代码\par表示开始新的一行,代码\b将文本以粗体显示。花括号{和}定义一个群组。上述例子中使用了一个群组来限制代码\b的作用范围。合法的RTF文档是一个以代码\rtf开始的群组。
RTF文件也可以嵌入十六进制格式的对象,例如:
{\rtf {data
{\*\objdata
01050000
02000000
08000000
46696C656E616D6500000000000000...
}}}
恶意的RTF文件也可能包括一段payload,并以多种方式与正常的数据进行混淆,其中之一是将额外的控制代码(控制字符串)插入到正常的十六进制数据中,例如:
{\rtf {data
{\*\objdata
01050000
02000000
08000000
46696C656E61{\obj}6D6500000000000000...
}}}
移除空格和不需要的控制代码后,真正的十六进制数字是01050……
后续呢,如果有一天能力提升了,再去插入恶意程序,只不过我不会,暂时到这里。
支持RTF的软件
1、WordPad(Microsoft Windows)(Mac OS)
2、Microsoft Word
3、Apache OpenOffice / LibreOffice
4、WPS
5、EIOffice