web安全—sql注入漏洞
SQL注入-mysql注入
一.普通的mysql注入
MySQL注入不像注入access数据库那样,不需要猜。从mysql5.0以上的版本,出现一个虚拟的数据库,即:information_schema数据库,该数据库存在放着其他数据库的所有信息,所以mysql注入的原理就是运用information_schema数据库进行实施,接下来我们具体说明怎么运用。
- 用order by猜测字段数
在发现有注入点的mysql数据库,首先要确定该数据库的字段数。这时候就要运用一下order by语句了。
Payload:order by +推测的字段数(如果推测的字段数超过该数据库的字段数会报错)
- 运用mysql的内置函数和union select联合查询
在推测完字段数后,要对该数据库的信息进行获取,这时MySQL的内置函数起了很大的作用。
常用的函数:
User():查看当前用户
Database():查看当前的数据库
Version():查看当前数据库的版本
例如:这个注入点是数字型的MySQL注入,并且已经爆出一个数据库有3个字段,则可以构造这样的payload: union select 1,2,3 注意这时要使union前面的语句报错,这样才能判断哪个是可显字段。
在可显字段上替换成上面的内置函数,即可查看响应的信息。假设2,3是可显字段。则可以构造这样的payload:union select 1,user(),database() 这条payload可以查看数据库当前的用户是谁和当前的数据
库名。
- 运用information_schema函数爆出数据库的信息
首先先对information_schema里的表和字段进行说明一下。我们对MySQL注入就运用了information_schema中的两张表:tables和columns
Tables:提供了关于数据库中的表的信息(包括视图)。详细表述了某个表属于哪个schema,表类型,表引擎,创建时间等信息。
Columns:提供了表中的列信息。详细表述了某张表的所有列以及每个列的信息。
也运用了俩个字段:table_name和column_name,table_name是属于tables里的字段,记录了其他数据库表的信息。Column_name是columns里的字段,记录了其他数据库的表的字段的信息
好了到了最重要的环节了,上面已经对information_schema函数进行了简单的介绍。现在就来实际运用一下吧!!!!!
(1) 爆出数据库的表名
Payload:1.union select 1,group_concat(table_name),3 from information_schema.tables where table_schema=”当前数据库名”
2.union select 1,table_name,3 from information_schema.tables where table_schema=”当前数据库名” limit 0,1
以上俩条payload都上爆出数据库表名的语句,我们来逐个分析一下。Group_concat函数将查询的数据整合到一个字段中, Limit子句可以被用于强制 SELECT 语句返回指定的记录数。limit 0,1:返回查询的第一条数据
第一条payload:意思是从当前的数据库中查询所以的表名。第二条payload:意思是从当前的数据库中查询第一个表名。当前数据库名可以转化成16进制来绕过某些限制,注意不要加双引号了。
(2)爆出表中的字段
Payload:1.union select 1,group_concat(column_name),3 from information_schema.columns where table_name=”要查询的表名”
2.union select 1,column_name,3 from information_schema.columns where table_name=”要查询的表名” limit 0,1
和上面的一样,只不过换了爆出字段的函数
(3)爆出字段内容
Payload:union select 1,字段名,字段名 from 要查询的表名
这条payload和access数据爆出字段内容的一样,这里不再进行说明。
经过上面的操作,对于普通的mysql注入就完成了。当然mysql的注入类型还有很多,例如:基于报错的注入,基于布尔的盲注,基于时间的盲注,post注入等等。将在后面的博客中更新
但是还是那句话sql注入万变不离其中,就只有俩种类型:数字型和字符型。
web安全—sql注入漏洞的更多相关文章
- WEB安全:XSS漏洞与SQL注入漏洞介绍及解决方案(转)
对web安全方面的知识非常薄弱,这篇文章把Xss跨站攻击和sql注入的相关知识整理了下,希望大家多多提意见. 对于防止sql注入发生,我只用过简单拼接字符串的注入及参数化查询,可以说没什么好经验,为避 ...
- WEB安全:XSS漏洞与SQL注入漏洞介绍及解决方案
对web安全方面的知识非常薄弱,这篇文章把Xss跨站攻击和sql注入的相关知识整理了下,希望大家多多提意见. 对于防止sql注入发生,我只用过简单拼接字符串的注入及参数化查询,可以说没什么好经验,为避 ...
- Nikto是一款Web安全扫描工具,可以扫描指定主机的web类型,主机名,特定目录,cookie,特定CGI漏洞,XSS漏洞,SQL注入漏洞等,非常强大滴说。。。
Nikto是一款Web安全扫描工具,可以扫描指定主机的web类型,主机名,特定目录,cookie,特定CGI漏洞,XSS漏洞,SQL注入漏洞等,非常强大滴说... root@xi4ojin:~# cd ...
- 利用SQL注入漏洞登录后台的实现方法
利用SQL注入漏洞登录后台的实现方法 作者: 字体:[增加 减小] 类型:转载 时间:2012-01-12我要评论 工作需要,得好好补习下关于WEB安全方面的相关知识,故撰此文,权当总结,别无它意.读 ...
- 预处理prepareStatement是怎么防止sql注入漏洞的?
序,目前在对数据库进行操作之前,使用prepareStatement预编译,然后再根据通配符进行数据填值,是比较常见的做法,好处是提高执行效率,而且保证排除SQL注入漏洞. 一.prepareStat ...
- zabbix再爆高危SQL注入漏洞,可获系统权限
漏洞概述 zabbix是一个开源的企业级性能监控解决方案.近日,zabbix的jsrpc的profileIdx2参数存在insert方式的SQL注入漏洞,攻击者无需授权登陆即可登陆zabbix管理系统 ...
- 简单分析什么是SQL注入漏洞
现在很多人在入侵的过程中基本都是通过SQL注入来完成的,但是有多少人知道为什么会有这样的注入漏洞呢?有的会随口说着对于字符的过滤不严造成的.但是事实是这样吗?我们学这些,不仅要知其然,更要知其所以然! ...
- 什么是简单的分析SQL注入漏洞
如今非常多人在入侵的过程中基本都是通过SQL注入来完毕的,可是有多少人知道为什么会有这种注入漏洞呢?有的会随口说着对于字符的过滤不严造成的. 可是事实是这样吗?我们学这些.不仅要知其然.更要知其所以然 ...
- 利用SQL注入漏洞登录后台
所谓SQL注入,就是通过把SQL命令插入到Web表单递交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令,比如先前的很多影视网站泄露VIP会员密码大多就是通过WEB表单递交查询 ...
随机推荐
- python3 树莓派 + usb摄像头 做颜色识别 二维码识别
今天又啥也没干 我完蛋了哦 就是没办法沉下心来,咋办....还是先来条NLP吧.. 七,凡事必有至少三个解决方法 对事情只有一个方法的人,必陷入困境,因为别无选择. 对事情有两个方法的人也陷入困境, ...
- Spark学习之路 (一)Spark初识
目录 一.官网介绍 1.什么是Spark 二.Spark的四大特性 1.高效性 2.易用性 3.通用性 4.兼容性 三.Spark的组成 四.应用场景 正文 回到顶部 一.官网介绍 1.什么是Spar ...
- [LeetCode] 25. k个一组翻转链表
题目链接: https://leetcode-cn.com/problems/reverse-nodes-in-k-group/ 题目描述: 给出一个链表,每 k 个节点一组进行翻转,并返回翻转后的链 ...
- 【原创开源】网络版二代双通道示波器开源发布,支持电脑,手机和Pad等各种OS平台访问
前言感谢大家的支持,提前奉上今年的国庆福利. 一代示波器发布于3年前,去年年底的时候发布了二代示波器,软件性能已经比较强劲,但依然有值得升级改进的地方,经过今年这半年多努力,在二代示波器的基础上再推出 ...
- img图片不存在显示默认图
在项目中,我们使用img标签加载图片,有时候图片地址有可能失效,获取路径问题,导致图片加载失败,img标签就会显示alt内容.这时候用户体验不是很好,所以就需要显示一张默认图片. 第一种方式:使用jq ...
- .NET Core 性能分析: xUnit.Performance 简介
xunit-performance 是xUnit的一个扩展, 使用它可以对.NET Core项目进行性能测试. 官网:https://github.com/Microsoft/xunit-perfor ...
- asp.Net Core免费开源分布式异常日志收集框架Exceptionless安装配置以及简单使用图文教程
最近在学习张善友老师的NanoFabric 框架的时了解到Exceptionless : https://exceptionless.com/ !因此学习了一下这个开源框架!下面对Exceptionl ...
- 记一次自己在Linux上倒腾Nginx的经历
自己装了个CenterOS7.5,还装了个.NET Sdk,又装了个nginx...学会几个命令 su root rm - rf helloCore 删除文件夹及文件 输入命令行: ps -ef | ...
- ConfirmCancelBottomSheetDialog【确认取消底部对话框】
版权声明:本文为HaiyuKing原创文章,转载请注明出处! 前言 继承BottomSheetDialog,实现简单的确认取消对话框样式. 效果图 代码分析 ConfirmCancelBottomSh ...
- .NET Core中的一个接口多种实现的依赖注入与动态选择看这篇就够了
最近有个需求就是一个抽象仓储层接口方法需要SqlServer以及Oracle两种实现方式,为了灵活我在依赖注入的时候把这两种实现都给注入进了依赖注入容器中,但是在服务调用的时候总是获取到最后注入的那个 ...