从11关之后就从GET方式变成POST方式,也就不能使用url?id=...的方式,而是要通过提交username和password的方式直接进行提交登录。
less-11
进入页面之后是提交username和password的形式,我们随便分别提交1和1,我们打开hackbar查看方式
可以看到最下面Body部分post传参时的使用的“name”分别是“passwd”和“uname”,所以我们接下来就只能用这两个“name”进行注入
我们先令uname=1 ')--+&passwd=
可以发现报错的内容为')-- ’,我们可以知道是单引号注入,我们开始在uname上构造联合注入语句:uname=1' union select 1,database() --+ &passwd=
因为--+将之后的内容全部注释掉,所以passwd的值也就不用进行任何操作
我们这里看到回显正常,并且爆出了数据库名字,之后的和get方式的联合注入(less-1)步骤一模一样
less-12
首先还是判断闭合方式,我们用1回显错误,用1'回显错误,再用1"就发现回显的是语句错误,那我们就构造:uname=1"\--+&passwd=
可以看到我们语句后有一个"),所以知道这关的闭合方式为双引号加括号,与上一关同理,进行联合注入
得到了数据库名字,继续使用联合注入语法,与get方式相同的步骤进行注入
less-13
先判断闭合方式,构造uname=1'发现直接返回语句错误,那么改变构造变成uname=1'\--+&passwd=
可以得知闭合方式为单引号加括号
当我们构造为uname=1') or 1时,显示的是登陆成功但是却没有任何回显,因此我们使用报错注入
语句为:uname=1') and updatexml(1,concat(1,database()),3)--+&passwd=
或者也可以利用报错注入另一个函数:uname=1') and extractvalue(1,concat(1,database()))--+&passwd=
成功得到数据库名,此时就与get方式的报错注入一样
直接得到了这几张表名,剩余步骤也和get方式一样
less-14
与less-13一样,同样使用报错注入,只不过闭合方式改变成了双引号,剩余内容与步骤无异。
今天的分享到此结束