SQL注入:究竟什么时候会用到SQL呢?回答是訪问数据库的时候。也就是说SQL注入-->直接威胁到了数据源,呵呵。数据库都收到了威胁,站点还能正常现实么?

所谓SQL注入,就是通过把SQL命令插入到Web表单提交或输入域名或页面请求的查询字符串。终于达到欺骗server运行恶意的SQL命令。

详细来说,它是利用现有应用程序,将(恶意)的SQL命令注入到后台数据库引擎运行的能力,它能够通过在Web表单中输入(恶意)SQL语句得到一个存在安全漏洞的站点上的数据库。而不是依照设计者意图去运行SQL语句。

[1]比方先前的非常多影视站点泄露VIP会员password大多就是通过WEB表单递交查询字符暴出的,这类表单特别easy受到SQL注入式攻击

依据相关技术原理,SQL注入能够分为平台层注入和代码层注入。

前者由不安全的数据库配置或数据库平台的漏洞所致;后者主要是因为程序猿对输入未进行仔细地过滤,从而运行了非法的数据查询。基于此,SQL注入的产生原因通常表如今下面几方面:①不当的类型处理;②不安全的数据库配置。③不合理的查询集处理;④不当的错误处理;⑤转义字符处理不合适;⑥多个提交处理不当。

注入方法:

1.猜表名。列名等

先猜表名

And (Select count(*) from 表名)<>0

猜列名

And (Select count(列名) from 表名)<>0

或者也能够这样

and exists (select * from 表名)

and exists (select 列名 from 表名)

返回正确的,那么写的表名或列名就是正确

2.后台身份验证绕过漏洞

验证绕过漏洞就是'or'='or'后台绕过漏洞,利用的就是AND和OR的运算规则,从而造成后台脚本逻辑性错误

比如管理员的账号password都是admin。那么再比方后台的数据库查询语句是

user=request("user")

passwd=request("passwd")

sql='select admin from adminbate where user='&'''&user&'''&' and passwd='&'''&passwd&'''

那么我使用'or 'a'='a来做usernamepassword的话,那么查询就变成了

select admin from adminbate where user=''or 'a'='a' and passwd=''or 'a'='a'

这种话,依据运算规则。这里一共同拥有4个查询语句,那么查询结果就是 假or真and假or真,先算and 再算or,终于结果为真
。这样就能够进到后台了

怎样预防 呢?归纳一下,主要有下面几点:

1.永远不要信任用户的输入。对用户的输入进行校验,能够通过正則表達式,或限制长度;对单引號和
双"-"进行转换等。

2.永远不要使用动态拼装sql,能够使用參数化的sql或者直接使用存储过程进行数据查询存取。
3.永远不要使用管理员权限的数据库连接,为每一个应用使用单独的权限有限的数据库连接。

4.不要把机密信息直接存放。加密或者hash掉password和敏感的信息。
5.应用的异常信息应该给出尽可能少的提示,最好使用自己定义的错误信息对原始错误信息进行包装
6.sql注入的检測方法一般採取辅助软件或站点平台来检測。软件一般採用sql注入检測工具jsky,站点平台就有亿思站点安全平台检測工具。MDCSOFT
SCAN等。採用MDCSOFT-IPS能够有效的防御SQL注入。XSS攻击等。
等待试验........

SQL注入原理以及怎样避免注入的更多相关文章

  1. SQL注入原理及代码分析(二)

    前言 上一篇文章中,对union注入.报错注入.布尔盲注等进行了分析,接下来这篇文章,会对堆叠注入.宽字节注入.cookie注入等进行分析.第一篇文章地址:SQL注入原理及代码分析(一) 如果想要了解 ...

  2. sql盲注之报错注入(附自动化脚本)

    作者:__LSA__ 0x00 概述 渗透的时候总会首先测试注入,sql注入可以说是web漏洞界的Boss了,稳居owasp第一位,普通的直接回显数据的注入现在几乎绝迹了,绝大多数都是盲注了,此文是盲 ...

  3. Java程序员从笨鸟到菜鸟之(一百)sql注入攻击详解(一)sql注入原理详解

    前段时间,在很多博客和微博中暴漏出了12306铁道部网站的一些漏洞,作为这么大的一个项目,要说有漏洞也不是没可能,但其漏洞确是一些菜鸟级程序员才会犯的错误.其实sql注入漏洞就是一个.作为一个菜鸟小程 ...

  4. SQL注入原理

    随着B/S模式应用开发的发展,使用这种模式编写应用程序的程序员也越来越多.但是由于这个行业的入门门槛不高,程序员的水平及经验也参差不齐,相当大一 部分程序员在编写代码的时候,没有对用户输入数据的合法性 ...

  5. SQL注入原理深度解析

    本文转自:http://www.iii-soft.com/forum.php?mod=viewthread&tid=1613&extra=page%3D1 对于Web应用来说,注射式攻 ...

  6. SQL注入原理及绕过安全狗

    1.什么是SQL注入攻击 SQL注入攻击指的是通过构造特殊的输入作为参数插入到Web表单的输入域或页面请求的查询字符串,欺骗服务器执行恶意的SQL命令 http://www.xxx.com/list. ...

  7. 第1课:SQL注入原理深度解析

    对于Web应用来说,注射式攻击由来已久,攻击方式也五花八门,常见的攻击方式有SQL注射.命令注射以及新近才出现的XPath注射等等.本文将以SQL注射为例,在源码级对其攻击原理进行深入的讲解. 一.注 ...

  8. 回头探索JDBC及PreparedStatement防SQL注入原理

    概述 JDBC在我们学习J2EE的时候已经接触到了,但是仅是照搬步骤书写,其中的PreparedStatement防sql注入原理也是一知半解,然后就想回头查资料及敲测试代码探索一下.再有就是我们在项 ...

  9. SQL注入原理&分类&危害&防御

    SQL是什么? 结构化查询语句 SQL注入是什么? 是一种将SQL 语句插入或添加到用户输入的参数中,这些参数传递到后台服务器,加以解析并执行 造成注入的原因/原理? 1.对用户输入的参数没有进行严格 ...

随机推荐

  1. ubuntu查看文件大小

    使用linux命令df 和du,df 但是df只能查看一级文件夹大小.使用比例.档案系统及其挂入点,但对文件却无能为力.du可以查看文件及文件夹的大小.所以基本上是两者配合使用. 一 df h参数, ...

  2. 聚类(三)FUZZY C-MEANS 模糊c-均值聚类算法——本质和逻辑回归类似啊

    摘自:http://ramsey16.net/%E8%81%9A%E7%B1%BB%EF%BC%88%E4%B8%89%EF%BC%89fuzzy-c-means/ 经典k-均值聚类算法的每一步迭代中 ...

  3. javascript设计模式-单体模式

    场景:假设有一个Girl(美女)实体,该实体拥有姓名.年龄两个属性,拥有显示姓名和洗澡两个方法,下面分步骤构造该实体. 1.用简单基本单体模式: var Girl1 = { name:"昭君 ...

  4. Koa 中实现 chunked 数据传输

    有关于 Transfer-Encoding:chunked 类型的响应,参见之前的文章HTTP 响应的分块传输.这里看 Koa 中如何实现. Koa 中请求返回的处理 虽然官方文档有描述说明不建议直接 ...

  5. 软件需求规范说明 (Software Requirements Specification, 简称SRS)

    GB/T 9385-2008 笔记 为了形成确定和完备的规格说明, 我们需要明确 软件的顾客希望得到什么; 软件的供方理解用户想要什么; 4.2 SRS的基本性质 SRS是对在具体环境中执行确定功能的 ...

  6. NOIP2012D2T1 同余方程

    [NOIP2012T4]同余方程 noip2012-tg 描述 求关于 x的同余方程 ax ≡ 1(mod b) 的最小正整数解. 输入格式 输入文件 mod.in 输入只有一行,包含两个正整数a,b ...

  7. poj 1161 Floyd+枚举

    题意是: 给出n个点,围成m个区域.从区域到另一个区域间需穿过至少一条边(若两区域相邻)——边连接着两点. 给出这么一幅图,并给出一些点,问从这些点到同一个区域的穿过边数最小值. 解题思路如下: 将区 ...

  8. [hihicoder][Offer收割]编程练习赛47

    删除树节点 #pragma comment(linker, "/STACK:102400000,102400000") #include<stdio.h> #inclu ...

  9. Android拍照,录制视频,相机简单功能实现

    1.效果图,功能没有录制出来. 基本实现了拍照,录制视频,前后摄像头切换的功能,可以转屏,聚焦. 代码在最下面,可以看代码,运行apk看实际效果. 2.权限不能忘 <uses-permissio ...

  10. PHP中的字符串类型

    PHP支持两种类型的字符串,这些字符串用引号说明. 1.如果希望赋值一个字面意义的字符串,精确保存这个字符串的内容,应该用单引号标注,例如: $info='You are my $sunshine'; ...