2017-2018-2 20179216 《网络攻防与实践》 SQL注入攻击

1. SQL语言
结构化查询语言(Structured Query Language)简称SQL:是一种特殊目的的编程语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统;同时也是数据库脚本文件的扩展名。

2. SQL注入
SQL注入能使攻击者绕过认证机制,完全控制远程服务器上的数据库。SQL是结构化查询语言的简称,它是访问数据库的事实标准。目前,大多数Web应用都使用SQL数据库来存放应用程序的数据。几乎所有的Web应用在后台都使用某种SQL数据库。跟大多数语言一样,SQL语法允许数据库命令和用户数据混杂在一起的。如果开发人员不细心的话,用户数据就有可能被解释成命令,这样的话,远程用户就不仅能向Web应用输入数据,而且还可以在数据库上执行任意命令了。
SQL注入技术是利用web应用程序和数据库服务器之间的接口来篡改网站内容的攻击技术。通过把SQL命令插入到Web表单提交框、输入域名框或页面请求框中,最终欺骗服务器执行恶意的SQL命令。

3. SQL注入危害

  • 非法读取、篡改、添加、删除数据库中的数据。
  • 盗取用户的各类敏感信息,获取利益。
  • 通过修改数据库来修改网页上的内容。
  • 私自添加或删除账号。
  • 注入木马等等。

4. SQL注入攻击的过程及原理
SQL注入攻击是指攻击者通过在应用程序后台数据库的操作中插入一些恶意SQL语句来达到操作数据库数据的目的。具体来讲就是,SQL注入攻击是攻击者利用Web应用程序,通过输入非法字符,来构造恶意的SQL语句,最终将恶意的SQL语句注入到应用的后台数据库服务器中。数据库服务器执行这些恶意SQL语句后,不会按照数据库数据表设计者的意图去执行某些操作,而是进行一些非法的操作,进而造成数据库数据的丢失,损坏等后果。这种注入攻击方式困扰着众多Web应用。

**5. SQL注入攻击的手段

  • 没有正确过滤转义字符
    应用系统的使用者输入内容,在没有经过前端验证,字符串过滤的情况下,就会发生SQL注入攻击。非法的输入传递给后台的SQL语句,SQL语句最终在数据库中执行非法的操作。

  • Incorrect type handling
    由于Web应用使用者所输入的参数,在传递过程中并不是强类型,也没有实施必要的类型转换,那么就会发生Incorrect type handling这种情况。比如,应用编码者对用户输入的内容并没有进行合法性检验,原本应该输入数字,但是编码者并未进行类型检验。

  • 数据库自身的漏洞
    某些数据库由于自身设计以及实现的漏洞,就会导致攻击者利用这些漏洞对数据库服务器进行攻击。SQLsever有些漏洞会导致攻击者能够越过访问权限,执行越权的操作,这样对数据库的危害也是极大的。因此应该及时修补数据库漏洞。

  • 盲目SQL注入式攻击
    如果应用系统对于承受的SQL注入攻击没有察觉,没有对攻击者进行有效的防范,就会发生盲目的SQL注入攻击。存在SQL注入攻击点的网页可能不会给攻击者展示有用的信息,它会根据注入攻击者注入到合法语句中的不同逻辑,进而显示不同的网页内容,这种攻击手段非常的耗费精力,需要攻击者不断的精心构造注入语句,一旦发现注入点和注入目标就可以很顺利的获取想要的信息。

  • 条件响应
    目前这种SQL注入攻击方式能够在应用程序的网页中进行逻辑计算。

  • 条件性差错
    通过构造逻辑错误来判断应用程序是否具有注入点。总结归纳出该应用所使用的数据库的类型,数据库中包含的一些数据表名,字段名等,这样就可以为接下来注入点的寻找提供帮助。

  • 时间延误
    通过构造SQL注入语句,使得数据库判断逻辑时间变长,通过判断应用页面的加载时间来判断构造的SQL注入语句是否正确。

1272815-20180520205321220-2118480446.png

6. 攻击的过程主要分为如下步骤
(1)通过多次输入不同的内容来测试当前的应用系统是否可以进行SQL注入,如果可以,那么进行第二步,如果不可以,则放弃。
(2)通过不断的输入测试数据,进而寻找SQL注入攻击点,找到SQL注入攻击点后,接下来就要寻找网站中可以被利用的SQL注入的漏洞。在这里,我们可以通过输入一些特殊字符,语句来寻找漏洞,同时我们也可以根据浏览器的返回的数据库信息,进而可以判断该Web应用所使用的数据库的类型。接下来,我们就可以构造数据库的查询语句,从而找寻注入点。
(3)暴力猜解数据库中存储的一些用户名和密码,一般情况下,服务器的数据库数据表中存放的表名、字段名,字段类型等信息都是有一定规律的。可以通过构建特殊数据库语句,这样可以在数据库通过查询语句来获得用户的表名、字段名、用户名和密码的长度以及内容,网络上存在着大量的SQL自动化注入工具,这个暴力猜解的过程可以通过这些工具来快速的实现。
(4)可以着手寻找Web应用管理后台的入口。通常情况下,Web后台管理的界面肯定是不会对于普通用户进行开放的,因此后台管理界面的路径是未知的。不过可以利用网上的一些路径扫描工具来寻找后台真正的登陆路径。这些路径其实是有规律可循的,经过不断的尝试就可以找到真正的管理后台入口的地址。
(5)此时可以进行系统入侵和破坏了。因为刚刚得到了用户表的用户名和密码,这样一来,就能够获取到管理员的用户名和密码,从而拥有了管理员权限,登录管理员账号,进入应用的管理后台,随后就可以进行篡改网页、上传木马、修改、泄漏用户信息等一系列的破坏行为,并进一步入侵数据库服务器。

7. 针对SQL注入攻击的检测方法
作为排在威胁Web应用安全十大攻击手段之首的SQL注入攻击,在安全产业界和学术界有着很多的深入研究。在传统的安全产业界主要检测和识别SQL注入攻击有如下两种技术:一种是基于特征的关键字匹配技术;另一种是基于异常检测技术。

  • 基于特征的关键字匹配技术:它包含许多关键字匹配算法,一个好的匹配算法是这项技术好坏的评价标准之一,目前主要使用的检测技术就是基于特征的关键字匹配技术,这种技术的核心思想是在SQL语句中抽取出特殊字符(例如#等),提取数据库的关键字(例如:select、union等)。通过提取出来的特殊字符来判断该SQL语句是否进行了SQL注入攻击。
  • 基于异常检测技术:它包含基于程序行为的异常检测技术,基于数据流的异常检测技术和基于聚类的异常检测技术等手段,这种检测技术被业界分为学习期与检测期。在学习期,检测系统必须拥有不受影响的网络系统,必须针对需要检测的Web应用具有专业的学习机制,只有当检测系统经过不断的学习,进而学习成熟后,才能进入系统检期。在系统的检测期,检测系统利用其在学习期演变成的准确模型,对传递进系统来的用户输入数据进行系统地全面分析。尽

8. 针对SQL注入攻击的防御措施

  • 普通用户与系统管理员的权限要严格区分
  • 使用参数化的过滤性SQL语句
  • 需要加强对用户输入的验证
  • 使用数据库自带的安全参数
  • 避免出现一些详细的错误消息
  • 多层环境防治SQL注入式攻击
  • 使用专业的漏洞扫描工具
  • 对数据进行加密处理
  • 在Web应用程序开发过程的所有阶段实施代码的安全检查

转载于:https://www.cnblogs.com/jmjm/p/9064564.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/368677.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

华为智能手表与鸿蒙,不再是大号手环!华为鸿蒙手表来了:要和苹果抢生态?...

5 月 27 日上午,华为终端官方微博官宣,WATCH 3 腕上智慧,一表万象,旗舰归来,将于 6 月 2 日晚 20:00 与 HarmonyOS、MatePad Pro 2 等产品一同发布。依靠手环的超高销量,华为、小米等企业发力,在…

页面重构-让我们的布局自适应

css重构之旅 >前言: 今年我大一,马上就要大二了。从高三毕业暑假到大学的这一年马上过去,马上迎来大二生活.学习前端也有将近一年了。一昧去追求那些视觉的效果和相对高端和新颖的技术,反而忽略了最基础的布局技巧。 回味 2017年3月&am…

重新同步多线程集成测试

我最近在Captain Debug的Blog上偶然发现了一篇文章“ 同步多线程集成测试 ”。 该文章强调了设计涉及被测类以异步方式运行业务逻辑的集成测试的问题。 给出了这个人为的示例(我删除了一些评论): public class ThreadWrapper {public void d…

鸿蒙文化博物馆,有趣、有味、有文化!“周末儿童博物馆”在成博欢乐启幕

昨晚,成都博物馆“周末儿童博物馆”儿童节特别活动“六一欢乐会”拉开帷幕,丰富多彩的各种活动及精彩表演吸引了大批小朋友走进博物馆,提前度过了一个有趣、有味、有文化的“六一”国际儿童节。根据常设展“人与自然:贝林捐赠展”…

Spring MVC:表单处理卷。 3 –复选框处理

我已经发布了有关使用Spring MVC标签库处理checkbox标签的帖子。 现在,我要开发此主题并继续使用“复选框”标签。 它并不难,但是在某些情况下,您最好使用它。 在本文中,我将结合java.util.List和java.util.Map提供Springcheckbox…

html 消息通知声音,ajax实现web页面的消息实时提醒时播放提示音

在应用系统的开发过程中,经常要使用到新消息的提醒功能,比如说后台有一个告警消息,web页面就会实时的收到这个告警的消息,且发出提示音。这其实就是涉及到两个方面的知识,一个是http实时消息的推送,在这儿我…

元素的居中方式总结

最近有点空闲时间,所以想好好看看几个一直没机会看的问题。把它写下来,是促进自己更好地理解,同时也是一个备忘吧! 先说元素居中,元素居中,从最开始接触前端就一直挥之不去的一个问题,也许是太…

JArchitect对Java开源贡献者免费

JArchitect是用于Java代码库的静态分析工具,它提供交互式GUI和HTML报告,用于查找代码中过于复杂或有问题的区域,执行分析以重构并比较随时间的变化。 在版本3中,添加了类似LINQ的查询语言,该工具使该工具成为功能极其强…

android让一个控件跟上面控件对其,学个明白--Android控件架构

Android控件架构1.什么是View?View是Android中所有控件的基类。View是界面层的控件的一种抽象,它代表了一个控件。在Android中每个控件都会在界面中占得一块矩形的区域。在Android中控件被分为两类:View和ViewGroup。ViewGroup控件作为父控件…

分享一个自制的计算子网划分的小工具

使用 javascirpt 写的&#xff0c;因此可以使用浏览器浏览即可 code: <meta charset"utf-8">输入划分网段的数量&#xff1a; <input id"inp_netCount" /> <input type"button" οnclick"createElem()" value"sta…

tmux颜色高亮跟vim不一致的情况

安装完tmux之后&#xff0c;按照网上大神的配置&#xff0c;稍微配置了下~/.tmux.conf&#xff1a; # 改变快捷键前缀 unbind C-b set -g prefix C-a # 绑定配置加载按键 bind r source-file ~/.tmux.conf \; display-message "Config reloaded.."# 设置终端类型为2…

html5表白页面3d,七夕节表白3d相册制作(html5+css3)

七夕节表白3d相册制作涉及知识点定位阴影3d转换动画主要思路&#xff1a;通过定位将所有照片叠在一起&#xff0c;在设置默认的样式以及照片的布局&#xff0c;最后通过设置盒子以及照片的旋转动画来达到效果。代码如下&#xff1a;3d相册/* 使用单位将所有照片叠在一起 */img{…

(1)pandas 基础教程

步骤1、环境准备 右击桌面上选择【Open in Terminal】 打开终端。在弹出的终端中输入【ipython】进入Python的解释器中&#xff0c;如图1所示。 图1 ipython解释器步骤2、导入所需要的包 导入实验常用的python包。如图2所示。【import pandas as pd】pandas用来做数据处理。【i…

CSS3效果:波浪效果

实现效果 如图所示&#xff1a; 首先得准备三张图&#xff0c;一张是浅黄色的背景图loading_bg.png&#xff0c;一张是深红色的图loading.png&#xff0c;最后一张为bolang.png。 css代码 body{background:#ffe894;}.loading_bg{width:113px; height:111px;background:url(lo…

html创建文件域的代码,word如何插入域代码

在word里怎么进行域代码的设置&#xff1f;如果知道要插入的域的域代码&#xff0c;可以将其直接键入在文档中。首先按 CtrlF9&#xff0c;然后在括号中键入代码就可以了。【Word插入域方法】1、Word2007中&#xff0c;在要插入域的位置单击。2、在“插入”选项卡上的“文字”组…

前端页面适配的rem换算

为什么要使用rem 之前有些适配做法&#xff0c;是通过js动态计算viewport的缩放值&#xff08;initial-scale&#xff09;。 例如以屏幕320像素为基准&#xff0c;设置1&#xff0c;那屏幕375像素就是375/3201.18以此类推。 但直接这样强制页面缩放过于粗暴&#xff0c;会导致页…

css清除浮动

css设计浮动属性的主要目的&#xff0c;是为了实现文本绕排图片的效果。 一.浮动 当浮动一张图片或者其他元素时&#xff0c;浏览器会将浮动元素往上方推&#xff0c;直到它碰到父元素的内边界。后面的元素不再认为浮动元素在文档流中位于它的前面了&#xff0c;因为它就会占…

gitlab搭建配置;ssh配置;

1.centos7上搭建gitlab&#xff0c;过程略&#xff1b; 命令&#xff1a;gitlab-ctl [start] [stop] [restart] [reconfigure] [tail] 查看gtilab日志 [status] 查看gitlab运行状态信息 2.修改默认ip端口&#xff1a; vim /etc/gitlab/gitlab.rb &#xff1b; external_url h…

家用计算机历史记录,教您如何查看电脑使用记录

很多朋友想查看自己之前使用过的文件或者文档来查询资料&#xff0c;或者是想看电脑是否被人使用过&#xff0c;但是&#xff0c;如何查看电脑使用记录呢&#xff1f;下面系统之家小编教大家查看电脑使用记录小技巧&#xff0c;不用担心找不到电脑使用记录。希望对大家有所帮助…

类的无参方法和Doc注释

一:Java Doc注释: 语法: /** *AccpSchool 类 *author JadeBird *version 1.0 2018/5/26 */ Java Doc是前Sun公司提供的一种技术,它能够从程序代码中抽取类,方法,成员等的注释,形成一个和源代码配套的API帮助文档(简答地说,就是介绍该类,类的方法和成员变量的文档). 因此只要在编…