buuctf-[ASIS 2019]Unicorn shop(小宇特详解)
先看题目
这里是购买独角兽的一个页面
下面的两个输入框,一个是输入id一个是输入价格
这里先尝试id1,和价格2
这里显示商品错误
然后尝试id,1,2,3都是一样的错误
id=4时,输入1337的错误是
在价格的输入框里只能输入一个字符
这里利用的漏洞是unicode安全问题,是关于Unionde等价性的漏洞
这里由于只能输入一个字符,所以这里利用了utf-8编码。
两个不同编码的Unicode字符可能存在一定的等价性,这种等价是字符或字符序列之间比较弱的等价类型,这些变体形式可能代表在某些字体或语境中存在视觉上或意义上的相似性。
这里在compart网站上找一个大于1337的值
https://www.compart.com/en/unicode/
在搜索框中搜索thousand
这里我选择了罗马数字十万
数值是100000
utf-8的值是0xE2 0x86 0x88
这里直接使用utf-8的话是不行的
将utf-8的值中的0x变为%
%E2%86%88