SQL注入技术专题—由浅入深【精华聚合贴】

SQL注入技术专题—由浅入深【精华聚合贴】


不管用什么语言编写的Web应用,它们都用一个共同点,具有交互性并且多数是数据库驱动。在网络中,数据库驱动的Web应用随处可见,由此而存在的SQL注入是影响企业运营且最具破坏性的漏洞之一。

本文来源:i春秋社区-分享你的技术,为安全加点温度

什么是SQL注入

SQL注入基本介绍

结构化查询语言(Structured Query Language,缩写:SQL),是一种特殊的编程语言,用于数据库中的标准数据查询语言。1986年10月,美国国家标准学会对SQL进行规范后,以此作为关系式数据库管理系统的标准语言(ANSI X3. 135-1986),1987年得到国际标准组织的支持下成为国际标准。不过各种通行的数据库系统在其实践过程中都对SQL规范作了某些编改和扩充。所以,实际上不同数据库系统之间的SQL不能完全相互通用。

SQL注入(SQL Injection)是一种常见的WEB安全漏洞,攻击者利用这个问题,可以访问或修改数据,或者利用潜在的数据库漏洞进行攻击。

SQL注入产生原因

针对SQL注入的攻击行为可描述为通过在用户可控参数中注入SQL语法,破坏原有SQL结构,达到编写程序时意料之外结果的攻击行为。其成因可以归结为以下两个原因叠加造成的:

1. 程序编写者在处理应用程序和数据库交互时,使用字符串拼接的方式构造SQL语句

2. 未对用户可控参数进行足够的过滤便将参数内容拼接进入到SQL语句中

SQL注入攻击方式

SQL注入的攻击方式根据应用程序处理数据库返回内容的不同,可以分为可显注入、报错注入和盲注:


1、可显注入:攻击者可以直接在当前界面内容中获取想要获得的内容


2、报错注入:数据库查询返回结果并没有在页面中显示,但是应用程序将数据库报错信息打印到了页面中,所以攻击者可以构造数据库报错语句,从报错信息中获取想要获得的内容


3、盲注:数据库查询结果无法从直观页面中获取,攻击者通过使用数据库逻辑或使数据库库执行延时等方法获取想要获得的内容

如何进行SQL注入攻击
SQL注入攻击是非常令人讨厌的安全漏洞,是所有的web开发人员,不管是什么平台,技术,还是数据层,需要确信他们理解和防止的东西。不幸的是,开发人员往往不集中花点时间在这上面,以至他们的应用,更糟糕的是,他们的客户极其容易受到攻击。下面的三部曲从漏洞发现到漏洞确认,再到漏洞利用,最后漏洞防御四个方面的技术做了详细的讲解。


SQL注入三部曲:

1、 渗透攻防Web篇-SQL注入攻击初级
2、 渗透攻防Web篇-SQL注入攻击中级
3、 渗透攻防Web篇-SQL注入攻击高级

SQL注入经验与技巧
经验很重要,成功往往在多次失败之后。要想减少失败,就多看文章积累技巧吧,下面集合了论坛相关技术文章,从各个方面介绍了SQL注入。


1、 SQL学习笔记
http://bbs.ichunqiu.com/thread-2274-1-1.html

2、 人人都可学会的MySQL高级注射技巧
3、 详解MySQL注射
4、 浅谈.NET应用程序SQL注入
5、 在SQL注入中使用DNS获取数据
6、 WEB安全系列之如何挖掘sql注入漏洞(二次注入)
7、深入了解php+mysql注入及修补!
8、技巧整合 - mysql注入点的另类利用
9、浅谈sql注入中的Post注入
相关教程
...............................................................................................................略,
查看全文请看这里》》》》》》》原文地址:http://bbs.ichunqiu.com/thread-12105-1-1.html
 
原文地址:https://www.cnblogs.com/ichunqiu/p/5895307.html