对《编写unicode exploit》一文的补充之二
标题:对《编写unicode exploit》一文的补充之二
主页:http://wingdbg.blog.com/
《编写Unicode Exploit》原文地址:http://bbs.pediy.com/showthread.php?t=120637
《编写unicode exploit一文的补充之一》(by riusksk(泉哥)):http://bbs.pediy.com/showthread.php?t=121281
一、背景
在学习完泉哥翻译的《Exploit 编写系列教程第七篇:编写Unicode Exploit》之后,又学习了泉哥补充的《编写unicode exploit一文的补充》,在教程中所给的两个例子中,泉哥通过第一个漏洞实例( Xion Audio Player 1.0 build 121) 说明ret(hex: C3)指令在经过Unicode拷贝之后,不会变成C300。(参见https://www.blackhat.com/presentations/win-usa-04/bh-win-04-fx.pdf)
泉哥在补充一文中发现这是由于原作者在实验时采用xp sp3 en版本的系统,unicode codepage / language/regional settings 的不同,直接导致我们在自己的中文 XP SP3机器上转换时,C3无法转换为C300,从而导致溢出payload的失败。
二、目的
笔者认为在中文XP SP3上机器由ASCII转化成UNICODE的结果,并不简简单单是由于unicode codepage / language/regional settings 的不同。字符的转化还跟字符所在字符串有关系。
在此种假设之下,也许我们通过输入不同类型的字符串,会导致转换后的结果有出现C3的可能,从而导致我们跳转到Unicode Shellcode成功。
如果我们实验成功,我们可以进一步探讨ASCII字符(从'\x00'到'\xFF')在XP SP3 cn中文机器上到底是如何转换成为Unicode的。是什么原因直接导致了它和英文系统转换对应的不同。同时,也是对Unicode Exploit的一种补充。
三、实验
实验环境:
XP SP3 pro 中文版
WinDbg 6.12.2.633 X86(http://download.csdn.net/source/2519777)
Immunity Debugger 1.73(www.shandongkv.com/123/ImmunityDebugger_setup1.73.rar)
pvefindaddr插件(www.shandongkv.com/123/pvefindaddr.rar)
漏洞软件:
AIMP2 Audio Converter 2.51 build 330(www.shandongkv.com/123/aimp_2.51.330.zip)
闲话少说,看代码:
注意:上传附件及图片大小不得大于30M。
⚠️ 版权声明:
本博客所有内容(含教程、源码、工具)仅供个人技术学习与研究交流使用,严禁商用、倒卖、二次分发及非法用途。
未经作者书面授权,任何组织或个人不得转载、复制或用于其他平台,违者将追究相关责任。
