sql注入攻击的基本原理解析

sql注入攻击的基本原理解析,第1张

  对于Web应用来说,注射式攻击由来已久,攻击方式也五花八门,常见的攻击方式有SQL注射、命令注射以及新近才出现的XPath注射等等。

  SQL注入的概述

  定义:SQL注入即是指web应用程序对用户输入数据的合法性没有判断,攻击者可以在web应用程序中事先定义好的查询语句的结尾上添加额外的SQL语句,以此来实现欺骗数据库服务器执行非授权的任意查询,从而进一步得到相应的数据信息。

  为了更直观的让大家了解到sql注入的原理,贴上一张sql注入攻击示意图

  sql注入攻击的基本原理解析,sql注入攻击的基本原理解析,第2张

  SQL注入威胁表现形式可以体现为以下几点:

  ●绕过认证,获得非法权限

  ●猜解后台数据库全部的信息

  ●注入可以借助数据库的存储过程进行提权等 *** 作

  ●SQL注入攻击的典型手段

  ●判断应用程序是否存在注入漏洞

  ●收集信息、并判断数据库类型

  ●根据注入参数类型,重构SQL语句的原貌

  ●猜解表名、字段名

  ●获取账户信息、攻击web或为下一步攻击做准备

  SQL注入攻击原理:

  当应用程序使用输入内容来构造动态sql语句以访问数据库时,会发生sql注入攻击。如果代码使用存储过程,而这些存储过程作为包含未筛选的用户输入的字 符串来传递,也会发生sql注入。sql注入可能导致攻击者使用应用程序登陆在数据库中执行命令。如果应用程序使用特权过高的帐户连接到数据库,这种问题会变得很严重。在某些表单中,用户输入的内容直接用来构造动态sql命令,或者作为存储过程 的输入参数,这些表单特别容易受到sql注入的攻击。而许多网站程序在编写时,没有对用户输入的合法性进行判断或者程序中本身的变量处理不当,使应用程序 存在安全隐患。这样,用户就可以提交一段数据库查询的代码,根据程序返回的结果,获得一些敏感的信息或者控制整个服务器,于是sql注入就发生了。

  SQL注入是从正常的WWW端口访问,而且表面看起来跟一般的Web页面访问没什么区别,所以目前市面的防火墙都不会对SQL注入发出警报,如果管理员没查看IIS日志的习惯,可能被入侵很长时间都不会发觉。但是,SQL注入的手法相当灵活,在注入的时候会碰到很多意外的情况,需要构造巧妙的SQL语句,从而成功获取想要的数据。

  sql注入攻击的基本原理解析,sql注入攻击的基本原理解析,第3张

  SQL注入危害:攻击者可以获得网站敏感信息,例如:网站管理员的用户名以及密码。从而对网站的信息进行窃取或篡改。

  这里我们举一个比较常见的例子来简要说明一下sql注入的原理。假如我们有一个users表,里面有两个字段username和password。在我们的java代码中我们初学者都习惯用sql拼接的方式进行用户验证。比如:“select id from users where username = ‘”+username +“’ and password = ‘” + password +“’” 这里的username和password都是我们存取从web表单获得的数据。下面我们来看一下一种简单的注入,如果我们在表单中username的输入框中输入‘ or 1=1-- ,password的表单中随便输入一些东西,假如这里输入123.此时我们所要执行的sql语句就变成了select id from users where username = ’‘ or 1=1-- and password = ’123‘,我们来看一下这个sql,因为1=1是true,后面 and password = ’123‘被注释掉了。所以这里完全跳过了sql验证。这里只是简单的举一个例子。很多sql注入的方式还有很多。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/dianzi/2717279.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-08-17
下一篇 2022-08-17

发表评论

登录后才能评论

评论列表(0条)

保存