POST注入-双注入

Less-11

双注入(来自b站大佬视频https://www.bilibili.com/video/av77851975?t=26&p=7

1.首先随便写一点 然后直接抓包

 可以看见报错了

 这个时候我们加个单引号,然后分析后台报错得语句

 

 可以看见我们只看见了passwd得语法问题 没有看见uname得报错  我们初衷就是要加单引号,通过报错看看uname得语法

所以加一个双引号看看

 这个时候后台报错就出来了

 这个时候想办法让他不报错直接admin‘# 闭合单引号

 可以看见不报错了

然后用order by测试列数(用二分法)

最后才测到是2

 然后union select联合查询

 可以发现不显示内容 只能看见有没有报错,那么我们就没办法通过回显数据来查询我们想要得数据

所以 得换新方法!!

回到我们第一步报错得地方

思路就是 既然他能通过报错去暴露一些语法信息  那么能不能通过报错去暴露一些敏感信息呢

可以 就是今天的方法 双注入(也就是注入里面会用到两个select)

floor(rand()*2)这个意思就是在0和1里面取随机值 floor是取整数位,这个的目的就是要出现重复组件

count(1)是统计行数

group by 的意思是分组,把所有的列按照属性进行分组

比如(下图的意思就是要统计所有mysql数据库的每一个数据库里面有几个表,group by table_schema 的意思就是按照table_schema进行分组)

         (count(1)是统计行数)

画图展示其原理

先建立临时表 挨个查询,(此处建议看视频)

为什么是这个结果呢 ?

当mysql里面一个表里面出现两个数据相同的时候,会提示这样的错误叫重复条目(因为组件冲突了)

这个时候我们使用concat的

 可以看出当我把版本信息这个组件加入的时候,组件冲突,mysql表就报错了,同时把这个值内容爆出来了

那我们就换 把version()改为database(),数据库就出来了

 好 双select来了

 可以用group _concat()但是这里group _concat()不行 于是就limit一行一行来(这个limit之前讲过在post单符号注入)

 可以爆出第一个表emails

 

 limit 4 ,1就爆不出了 说明里面有三个表

再去爆字段

 

 再去爆字段的值

 

 再去看看users表中id的字段

猜你喜欢

转载自www.cnblogs.com/cat47/p/12528841.html