当前位置:   article > 正文

详细sqli-labs(1-65)通关讲解_sqlilabs靶场1–65过关

sqlilabs靶场1–65过关

目录

mysql数据结构

1.sqli-labs第一关

1.1判断是否存在sql注入

2.2 联合注入

2.sqli-labs第二关

3.sqli-labs第三关

?4.sqli-labs第四关

5.sqli-labs第五关

6.sqli-labs第六关

7.sqli-labs第七关

8.sqli-labs第八关

9.sqli-labs第九关

10.sqli-labs第十关

11.sqli-labs第十一关

12.sqli-labs第十二关

13.sqli-labs第十三关

14.sqli-labs第十四关

15.sqli-labs第十五关

?16.sqli-labs第十六关

17.sqli-labs第十七关

18.sqli-labs第十八关

19.sqli-labs第十九关

20.sqli-labs第二十关

?21.sqli-labs第二十一关

22.sqli-labs第二十二关

23.sqli-labs第二十三关

24.sqli-labs第二十四关

25.sqli-labs第二十五关

26.sqli-labs第二十六关

26-a.sqli-labs第二十六-a关

27.sqli-labs第二十七关

27-a.sqli-labs第二十七-a关

28.sqli-labs第二十八关

28-a.sqli-labs第二十八-A关

29.sqli-labs第二十九关

30.sqli-labs第三十关

31.sqli-labs第三十一关

32.sqli-labs第三十二关

33.sqli-labs第三十三关

34.sqli-labs第三十四关

35.sqli-labs第三十五关

36.sqli-labs第三十六关

37.sqli-labs第三十七关

38.sqli-labs第三十八关

39.sqli-labs第三十九关

40.sqli-labs第四十关

41.sqli-labs第四十一关

42.sqli-labs第四十二关

43.sqli-labs第四十三关

44.sqli-labs第四十四关

45.sqli-labs第四十五关

46.sqli-labs第四十六关

47.sqli-labs第四十七关

48.sqli-labs第四十八关

49.sqli-labs第四十九关

50.sqli-labs第五十关

51.sqli-labs第五十一关

52.sqli-labs第五十二关

53.sqli-labs第五十三关

54.sqli-labs第五十四关

55.sqli-labs第五十五关

56.sqli-labs第五十六关

57.sqli-labs第五十七关

?58.sqli-labs第五十八关

59.sqli-labs第五十九关

60.sqli-labs第六十关

61.sqli-labs第六十一关

62.sqli-labs第六十二关

63.sqli-labs第六十三关

?64.sqli-labs第六十四关

65.sqli-labs第六十五关

如果刚开始接触sql注入,那么sqli-labs这个靶场会很适合你,里面包含了很多的情景,以及我们在sql注入的时候遇到的阻碍。本章将1-65关重点关卡进行详细讲解。代码基本上很全。如果靶场练习完了可以看我这篇SQL注入总结会更好掌握。?SQL注入非常详细总结_的博客-CSDN博客_sql注入数据包

mysql数据结构

在练习靶场前我们需要了解以下mysql数据库结构,mysql数据库5.0以上版本有一个自带的数据库叫做information_schema,该数据库下面有两个表一个是tables和columns。tables这个表的table_name字段下面是所有数据库存在的表名。table_schema字段下是所有表名对应的数据库名。columns这个表的colum_name字段下是所有数据库存在的字段名。columns_schema字段下是所有表名对应的数据库。了解这些对于我们之后去查询数据有很大帮助。我们前面机关讲解比较详细后面就比较简单了。

1.sqli-labs第一关

1.1判断是否存在sql注入

**1.**提示你输入数字值的ID作为参数,我们输入id=1

**2.**通过数字值不同返回的内容也不同,所以我们输入的内容是带入到数据库里面查询了。

**3.**接下来我们判断sql语句是否是拼接,且是字符型还是数字型。

**4.**可以根据结果指定是字符型且存在sql注入漏洞。因为该页面存在回显,所以我们可以使用联合查询。联合查询原理简单说一下,联合查询就是两个sql语句一起查询,两张表具有相同的列数,且字段名是一样的。

2.2 联合注入

**第一步:**首先知道表格有几列,如果报错就是超过列数,如果显示正常就是没有超出列数。

?id=1'order by 3 --+
  • 1

**第二步:**爆出显示位,就是看看表格里面那一列是在页面显示的。可以看到是第二列和第三列里面的数据是显示在页面的。

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

**第三步:**获取当前数据名和版本号,这个就涉及mysql数据库的一些函数,记得就行。通过结果知道当前数据看是security,版本是5.7.26。

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

第四步: 爆表,information_schema.tables表示该数据库下的tables表,点表示下一级。where后面是条件,group_concat()是将查询到结果连接起来。如果不用group_concat查询到的只有user。该语句的意思是查询information_schema数据库下的tables表里面且table_schema字段内容是security的所有table_name的内容。也就是下面表格user和passwd。

?id=-1'union select 1,2,group_concat(table_name) from info
    声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家自动化/article/detail/389548
    推荐阅读
    相关标签
      

    闽ICP备14008679号