
考点Unicode数字字符python的int()函数打开题目发现这个页面很像买东西的网站一共有四个商品每个商品的价格不一样但是第4个的商品最贵而且超出了其他商品特别多由此合理猜测当我们成功购买第四个商品后flag就会出现。当我们输入4和1337后它提示Only one character allowed for price!价格只能输入一个字符需要一个字符来表示1337这个数字而在python中有一个int函数可以将字符转化为数字由此可以猜测后端的python代码用了int函数。Unicode 数字字符我们平时用的数字是0-9这只是最基本的阿拉伯数字。但在 Unicode 这个庞大的字符集里还有成百上千个表示数字的字符。举几个例子字符是什么代表的数值字符长度1阿拉伯数字 111 个字符Ⅰ罗马数字 111 个字符Ⅹ罗马数字 10101 个字符Ⅽ罗马数字 1001001 个字符Ⅿ罗马数字 100010001 个字符ↂ罗马数字 10000100001 个字符፼埃塞俄比亚数字 10000100001 个字符ↈ罗马数字 1000001000001 个字符最关键的一点Python 的int()函数能识别所有这些字符。也就是说int(1)→ 1int(Ⅹ)→ 10int(Ⅿ)→ 1000int(፼)→ 10000所以我们就拿埃塞俄比亚的፼替换1337成功出来了