Sqli-Labs靶场(21--25a)题解析

目录

Less-21:Cookie Injection - base64 encoded - single quotes and parenthesis(Cookie注入 - base64 编码 - 单引号和括号)

Less-22:Cookie Injection - base64 encoded - double quotes(Cookie注入 - base64 编码 - 双引号)

Less-23:GET - Error based - strip comments(GET - 基于错误 - 条带注释)

Less-24:POST - Second Oder Injections *Real treat* - Stored Injections(POST - 二次注入 - 存储型注入)

Less-25:GET - Error based - All your OR & AND belong to us - string single quotes(GET - 基于错误 - All your OR & AND belong to us - 字符串单引号)

Less-25a:GET - Blind based - All your OR & AND belong to us - Intiger based(GET - 基于盲注 - All your OR & AND belong to us - 整型)


Less-21:Cookie Injection - base64 encoded - single quotes and parenthesis(Cookie注入 - base64 编码 - 单引号和括号)

Cookie型注入,来嘛,burp抓包

哈!这一串乱码是啥,好像是base16编码,那么就是说,是不是把上题用到的语句给他base16编码处理一下就好了,来吧,直入主题

 果然!那么有同学就问了,为啥是admin')?来我们把-admin' union select 1,2,3#用base16编码整一下在更改cookie,看看结果

可以看到报错语句中是#'),那就说明前面必有一个(,所以我们要在'后加上)给他闭合掉!

好了,下一题

Less-22:Cookie Injection - base64 encoded - double quotes(Cookie注入 - base64 编码 - 双引号)

这题和上题解法一模一样!

不过上题是')

这题是"

我们继续!

Less-23:GET - Error based - strip comments(GET - 基于错误 - 条带注释)

get注入,先来个?id=1,好的页面不报错,那就?id=1',报错了

看看报错的地方"1" limit 0,1',是不是有一个;没有闭合!好,我们再输入?id'',页面回显正常

注意这里是两个单引号

那我就明白了,如果想他不报错,前面有一个;需要闭合,后面也有一个'需要闭合,那么我们输入?id=1' or '1'='1,页面回显正常

 那么有同学就问了,闭合前面一个,后面一个注释掉不可以吗?

其实是因为这一题把-和#都给干掉了,他显示不出来!

好,我们继续 ,输入?id=1' order by '3,页面回显正常,没毛病!

输入?id=-1' union select '1','2','3,看下图,有两个显示位,好了,后面大家就自己慢慢敲!

Less-24:POST - Second Oder Injections *Real treat* - Stored Injections(POST - 二次注入 - 存储型注入)

做这题前先复习一下数据库更新数据的语句

update 表名 set password='xxx' where username='admin' and password='密码';

再跟大家讲讲二次注入的过程

假如你想拿到的数据库最高权限的用户名恰好是admin,你只是不知道他的密码,那么你可以注册一个用户,用户名:admin'#,密码:123456

再使用这个新创建的用户登录

 然后你再修改密码,这里我们把1234546修改成111111,会有什么结果呢

再次登录使用admin账号,但是密码使用111111,看!进去了!

这是为什么???修改admin'#用户的密码却把原admin账户的密码修改掉了

回到我们开始讲过的sql更新数据语句

update 表名 set password='xxx' where username='admin' and password='密码';

我们将语句中的admin更改为admin'#

update 表名 set password='xxx' where username='admin' #' and password='密码';

大家发现什么了!!!!根本就不需要原本admin账号的密码,就可以通过这条语句给用户名admin更改上我们想要更改的密码!后面全给注释掉了

好了,这就是二次注入,也就是本题能给大家带来的收获

Less-25:GET - Error based - All your OR & AND belong to us - string single quotes(GET - 基于错误 - All your OR & AND belong to us - 字符串单引号)

直接开始!输入?id=1,页面回显正常,输入?id=1',回显不正常,错误提示跟Less-23一样,所以我们直接输入?id=1' and 1=1-- +,看报错!

为何是'1=1-- + !!我们根据题目来大胆猜测一下,是不是and被过滤了!!

那我们试试?id=1' aandnd 1=1-- +

完美!那我们直接联合查询

后面所有的语句,我们都这样:and换成aandnd,or换成oorr!

 

 嗯!虽然oorrder by有点奇怪!后面就靠大家自己解啦!

Less-25a:GET - Blind based - All your OR & AND belong to us - Intiger based(GET - 基于盲注 - All your OR & AND belong to us - 整型)

这一题就是Less-25的变式,上一题是单引号字符串型,本题是数值型,把'和-- +去掉就解出来了!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值