[ASIS 2019]Unicorn shop

333 阅读1分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路

0x00 前言

日常刷题 标签给了Python Unicode 已经一定程度上的hint了 补强一下基础

0x01 brain.md

一个购买界面 在这里插入图片描述 比较尴尬的是前几个都提示错误商品 在这里插入图片描述 想买第四个提示 only one char allowed 思路比较清晰 以一个Unicode字符替代数字 在这里插入图片描述 unicode检索

www.compart.com/en/unicode/

此处注意 不是任意一个字符编号大于1337的Unicode字符就行 此处的替代理解为等价替换,即该Unicode字符应等价一个大于1337的数值

在这里插入图片描述 keyword:number 可以看到对应的数值 在这里插入图片描述 直接传参即可 在这里插入图片描述

0x02 rethink

拓展阅读

浅谈Unicode设计的安全性 截取 而后ISO(International Organization for Standardization, 国际标准化组织) 开始尝试制定包含大部分字母和符号的编码,称为"Universal Multiple-Octet Coded Character Set",简称UCS, 俗称Unicode。

Unicode实际上是一个字符和数字之间的映射关系表,并不制定实际的编码方案。因此又开始制定UTF(Unicode Transformation Formats)标准,包括UTF-8、UTF-16和UTF-32等。可以理解为Unicode是一个设计图,而UTF-X是其中一种实现。 一些国家的数字在显示的时候也可能造成问题,例如孟加拉语的0-9是০ ১ ২ ৩ ৪ ৫ ৬ ৭ ৮ ৯,但是这里的৪ (U+09EA) 实际上是数字4。ASIS CTF 2019 的 Unicorn Shop 也是从Unicode背后的数字角度出发考虑问题。