数据库暴露--Get型注入攻击

article/2025/7/5 17:52:06

1.背景知识

1.1Post、Get的对比

特性GET 方法POST 方法
HTTP 方法类型GETPOST
数据位置URL 查询字符串(?key=value)请求体(Request Body)
数据可见性明文显示在 URL 和浏览器历史中不可见(除非开发者工具查看)
数据长度限制受 URL 长度限制(通常约 2048 字符)无明确限制(但服务器可能限制)
缓存可被缓存默认不缓存
书签/分享可保存为书签或分享带参数的 URL不可直接保存(需额外处理)
安全性较低(敏感数据不应使用)较高(但仍需 HTTPS 加密)
幂等性是(多次请求结果相同)否(可能产生副作用,如重复提交)
主要用途获取数据(查询、搜索、过滤等)提交数据(登录、表单提交、修改等)
HTML 表单示例<form method="get" action="/search"><form method="post" action="/submit">
后端接收方式通过查询参数获取(如 req.query通过请求体获取(如 req.body
适用场景举例搜索页面、分页、筛选条件用户注册、文件上传、敏感操作

post型注入通过表单提交数据,get型注入通过”变量“=”值“的形式,使用?连接添加到action所指向的URL的后面。

即Post型SQL注入发生再页面表单提交信息处。Get型SQL注入发生再通过超链接方式向其他网页传递参数时。

1.2数据库暴露的原理

在用Get方式进行数据库查询时,通过数据库的SQL注入漏洞得到数据库的内容。

2.创建数据库

2.1创建SQL脚本

create database if not exists lab;use lab;drop table if exists books;
create table books
(
id int not null auto_increment,bookname char(64) not null,
author char(32) not null,primary key(id));insert into books(bookname,author) values('安徒生童话全集','汉斯·克里斯汀·安徒生');
insert into books(bookname,author) values('A Brief History Of Time','Stephen Hawking');

2.2将脚本文件导入到数据库

登录数据库

导入

3.建立get方式查询的网站

3.1con_database.php

<?php
$con=mysqli_connect('127.0.0.1','root','123456')
or die('数据库连接失败');
mysqli_select_db($con,'lab')
or die('选择数据库失败');
?>

3.2新建index.php

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Get型查询</title>
</head>
<body><div style=" margin-top:70px;color:#FFFFFF; font-size:23px; text-align:center">
<font color="#FF0000"><?php
//包含数据库连接
include('con_database.php');if(isset($_GET['id']))
{$id=$_GET['id'];$sql="SELECT * FROM books WHERE id='$id' LIMIT 0,1";$result = mysqli_query($con,$sql) or die('SQL语句执行失败, : '.mysqli_error($con));$row = mysqli_fetch_row($result);if($row){echo "<font size='5' color= '#99FF00'>";echo 'Book name: ' .$row[1];echo "<br>";echo 'Author: ' .$row[2];echo "</font>";}else {print_r(mysqli_error($con));}
}
else { echo "请输入要查询记录的id";}?>
</font>
</div>
</body>
</html>

3.3功能测试

http://localhost/get/index.php?id=1

表示查询对应路径以及文件名,查询第一条记录,?用来连接URL地址喝Get方式传递的变量id

4.数据库暴库攻击测试

进行GET方式SQL注入

4.1暴数据库

http://

localhost/get/index.php?id=-1%27union%20select%201,group_concat(schema_name),3%20from%20information_schema.schemata--+

SQL 注入语句解析​​:

http://localhost/get/index.php?id=-1'union select 1,group_concat(schema_name),3 from information_schema.schemata--+
​分解分析​​:
  1. id=-1'

    • 尝试闭合原本的 SQL 查询字符串(假设原查询是 SELECT * FROM table WHERE id='$id')。
    • -1 确保不返回正常数据,使后续 UNION 结果可见。
  2. union select 1,group_concat(schema_name),3

    • UNION SELECT 用于合并查询结果,要求列数匹配原查询(此处假设原查询返回 3 列)。
    • group_concat(schema_name) 是 MySQL 函数,用于合并所有数据库名(schema_name)成一个字符串。
    • 1, ..., 3 是占位值,确保列数匹配。
  3. from information_schema.schemata

    • information_schema.schemata 是 MySQL 系统表,存储所有数据库信息。
    • 攻击者通过此查询获取服务器上的所有数据库名。
  4. --+

    • -- 是 SQL 注释符,用于忽略原查询的剩余部分(如 LIMIT 1 等)。
    • + 在 URL 中代表空格(避免被浏览器过滤)。

4.2暴lab数据库的数据表

http:/localhost/get/index.php?id=-1%27union%20select%201,group_concat(table_name),3%20from%20information_schema.tables%20where%20table_schema=%27lab%27--+


http://www.hkcw.cn/article/WSaiJGqBPB.shtml

相关文章

Linux 1.0.4

父子shell linux研究的就是shell 打开两个窗口就是两个shell 终端的软件有很多 bash也是一个软件 我们在terminal里面再打开一个bash&#xff0c;然后再次使用ps命令发现多出来一个bash&#xff0c;之后点击exit只是显示了一个exit&#xff0c;这个只是退出了在terminal中打开…

挖洞日记 | 记一次MSSQL注入绕waf过程

在挖漏洞时&#xff0c;使用 xia sql 插件发现一个注入点&#xff0c;经过测试发现存在 waf 拦截记录一下。 在查询中发现单引号是空白页面&#xff0c;在加一个单引号&#xff0c;显示空数据&#xff0c;但是有回显&#xff0c;初步判断 pname 存在 SQL注入。 然后判断列数1o…

Linux-pcie ranges介绍

参考链接&#xff1a;https://elinux.org/Device_Tree_Usage#PCI_Host_Bridge pcie bar高低端BAR起始地址介绍 pcie设备树节点 / {compatible "rockchip,rk3588";interrupt-parent <&gic>;#address-cells <2>;#size-cells <2>;pcie3x4: p…

模块化设计,static和extern(面试题常见)

文章目录 一、函数的声明和定义1.1 单个文件1.2 多个文件1.3 static和extern1.3.1 static修饰局部变量1.3.2 static修饰全局变量1.3.3 static修饰函数 总结 一、函数的声明和定义 1.1 单个文件 一般我们在使用函数的时候&#xff0c;直接将函数写出来就使用了 题目:写一个函数…

探讨下LLM 在逻辑推理中的记忆现象

简述 今天刷到一篇推理模型训练的论文&#xff0c;研究解答了我们使用大模型的人困惑&#xff0c;大模型的能力到底是弈中高级的匹配模式还是真的在做逻辑推理 [2410.23123] On Memorization of Large Language Models in Logical ReasoningAbstract page for arXiv paper 24…

deepseekR1模型:Win11本地部署(ollam+DS:8b+chatbox AI)

目录 一、部署工具包二、Ollama安装1. 修改Ollama模型路径&#xff08;不需要修改安装路径可忽略此部分&#xff09;1.1 模型路径原配置1.2 更改模型路径原配置&#xff0c;释放C盘压力 2. 安装Ollama2.1 下载Ollama安装包2.1 安装验证 三、安装大模型&#xff08;博主安装DS-r…

leetcode:7. 整数反转(python3解法,数学相关算法题)

难度&#xff1a;中等 给你一个 32 位的有符号整数 x &#xff0c;返回将 x 中的数字部分反转后的结果。 如果反转后整数超过 32 位的有符号整数的范围 [−231, 231 − 1] &#xff0c;就返回 0。 假设环境不允许存储 64 位整数&#xff08;有符号或无符号&#xff09;。 示例…

ROS 2 中的 robot_state_publisher 和 joint_state_publisher 详解

文章目录 总体简介&#x1f9e9; 1 . joint_state_publisher - 关节状态发布器&#x1f4cc; 核心功能⚙️ 工作原理&#x1f9e0; 主要任务&#x1f4bb; 基本用法 &#x1f9e9; 2. robot_state_publisher - 机器人状态发布器&#x1f4cc; 核心功能⚙️ 工作原理&#x1f9e…

第10讲、Odoo 18框架设计原理全解析

前言 Odoo是一套开源的企业资源规划(ERP)系统&#xff0c;以其模块化、可扩展性和全面的业务应用套件而闻名。Odoo 18作为其最新版本&#xff0c;在架构设计、前端技术和后端实现上都有显著的创新和优化。本文将从前端的OWL组件化、模块化&#xff0c;到后端的ORM封装&#xf…

MPC5744P——eTimer简介

1、eTimer结构图 eTimer模块提供&#xff1a; 六个相同的计数器/定时器通道一个看门狗定时器功能&#xff08;可能并非每个eTimer模块实例都具备&#xff09; 2、eTimer通道结构图 eTimer中的每个计时器/计数器通道结构图如下图所示&#xff0c;每个16位计数器/定时器通道包…

MySQL主从复制---笔记

一、MySQL主从复制架构 常见拓扑 基础一主一从 主库&#xff08;Master&#xff09;处理写操作&#xff0c;从库&#xff08;Slave&#xff09;同步数据并处理读请求。 适用场景&#xff1a;读写分离、数据备份。 一主多从 一个主库对应多个从库&#xff0c;显著提升读性能…

Wayland模式X11模式LinuxFB​​模式,Linux图形显示系统三大模式深度解析

Linux图形显示系统三大模式深度解析&#xff1a;Wayland &#xff0c; X11 &#xff0c; LinuxFB​​ ​​一、技术原理与架构设计​​ ​​LinuxFB&#xff08;帧缓冲直通模式&#xff09;​​ 工作原理​​&#xff1a;直接读写内核帧缓冲设备&#xff08;/dev/fb0&#x…

戴尔AI服务器订单激增至121亿美元,但传统业务承压

戴尔科技121亿美元的AI服务器订单&#xff0c;不仅超过了公司整个2025财年的AI服务器出货量&#xff0c;更让其AI订单积压达到144亿美元的历史高位。 戴尔科技最新财报显示&#xff0c;AI服务器需求的爆炸式增长正在重塑这家老牌PC制造商的业务格局&#xff0c;但同时也暴露出…

葵花数据(Himawari Data)

葵花数据&#xff08;Himawari Data&#xff09;是由日本气象厅&#xff08;Japan Meteorological Agency, JMA&#xff09;通过其静止气象卫星 Himawari 系列&#xff08;ひまわり卫星&#xff09;获取的一类高频率、多波段的地球观测数据。当前在轨运行的是 Himawari-8 和 Hi…

LangChain-LangGraph框架 应用实例

LangGraph是LangChain的高级库,为大型语言模型(LLM)带来循环计算能力。 LangGraph建立在LCEL之上,允许高效地协调应用程序组件,同时保持简洁和可读的代码。它包括内置持久性、对循环的支持,并优先考虑可控性。 如果LCEL对于更大或更复杂的链变得笨重,它们可能会受益于L…

远心镜头 参数与选型

一、简介 远心镜头是一种性能十分优异的镜头&#xff0c;它通常具有超高的中心边缘一致性&#xff0c;极低的畸变&#xff0c;接近衍射极限的光学分辨率 远心镜头的主要作用是消除透视&#xff08;透视就是近大远小&#xff0c;常规镜头因为有视场角&#xff0c;拍摄时离镜头比…

睿抗机器人开发者大赛CAIP-编程技能赛-历年真题 解题报告汇总 | 珂学家

前言 汇总 睿抗机器人开发者大赛CAIP-编程技能赛-历年真题 解题报告汇总 2024年 2024 睿抗机器人开发者大赛CAIP-编程技能赛-本科组 (国赛) 解题报告 2024 睿抗机器人开发者大赛CAIP-编程技能赛-本科组&#xff08;省赛&#xff09;解题报告 2024 睿抗机器人开发者大赛CAI…

POSIX信号量

目录 初始化信号量 销毁信号量 等待信号量 发布信号量 基于环形队列的生产消费模型 代码实现 POSIX信号量和SystemV信号量作用相同&#xff0c;都是用于同步操作&#xff0c;达到无冲突的访问共享资源目的。本质就是一个计数器&#xff0c;是对特定资源的预定机制&#xff…

P23:实现天气预测

&#x1f368; 本文为&#x1f517;365天深度学习训练营 中的学习记录博客&#x1f356; 原作者&#xff1a;K同学啊 一、知识介绍 1. 数据加载与预处理 知识点&#xff1a; pd.read_csv()&#xff1a;Pandas读取CSV文件的核心方法pd.to_datetime()&#xff1a;将字符串转换…

BERT模型原理与Fine-tuning实战指南

BERT模型原理与Fine-tuning实战指南 系统化学习人工智能网站&#xff08;收藏&#xff09;&#xff1a;https://www.captainbed.cn/flu 文章目录 BERT模型原理与Fine-tuning实战指南摘要引言1. BERT核心原理解析1.1 Transformer架构基础1.2 预训练任务设计1.3 模型变体对比 2…