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表单递交查询 ...
随机推荐
- MySQL数据库Inception工具学习与测试 笔记
MySQL语句的审核,在业界都已经基本被认同了,实际上也是对MySQL语句写法的统一化,标准化,而之前的人工审核,针对标准这个问题其实是很吃力的,标准越多,DBA越累,开发也越累. 那么在这个都追求自 ...
- getopt与getopt_long
如何通过命令行,为程序传入参数,可以使用函数getopt与getopt_long. 函数的声明如下: #include <unistd.h> int getopt(int argc, ch ...
- WinServer设置多用户登录
1.运行 gpedit.msc →computer configuration→administrative templates→windows componets→Remote Desktop→Re ...
- windows系统以及linux系统的优缺点以及区别
一.Linux以及Windows系统的优缺点对比 Windows Linux 优点 Windows Server系统相对于其他服务器系统而言,极其易用,极大降低使用者的学习成本. Linux系统是 ...
- UEditor单图上传跨域问题解决方案
UEditor UEditor是百度团队提供的富文本编辑器 git地址为:https://github.com/fex-team/ueditor 在最近的项目中使用了该插件作为项目的富文本编辑器 由于 ...
- vscode创建net core控制台程序
vscode近来深受的开发人员的喜爱.在下的前端同事们也纷纷使用vscode.在下就想了我等后端程序员也可以用vscode写C#代码.毕竟是从宇宙第一IDE ----Visual Studio衍生的 ...
- js简单四则运算
作业来源 本次作业要求来自于:https://edu.cnblogs.com/campus/gzcc/GZCC-16SE1/homework/2166 我的项目GitHub远程仓库地址:https:/ ...
- 【Python3爬虫】百度一下,坑死你?
一.写在前面 这个标题是借用的路人甲大佬的一篇文章的标题(百度一下,坑死你),而且这次的爬虫也是看了这篇文章后才写出来的,感兴趣的可以先看下这篇文章. 前段时间有篇文章<搜索引擎百度已死> ...
- 基于SpringBoot实现定时任务的设置(常用:定时清理数据库)
1.构建SpringBoot工程项目 1)创建一个Springboot工程,在它的程序入口加上@EnableScheduling,开启调度任务. @SpringBootApplication @Ena ...
- Scrum Mastery:有效利用组织的5个步骤
组织以什么样的方式能最大限度的发挥Scrum的优势?组织在哪些方面阻碍了个人的发展?Scrum是一种能使业务变得敏捷的框架.而组织恰恰需要变得敏捷.只是,组织本身有时候并没有足够的能力来帮助Scrum ...