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表单递交查询 ...
随机推荐
- 在github上fork项目如何同步并解决冲突
在github上fork项目如何同步并解决冲突 在github上有些项目我们可能会进行一些自己功能的添加但是提交PR后作者基于设计或者其他原因考虑没有通过,但是这个功能又是我们必须的.这时我们就想自己 ...
- Python之路【第八篇】:Python模块
阅读目录 一.模块和包 模块(module)的概念: 在计算机程序的开发过程中,随着程序代码越写越多,在一个文件里代码会越来越长,越来越不容易维护. 为了编写可维护的代码,我们把很多函数分组,分别放到 ...
- gin+gorm
在[环境变量]中添加如下[用户变量]/[系统变量]:GO111MODULE,值为on go mod init目录 在项目中新建文件main.go,并添加测试代码 package main import ...
- 升讯威微信营销系统开发实践:(3)功能介绍与此项目推广过程的一些体会( 完整开源于 Github)
GitHub:https://github.com/iccb1013/Sheng.WeixinConstruction因为个人精力时间有限,不会再对现有代码进行更新维护,不过微信接口比较稳定,经测试至 ...
- 解决Ajax请求时无法重定向的问题
今天发现,当使用Ajax请求时,如果后台进行重定向到其他页面时是无法成功的,只能在浏览器地址栏输入才能够实现重定向. Ajax默认就是不支持重定向的,它是局部刷新,不重新加载页面. 需要实现的功能是, ...
- 4年前端、2年CTO:一个非科班程序员的真实奋斗史
1.引言 我,Scott,一家创业公司的 CTO. 从业6年却很少写文章,近一年来接触了几十个刚毕业的前端新人,也面试了100多个前端工程师和Nodejs工程师,对于前端发展的这个职业算是有些感触 ...
- 每日分享!~ JavaScript中面试基础--1,数组检测的方式 2.传统事件绑定和W3C标准绑定事件的区别~
javaScript 那些方式中检测数据类型 typeof typeof isNaN // 结果是function 检测数组的几种方式 instanceof arr instanceof Array( ...
- 【Netty】(3)—源码NioEventLoopGroup
netty(3)-源码NioEventLoopGroup 一.概念 NioEventLoopGroup对象可以理解为一个线程池,内部维护了一组线程,每个线程负责处理多个Channel上的事件,而一个C ...
- 系列文章|OKR与敏捷(二):实现全栈敏捷
OKR与敏捷开发的原理有着相似之处,但已经使用敏捷的团队再用OKR感觉会显得多余.这种误解的根源就在于对这两种模式不够了解,运用得当的情况下,OKR和敏捷可以形成强强联合的效果,他们可以创造出以价值为 ...
- 2.5配置的框架浅析「深入浅出ASP.NET Core系列」
希望给你3-5分钟的碎片化学习,可能是坐地铁.等公交,积少成多,水滴石穿,谢谢关注. 配置的使用流程 //第一步.初始化Builder var builder = new ConfigurationB ...