[ASIS 2019]Unicorn shop
[ASIS 2019]Unicorn shop
打开环境是一个购买独角兽的页面
按照表格里的内容输入前三个独角兽的ID和价格,都会操作失败
只有输入第4个的时候,提示只能输入一个字符
这里利用的漏洞是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
同时我们换个思路,为什么一定非要是字符
中文里面的万和亿也是可以的
关于utf-8编码的转换安全问题
附上相关的链接: