实验室每日一题WP-11月25日

题目是ASIS CTF 2019 Quals Unicorn shop原题,除了我把 独角兽 换成了 小猪佩奇。有所修改,其他没动。

打开题目http://,可以看出是让购买小猪佩奇,但是只允许输入一个字符,而小猪佩奇的价格是1337.0,这时候查看网页源码,可以看到提示

 

为utf8编码,然后了解一下utf8。

UTF-8
到目前为止,它是最流行的Unicode编码,因为它向后兼容ASCII。它是可变宽度的,根据需要使用一个,两个,三个或四个字节来表示所有1,112,064个Unicode代码点。

较常见的代码点位于较低的范围内,因此需要较少的字节表示,而单字节编码的前半部分等效于ASCII的128个字符。在较高的范围内,有一堆奇怪的东西。

 

所以我们只需要找到一个数值大于1337的unicode字符就行了
这个网站:https://www.compart.com/en/unicode/搜索大于 thousand 的单个字符,得到许多字符,随便挑一个,只要比1337大就可以购买佩奇了。

 

 

 

我随便选了一个数值为10w的,复制它的utf8编码0xE2 0x86 0x88,将“0x”替换成“%”得到"%E2%86%88"(不要有空格)

 

 

接着去输入 4     %E2%86%88 ,购买成功,得到flag

 

 

 

 

下面看一下这道题的源码。用的是 unicodedata.numeric()处理的输入的字符。

 

关于unicodedata.numeric()的说明:

 

 

所以这道题,我们输入中文或者其他字符 大于小猪佩奇的价格也是可以成功的。

 

 

 

 

 

输入4   万,操作成功。

 

posted @ 2020-11-24 21:27  Riddler  阅读(184)  评论(0编辑  收藏  举报