BUUCTF:[ASIS 2019]Unicorn shop

https://buuoj.cn/challenges#[ASIS%202019]Unicorn%20shop

在这里插入图片描述
在这里插入图片描述
功能是一个购物商店,输入商品ID和价钱进行点击购买。

源代码中提醒<meta charset="utf-8">很重要
html使用的是UTF-8编码
在这里插入图片描述
id和price都为空点击购买,返回报错及原因
在这里插入图片描述
从中可以发现源代码是如何处理price
使用的是unicodedata.numeric()

>>> import unicodedata
>>>
>>> unicodedata.numeric('1')
1.0
>>> unicodedata.numeric('11')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: numeric() argument 1 must be a unicode character, not str
>>>
>>> unicodedata.numeric('7')
7.0
>>> unicodedata.numeric('17')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: numeric() argument 1 must be a unicode character, not str
>>>

在这里插入图片描述
只能输入单个字符,猜测flag就是id = 4、price >= 1337
前端html使用的是utf-8,后端python处理使用的是unicode,编码不一致造成了转码问题

利用这个网站https://www.compart.com/en/unicode
找一下大于单个字符数值化之后1337的
在这里插入图片描述
在这里插入图片描述
找到这个字符的UTF-8 Encoding0xF0 0x90 0x84 0xA3
0x替换成%

id=4&price=%F0%90%84%A3

购买得到flag
在这里插入图片描述

  • 1
    点赞
  • 0
    收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

末初mochu7

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值