2、Web攻防-SQL注入-联合查询注入

用途:个人学习笔记,有所借鉴,欢迎指正!

声明:只用于学习交流,点到为止,请勿非法测试。

概念:

联合查询注入:联合注入是回显注入的一种,也就是说联合注入的前提条件就是需要页面上能够有回显位。回显位就是客户端将数据展示在页面中,这个展示数据的位置就叫回显位。

报错盲注:报错注入就是利用了数据库的某些机制,人为的制造错误的条件,使得查询的结果能够出现在报错页面错误的信息中。

数据库内置函数:

       user() 数据库用户名
  database() 当前数据库名
  version() 当前数据库版本信息
  @@hostname 服务器主机名
  @@basedir 数据库安装路径
  @@version_compile_os 操作系统

 一、联合查询注入

联合查询步骤

  判断注入点——》判断注入类型(数字型或字符型)——》判断字段数——》判断显示位——》确定数据库名——》确定数据库的表名——》确定数据库的列名——》确定数据库的字段名——》获取数据。

1、判断注入点(理想情况)

(1)URL地址中的注入点,网址类似 :main.php?id=1等id值可注入的页面

(2)登录页面的注入点,点击登录后提交的账号密码都会拼接到SQL语句中查询与数据库中进行比对,所有账号和密码就存在注入点

 还有很多,只要用户提交的参数被拼接到SQL语句中和数据库交互,就存在注入点,当然仅仅是说存在注入点不一定成功,因为现在大数都有过滤参数和防火墙黑白名单等等另说。

2、判断注入类型(数字型或字符型)

 ?id=1 and 1=1--+         页面 正常      --+:SQL语句的注释符,注释符号后面的语句不执行
 ?id=1 and 1=2--+         页面 正常     如果不正常就可以判断为数字型
都正常基本上可以判断不是数字型了,然后用干扰字符尝试发现:
 ?id=1’ and 1=2–+        页面不正常
所以判断为字符型注入。 

3、判断表中字段数

  order by 函数是对MySQL中查询结果按照指定字段名进行排序,除了指定字段名还可以指定字段数进行排序,第一个查询字段为1,第二个为2,依次 类推。若输入数值为n时报错,那么表示没有n个字段,总的字段数为n-1。

4、判断显示位 

 通过上面得到字段数,后面通过union select 1,2,3…n(n为字段数)对其进行判断回显位。

例如:

www.sztest.net.cn/about.php?ID=1+and+1=2+union+select+1,2,3,4,5,6,7,8,9,10--+

 测出显示位:2和4

5、确定数据库名

将显示位替换成database() 例如:

www.shsuna.com/en/company.php?id=35+and+1=2+union+select+database()

www.sztest.net.cn/about.php?ID=1+and+1=2+union+select+1,version(),3,database(),5,6,7,8,9,10

 mysql 5.0以下为低版本,5.0以上为高版本(有information_schema数据库)这个数据库是存储所有数据库名,表名,列名,相当于可以通过查询这个数据库获取指定数据库下面的表名列名信息。
  数据库中"."代表下一级,如haha.user表示haha数据库下的user表名
  information_schema.tables 记录所有表名信息的表
  information_schema.columns 记录所有列名信息的表
  information_schema.schemata 记录所有数据库信息的表
  table_schema 数据库名
  table_name 表名
  column_name 列名
  group_concat() 显示所有查询到的数据

 参考:

1、WEB攻防-通用漏洞&SQL注入&MYSQL跨库&ACCESS偏移-CSDN博客

SQL注入基础原理与案例(详细总结)_sql注入案例-CSDN博客

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

解决docker中运行的jar包连不上数据库

目录 数据库主机地址设置问题: 网络连接问题: 数据库端口映射: 数据库认证问题: 数据库服务是否正常运行: 日志查看: 如果在 Docker 中运行的 JAR 包无法连接到数据库,有几个可能的原因和…

「JavaSE」String类3:字符串常量池

🎇个人主页:Ice_Sugar_7 🎇所属专栏:快来卷Java啦 🎇欢迎点赞收藏加关注哦! 字符串常量池 🍉常量池🍉字符串常量池🍉intern 方法 🍉常量池 在Java程序中&…

Docker 第十九章 : 阿里云个人镜像仓使用

Docker 第十九章 : 阿里云个人镜像仓使用 本章知识点: 如何创建镜像库,如何设置密码,如何登录与退出个人镜像仓,如何本地打镜像,如何将本地镜像推送到个人镜像库。 背景 在项目YapiDocker部署中,因读取mongo:latest 版本不一致,导致后续执行步骤的异常。遇到此场景…

document.cookie中expires 格式设置问题导致部分iphone safari上登录失效

一、问题描述 设备信息:iPhone 12, iOS 16.3 昨天有个小伙伴发现自己的iPhone safari打开网页登录时,登录页面显示登录成功,但实际进入首页后仍然显示未登录。多次测试,该问题在该设备上属于必现问题。 二、问题排查与解决 经过…

AI误导游戏——LLM的危险幻觉

在当今科技高速发展的时代,人工智能(AI)已成为日常生活和工作中不可或缺的一部分。特别是大语言模型(LLM)如GPT-4等,它们的智能表现令人惊叹,广泛应用于文本生成、语言翻译、情感分析等多个领域…

easyrecovery数据恢复软件14中文绿色版下载

EasyRecovery易恢复14全面介绍 一、功能概览 EasyRecovery易恢复14是一款功能强大的数据恢复软件,旨在帮助用户从各种存储介质中恢复丢失或删除的文件。无论是由于误删、格式化、系统崩溃还是其他未知原因导致的数据丢失,EasyRecovery易恢复14都能提供…

二十九、图像的高斯双边模糊操作

项目功能实现:对一张图片进行高斯双边模糊操作 按照之前的博文结构来,这里就不在赘述了 高斯双边模糊考虑的是图像的x、y方向和RGB方向,两个边 python版本可参考博文:八、边缘保留滤波(EPF) 一、头文件 bilateral_blur.h #pr…

虚 拟 化原理

1 概念: ①通俗理解: 虚拟化是在硬件和操作系统之间的实践 ②通过对计算机的服务层级的理解,理解虚拟化概念 抽离层级之间的依赖关系(服务器虚拟化) 2 虚拟化分类 ①按架构分类 ◆寄居架构:装在操作系统上…

文件操作知识点(下)

文件操作知识点(上)-CSDN博客 文件操作知识点(中)-CSDN博客 本节继续复习文件操作的相关知识,收尾。 文件读取结束的判定 应该要牢记, 判断文件是否读取结束不要直接使用feof。 feof的作用是:当文件读取…

XSS原理和攻防

Cross Site Scripting:跨站脚本攻击 用户提交的数据中可以构造恶意代码,并且执行,从而实现窃取用户信息等攻击 攻击: 防御: 1.对输入进行过滤,对输出进行编码 2.cookie设置http-only

链表 删除链表中任意位置的节点

//删除链表中任意位置的节点 #include<stdio.h> #include <stdlib.h> struct Node {int data;struct Node* next; }; struct Node* head; void Insert(int x){Node* temp(Node*)malloc(sizeof(struct Node));//创建节点/*malloc返回指向起始地址的指针 因为malloc…

node 之 fs文件系统模块

1.什么是fs文件系统模块 fs模块是Node.js官方提供的、用来操作文件的模块。它提供了一系列的方法和属性&#xff0c;用来满足用户对文件的操作需求 fs.readFile(),用来读取制定文件中的内容 fs.writeFile(),用来向制定的文件中写入内容 如果要在JavaScript代码中&#xff0c;使…

洛谷P8627 [蓝桥杯 2015 省 A] 饮料换购

#先看题目 题目描述 乐羊羊饮料厂正在举办一次促销优惠活动。乐羊羊 C 型饮料&#xff0c;凭 3 个瓶盖可以再换一瓶 C 型饮料&#xff0c;并且可以一直循环下去(但不允许暂借或赊账)。 请你计算一下&#xff0c;如果小明不浪费瓶盖&#xff0c;尽量地参加活动&#xff0c;那…

Linux学习方法-框架学习法——Linux应用程序编程框架

配套视频学习链接&#xff1a;https://www.bilibili.com/video/BV1HE411w7by?p4&vd_sourced488bc722b90657aaa06a1e8647eddfc 目录 Linux应用程序编程 Linux应用程序编程 Linux文件I/O(input/output) Linux文件I/O(五种I/O模型) Linux多进程 Linux多线程 网络通信(s…

Vue+SpringBoot打造社区买菜系统

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、系统设计2.1 功能模块设计2.1.1 数据中心模块2.1.2 菜品分类模块2.1.3 菜品档案模块2.1.4 菜品订单模块2.1.5 菜品收藏模块2.1.6 收货地址模块 2.2 可行性分析2.3 用例分析2.4 实体类设计2.4.1 菜品分类模块2.4.2 菜品档案模块2.4.3…

Spring Boot与HikariCP:性能卓越的数据库连接池

点击下载《Spring Boot与HikariCP&#xff1a;性能卓越的数据库连接池》 1. 前言 本文将详细介绍Spring Boot中如何使用HikariCP作为数据库连接池&#xff0c;包括其工作原理、优势分析、配置步骤以及代码示例。通过本文&#xff0c;读者将能够轻松集成HikariCP到Spring Boot…

nginx-------------(四) 变量 日志分割 自定义图标 证书

一、高级配置 1 .1网页的状态页 基于nginx 模块 ngx_http_stub_status_module 实现&#xff0c;在编译安装nginx的时候需要添加编译参数 --with-http_stub_status_module&#xff0c;否则配置完成之后监测会是提示语法错误注意: 状态页显示的是整个服务器的状态,而非虚拟主机…

Linux运维-DHCP服务器

DHCP服务器的配置与管理 项目场景 学校各部门共有180台电脑&#xff0c;除了计算机学院的教师会配置电脑的网络连接&#xff0c;其他部门的老师和工作人员均不会&#xff0c;为了提高网络的管理效率&#xff0c;技术人员决定配置一台DHCP服务器&#xff0c;来提供动态的IP地址…

js---回溯算法

在 JavaScript 中实现回溯算法通常需要使用递归来进行搜索。回溯算法通常用于解决组合优化问题、排列组合问题、棋盘类游戏等。回溯算法一般是一个for加递归,for循环横向遍历,递归纵向遍历—以上是回溯算法的基本框架 1、回溯算法求数组所有子集 2、回溯算法求全排列

电商+支付双系统项目------项目部署到服务器

我已经把这个项目的所有模块都做好了。那么&#xff0c;现在我们要做的就是将这个项目部署发布了。其实关于部署发布网上有很多的文章都会教&#xff0c;我就不写哪些很具体的步骤了&#xff0c;我就简单的总结一下怎么部署这个项目&#xff0c;让大家对项目部署有一个整体的认…