学习心得之union注入

本章分享的union注入是用的靶场的第一关来演示

靶场下载链接:GitHub - workcha/sqli-labs-master: sql注入必练习题目

第一步:检查网页有没有漏洞,如下图,使用 ' 来判断有没有sql漏洞

f07ea361b878417aa63734b3e3064fdd.png

 下面这张图是点击键盘enter之后的样子

71999f896c424bf6bd870af9eff41f62.png

如果出现上图这个样子就表示有sql注入漏洞,但为了保险起见,我们可以在id=1后面分别加入 and 1=1# 和 and 1=2# 再次来判断网页是否存在漏洞,其中#要把它换成%23这个url编码,否则浏览器可能无法识别#,导致#这个符号无用,而#这个符号是用于注释后面的内容,避免后面的内容与前面的内容发生冲突

 b1304664cfa64044989ae6f54d33fa93.png

8f2ee7b41ca24cbf859f4053073e06a2.png

如果 and 1=1# 提交数据过后回显的是下面这样,

8ad734bf6cb447b9b45208a295e8a81a.png

而 and 1=2# 提交数据过后回显的却是下面这样

f7752b1091274982bf29855d5067f36d.png

那么就可以确定这个网页有sql漏洞,我们就可以进行下一步操作。

第二步:使用oder by 来查当前数据库的表里有多少个字段,查看当前数据库的表里有多少个字段是因为后面使用union联合查询时,union联合查询里的字段数量要和主查询语句里的字段数量要一致。

31155324b5494d14ac08fca92c124001.png

上面写order by 3 是因为当前数据库的表里只有3个字段,如果写order by 4就会报下面的错误

d9e7443b2e394df0b1e18e837e6d15b3.png

我们知道有几个字段后,就可以进行第三步了。

第三步:查看显示位在哪个字段,如 ?id=-1' union select 1,2,3%23 其中的id=-1是让union前面的sql语句失效,这样我们就可以知道显示位在哪个字段了,而显示位是让我们查询的东西能显示到浏览器页面上来,如下图

 

c4132cff705b4496b981452c2cba3e43.png

其中显示位在2,3字段,如果没显示位则不能使用union注入。

第四步:查看MySQL里的所有数据库和表

查看所有数据库的命令:union select 1,group_concat(schema_name),3 from information_schema.schemata

查看所有表的命令:union select 1,group_concat(table_name),3 from information_schema.tables

我们通过以上这四步就可以通过union注入获取到MySQL里所有的数据库和表。

注:此union注入仅供学习参考。

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值