赞
踩
cve-2021-42574
特洛伊之源的漏洞机制
其实这个 Unicode 漏洞只要是玩过 QQ / 微信的,大部分人都利用过:你肯定改过你的qq签名,让大家看到语句是从右到左的逆向显示。
严格来说,它也不算是漏洞,只是 Unicode 的一种特性。但因为Unicode 的设计缺陷,就很容易被利用实施恶意攻击,而 视觉欺骗,是最常见考虑最多的 Unicode 安全问题。
Unicode(统一码、万国码、单一码)是一种在计算机上使用的字符编码。它为每种语言中的每个字符设定了统一并且唯一的二进制编码,以满足跨语言、跨平台进行文本转换、处理的要求。1990年开始研发,1994年正式公布。
为了兼容世界各地不同的语言书写习惯,Unicode 引入了双向算法来控制文本显示顺序。大多数语言的文本在水平方向都是按从左到右(Left To Right,简称LTR)的顺序显示字符的,但也有不少语言是按从右到左(Right To Left,简称RTL)的顺序显示字符的(比如阿拉伯语、希伯来语)。当然还有按垂直方向书写的文本,比如中国古代的汉字、蒙语就是从上到下从右到左书写的。
Unicode 标准内规定两种文本顺序:在内存中表示的顺序为逻辑顺序,而最终显示的文本顺序为显示顺序。文本的逻辑顺序和显示顺序并不一定会一致。
Unicode 中如果出现 双向文本 ,若不明确确定文本的显示顺序,在显示的时候就会出现歧义。特洛伊之源攻击利用的就是这一点!
Unicode 引入 定向格式化字符 来解决这个问题。比如,使用RLO控制符来控制字符从右向左显示,PDF表示RLO的终止字符,那么ab cd RLO EF GH PDF x,将被显示为ab cd HG FE x 。
除了双向显示之外,Unicode 还提供一些同形字符 和隐藏字符等,这些都是构成了 视觉欺骗 攻击的特性基础。
L3HCTF的一道题
当时沉迷于什么什么杯中,所以没怎么打
现在来记录一下
<?php
error_reporting(0);
if ("admin" == $_GET[username] & + !! & "CTFl3hctf" == $_GET[L3Hpassword]) { //Welcome to
include "flag.php";
echo $flag;
}
show_source(__FILE__);
抓包发现是php7.4
我们知道show_source会将网页代码加上代码高亮,这里注释的RGB说明注释并不是看起来的注释。
通过复制粘贴源码也好,选择里面的关键字也好,能看到里面有控制字符
然后把它的控制字符一起传上去就行
就能得到flag,这道题只是这个漏洞的一个表现而已
它还可以表现为
李代桃僵:同形字符攻击
fn say_hello() {
println!(“Hello, World!\n”);
}
fn say_һello() {
println!(“Goodbye, World!\n”);
}
fn main() {
say_һello();
}
图片中代码里有两个 say_hello 函数,但实际上函数名不一样,main 函数里调用的是被篡改过的函数,有种李代桃僵的感觉。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。