文章目录
一、 Unicode漏洞攻击的基本原理是什么?
- Unicode定义
Unicode(统一码、万国码、单一码)是一种在计算机上使用的字符编码, 是为了解决传统的字符编码方案的局限而产生的统一编码方案。Unicode为每种语言中的每个字符设定了统一并且唯一的二进制编码,以满足跨语言、跨平台进行文本转换、处理的要求。 - 针对IIS的Unicdoe漏洞攻击
在IIS4.0和5.0版本中,当IIS收到的文件名中包含某些特殊编码(例如%c1%hh)时,首先会将其转化为十六进制符号(如0xc10xhh),并尝试着打开这个文件。在ASCII码中,’/’和’\’两个字符的ASCII值分别为5c和2f。因此,利用Unicode编码%c1%1c和%c0%2f,或%c1%9c和%c1%af可以分别构造出’/’和’\’两个字符。上述http请求就绕开了IIS对’…/…’的检查,成功的实现了在http中执行CMD命令的执行,并且可以更进一步的行使其他更危险的命令。 - 针对BIDI的Unicode漏洞攻击
bidi 算法是用于处理不同语言的文字排序问题,如在从左往右的英文句子中加入从右往左的阿拉伯语单词。大多数编程语言都允许开发者将 bidi 字符放在字符串文字和注释里边,因此bidi漏洞被称为是危及所有软件的“超级漏洞”。
对于一段代码&#x