SQL注入之sqli-labs(四)

目录

(四)第十八关到第二十二关

(1)第十八关

(2)第十九关

(3)第二十关

(4)第二十一关

 (5)第二十二关


(四)第十八关到第二十二关

(1)第十八关

首先我们打开 less-18 目录下的 php文档,在sql 注入语句下面加入两行代码

便于我们学习。

然后打开 sqli-labs ,注意到less-18 的标题为 Post Header Injection(头注入)

进入,输入admin admin登录,返回以下界面

这里回显出自己的IP地址,User-Agent,和自己的浏览器的一些信息。

如果这里没登录成功可能是因为之前重置密码那关改掉了密码 ,可以在MySQL命令行中验证。

方法一:可以去less-17重新输入一个你自己知道的重置掉目前的密码。

方法二:在sqli-labs主界面最上方有一个reset Database for labs重置数据库即可。

这里我们随便输入一个错误账号密码,得到的回显中没有 User-Agent,但是有IP地址,所以可以在User-Agent 上注入。

这里我们需要先下载一个chrome插件(我这里用的是chrome浏览器,Firefox也有这个插件)

大家可以在这里下载:ModHeader - Crx4Chrome插件下载

下载后将里面的所有文件解压到一个空文件夹中,打开chrome浏览器,输入:chrome://extensions/ 打开扩展程序,点击右上角的开发者模式,点击左上角 加载已解压的扩展程序,选择我们之前解压的那个文件夹,打开即可。

我们可以打开源代码,

$insert="INSERT INTO `security`.`uagents` (`uagent`, `ip_address`, `username`) VALUES ('$uagent', '$IP', $uname)";

从后面的values值可以看出,insert值是由user-agent、ip_address、username组合而成的,根据十七关的知识我们可以使用 updatexml 报错注入来获取信息。

' or updatexml(1,concat(0x7e,(database())),1),'','')#

通过修改user-agent为上面这行代码可以看到当前数据库的名字,其中后面那两个 ‘’,是因为将后面的语句闭合,也可以使用下面这句话

' or updatexml(1,concat(0x7e,(database())),1) or '1'='1

刷新一下就可以看到页面中出现了回显,并且为数据库名。后面的操作就和第十七关一样了。

(2)第十九关

这关和上一关差不多,只是变成了referer注入

 ' or updatexml(1,concat(0x7e,(select table_name from information_schema.tables where table_schema='security' limit 0,1)),1),'')#

前面' 是闭合前面自带的 ' ,后面的'')# 是为了闭合后面的语句,接下来就是更改select语句了,和十七关类似。

(3)第二十关

首先输入admin admin ,进入后发现页面回显出一大堆内容

可以看到这里有 user-agent,ip_address,cookie等信息,相较之前几关我们可以发现多了一个cookie的东西,这个词翻译过来就是饼干的意思, 这里简单地解释一下,我们在用自己的账号密码登录一个网站后,它将我们的这些信息进行加密储存,用来辨别我们的信息,如果我们选择保存的话,那么在下次登录的时候,浏览器可以根据上次的cookie来替换未输入账号密码的cookie,相当于你输入了账号密码,也就可以登录账户了。所有如果我们拿到了别人的cookie,就可以实现在不知道对方账号密码的情况下登录他人账号。(cookie有的是永久保存的,而有的过一段时间就会刷新)

这里是通过cookie注入来实现的,打开我们之前下载的ModHeader插件,选择cookie,来进行注入

uname=n' union select 1,2, schema_name from information_schema.schemata limit 0,1 #

以上就是注入语句了,可以发现是联合注入这里的 ' 是为了闭合前面的语句,多试几次就可以得到了之后的就是替换 后面的sql注入语句了。

如果之前没有下载ModHeader的朋友可以 按 f12,点击console,在console 控制台里面输入

document.cookie="uname=n' union select 1,2, schema_name from information_schema.schemata limit 0,1 #"

回车后也可以修改cookie参数,刷新一下同样可以得到相同的结果,但是前两关的user-agent和referer不能在里面直接更改,如果有知道的朋友还望指点一二。

(4)第二十一关

我们打开less-21,对了,在不用ModHeader和SwitchOmega的朋友请及时关闭,否则可能导致加载不出来其他页面,我就是忘关了搞得半天进不去less-21(笑)。

输入 admin admin

发现和二十关差不多的回显,但是发现这里面有一个 YWRtaW4=(有的朋友可能是 YWRtaW4%3D,这里%3D就是=),这是什么意思呢,我们打开base64转码器,解码

 发现解码后就是admin,说明只不过是将uname的值进行了base64的编码罢了,所以我们只要将要注入的语句换成base64编码型即可,

bicpIHVuaW9uIHNlbGVjdCAxLDIsZGF0YWJhc2UoKSM=

 编码后为上面这行,打开 ModHeader 注入上列语句

uname=bicpIHVuaW9uIHNlbGVjdCAxLDIsZGF0YWJhc2UoKSM=

刷新,得到数据库名称

之后就是替换语句的操作了。

 (5)第二十二关

这一关就是把二十一关的单引号换成双引号,其他一模一样

有兴趣的朋友可以看一下这个专栏的其他文章,会继续更新的

注意:我的这份笔记只是入门相关的操作,不能保证你能够掌握SQL注入,因为在实际过程中会有各种各样的情况,所以想要深入的话请坚持学习下去,多实战,在这个sqli-labs笔记结束后我应该会继续发一些关于这方面的技术分享,大家一起学习进步!!

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

清丶酒孤欢ゞ

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值