站点图标 Wankko Ree's Blog

[实验室日题][20201125][Web]Unicode字符等价漏洞 WriteUp

WriteUp

这题刚开始一脸懵逼,似乎只有id为4的时候才有用,然后学长说价格只能单个字符,且大于1337,这下就更懵逼了。

之前碰到过php弱比较绕过数字大小比较的,但是这题限制了1字符,应该不是这种手法。

随便测试,发现输入空格 提交时能够使页面报错,然后顺着报错显示的部分代码找到了GitHub上的原题,查了一下这题的wp,知道了Unicode还有字符等价定义和数值化定义这种神奇的规范。

大致就是unicodedata.numeric函数能够转换字符为其本身等价的数值,比如说1¹都可以当作数值1处理。(没具体测试,部分可能不行)

那么这题想要单个字符的数值化后大于1337,其实就挺好解了,比如亿这种常用计量字符都可以当作payload(还有一堆特殊符号也都可以实现)。

flag

flag{aha_Y0u_G0t_Th14_F1a9!}

退出移动版