[ASIS 2019]Unicorn shop 1
[ASIS 2019]Unicorn shop 1
2019年的题目了,7年前,时间太恐怖了
题目如图:一个purchase的提交表单

0x01 思路
1.先随便输入购买,进行抓包

没懂,回复是:错误的商品
2.继续试一下html实体编码后的字符: 1,这个表示1,发现有报错信息

看一下报错是:只能接受一个unicode字符作为参数
1 | unicodedata.numeric(price) |
那这样我们只能买id为1价格为1的独角兽了,但是我们第一此买的就是这个,回复显示了:错误的商品
3.试试看unicode,毕竟题目提示“Unicode”,而且你猜unicorn读起来是不是很Unicode很像呢?
已知我们肯定需要更多钱去被一个unicode字符表示
‘price=億’数值就是一个亿了
但是又到回复了错误商品wrong commodity
想到购买的商品原来是错的,试试ultra的独角兽

4.payload:
1 | id=4&price=億 |

能绕过的原因:
让我们传入’ a single Unicode character’,但是由于“億”在unicode编码里面也标记的他的数值属性
我们可以用一个unicode字符去表示一个具体数值比较大的数字
详见:https://www.unicodecharacter.org/U+5104

0x02 知识点
现在我们来好好认识一下unicode吧
1.什么是unicode编码
Unicode 给全世界每一种语言的每一个字符(包括汉字、字母、emoji、甚至古埃及象形文字)都分配了一个唯一的数字,这个数字叫做码点(Code Point)。
通常写作 U+ 后面加十六进制数字

2.在线Unicode字符集网站[https://symbl.cc/cn/unicode-table/]

本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 24kmagic!
评论

