[ASIS 2019]Unicorn shop

[ASIS 2019]Unicorn shop

打开环境是一个购买独角兽的页面

qhnviKleHYGMNffsdruMPOpptwDOprpx3w51aBsv0jM

按照表格里的内容输入前三个独角兽的ID和价格,都会操作失败

Z7X--Bq4sql7JgSxwyHy2eT0h6vfXCCi7J6x_cUjhXo

只有输入第4个的时候,提示只能输入一个字符

923JS9rgA__Tx11TM_p64MR6Rh7cX0Nn8BGloWvTYyw

这里利用的漏洞是unicode安全问题,是关于Unionde等价性的漏洞

这里由于只能输入一个字符,所以这里利用了utf-8编码。

两个不同编码的Unicode字符可能存在一定的等价性,这种等价是字符或字符序列之间比较弱的等价类型,这些变体形式可能代表在某些字体或语境中存在视觉上或意义上的相似性。

这里在compart网站上找一个大于1337的值

https://www.compart.com/en/unicode/

在搜索框中搜索thousand

这里我选择了罗马数字十万

数值是100000

utf-8的值是0xE2 0x86 0x88

hzMnwg5B_r-AcEx4dmq8nqzYd2nm14HRDUgaZxP9bz0

2QkoF50ZhoqMQ1IgyQ7EPouvzG8FwMW3uvlDxZb-aIM

这里直接使用utf-8的话是不行的

将utf-8的值中的0x变为%

%E2%86%88

aay93Td0huoQS1_pyynTuuxBkzAorfjkVfMHjGx6w8w

同时我们换个思路,为什么一定非要是字符

中文里面的万和亿也是可以的

关于utf-8编码的转换安全问题

附上相关的链接:

https://xz.aliyun.com/t/5402#toc-0

https://blog.lyle.ac.cn/2018/10/29/unicode-normalization/

posted on 2024-04-08 08:54  跳河离去的鱼  阅读(78)  评论(0编辑  收藏  举报