网站安全基础知识
来源:互联网 发布:it维修服务流程 编辑:程序博客网 时间:2024/06/06 16:57
Web SQL注入攻击的危害
Web安全纷繁复杂,危害最严重的当属SQL注入。SQL Injection,中文名称为“SQL 注入”是一种数据库攻击手段,也是WEB应用程序漏洞存在的一种表现形式,它的实际意义就是利用某些数据库的外部接口把用户数据插入到实际的数据库 操作语言当中,从而达到入侵数据库乃至操作系统的目的。
SQL Injection 的主要形式是,直接将代码插入与 SQL 命令串联并执行的用户输入变量中,间接的将恶意代码注入要在表中存储或作为元数据存储的字符串,在存储的字符串随后串连到一个动态 SQL 命令中时,执行该恶意代码。基本的攻击是提前终止文本字符串,然后追加一个新的命令。由于插入的命令可能在执行前追加其他字符串,因此攻击者将用注释标记“ ”来中止注入的字符串。执行时,此后的指令将被忽略.
SQL Injection 攻击技术就起本质而言,它利用的工具是SQL的语法,针对的是应用程序开发者编程中的漏洞,当攻击者能操作数据,向应用程序中插入一些SQL语句时,SQL Injection攻击就发生了。实际上,SQL Injection攻击是存在于常见的多连接的应用程序中的一种漏洞,攻击者通过在应用程序预先定义好的查询语句结尾加上额外的SQL语句元素,欺骗数据库服务器执行非授权的任意查询。这类应用程序一般是Web Application,它允许用户输入查询条件,并将查询条件嵌入SQL 语句中,提交到数据库中执行。通过构造畸形SQL语句攻击者能够获取额外的信息数据。
就风险而言,SQL Injection攻击也是位居前列,和缓冲区溢出漏洞相比,其优势在于能够轻易的绕过防火墙直接访问数据库,甚至能够获得数据库所在的服务器的访问权限。在某些环境下,SQL Injection 漏洞的风险要高过其他所有的漏洞。SQL Injection攻击利用的是SQL 语法,这使得这种攻击具有广泛性。特点鲜明:
隐蔽性强
利用Web漏洞发起对WEB应用的攻击纷繁复杂,包括SQL 注入,跨站脚本攻击等等,一个共同特点是隐蔽性强,不易发觉,因为一方面普通网络防火墙是对HTTP/HTTPS全开放的,另一方面,对Web应用攻击的变化非常多,传统的基于特征检测的IDS对此类攻击几乎没有作用。
攻击时间短
可在短短几秒到几分钟内完成一次数据窃取、一次木马种植、完成对整个数据库或Web服务器的控制,以至于非常困难作出人为反应。
危害性大
目前几乎所有银行,证券,电信,移动,政府以及电子商务企业都提供在线交易,查询和交互服务。用户的敏感信息包括账户,个人私密信息(如身份证),交易信息等等,都是通过Web存储于后台数据库中, 这样,在线服务器一旦瘫痪,或虽在正常运行,但后台数据已被篡改或者窃取, 都将造成企业或个人巨大的损失。据权威部门统计,目前身份失窃(identity theft)已成为全球最严重的问题之一。
非常严重的有形和无形损失
目前,包括政府以及很多大型企业尤其是在国内外上市的企业, 一旦发生这类安全事件,必将造成人心惶惶,名誉扫地,以致于造成经济和声誉上的巨大损失,即便不上市,其影响和损失也是不可估量的。
防SQL注入的例子
Asp程序
强制类型转换,下为过滤整个整形数据变量
nId = cint(request(“id”))
sql = “select * from user where id=” + cstr(nId)
Asp.NET程序
利用参数方式查询和SqlParameter参数,来杜绝SQL 注入型式。
strUid = Request.QueryString[“uid”].Trim();
strSql = “SELECT * FROM [users] WHERE [uid]=@uid”;
sqlParameter = new SqlParameter(“@uid”, SqlDbType.VarChar);
sqlParameter.Value = strUid;
sqlCommand.Parameters.Add(sqlParameter);
sqlDataReader = sqlCommand.ExecuteReader();
strUid = Request.QueryString[“uid”].Trim();
strSql = “SELECT * FROM [users] WHERE [uid]=@uid”;
sqlCommand = new SqlCommand(strSql, sqlConnection);
sqlParameter = new SqlParameter(“@uid”, SqlDbType.VarChar);
sqlParameter.Value = strUid;
sqlCommand.Parameters.Add(sqlParameter);
sqlDataReader = sqlCommand.ExecuteReader();
strUid = Integer.Parse(Request.QueryString[“uid”].Trim());
strSql = “SELECT * FROM [users] WHERE [uid]=@uid”;
sqlCommand = new SqlCommand(strSql, sqlConnection);
sqlParameter = new SqlParameter(“@uid”, SqlDbType.Int);
sqlParameter.Value = strUid;
sqlCommand.Parameters.Add(sqlParameter);
sqlDataReader = sqlCommand.ExecuteReader();
Dim SSN as String = Request.QueryString(“SSN”)
Dim cmd As new SqlCommand(“SELECT au_lname, au_fname FROM authors
WHERE au_id = @au_id”)
Dim param = new SqlParameter(“au_id”, SqlDbType.VarChar)
param.Value = SSN
cmd.Parameters.Add(param)
ANI木马的危害
ANI木马指的是利用ANI漏洞,向WEB应用系统插入特制的恶意代码,对访客造成巨大的安全威胁。
ANI漏洞的利用程序通过伪装成某个图片欺骗用户点击。E6、IE7或者是FireFox\Opera等非IE浏览器、Windows NT\2000\XP\2003\Vista操作系统以及QQ、MSN、各种邮件软件、RSS等网络应用软件都可能受到该漏洞的影响。
ANI漏洞多个版本的利用程序使用一定的技巧,能绕过绝大多数杀毒软件、防漏洞软件以及主动防御软件,使其失效。
用户一旦点击了包含恶意代码的网站或邮件,病毒或恶意程序立即在后台运行,在没有任何反应的情况下使用户的机器感染盗号木马、恶意广告软件、蠕虫病毒等。
===============================================
Microsoft Windows Vista 所有版本
Microsoft Windows XP 所有版本
Microsoft Windows Server 2003 SP1
Microsoft Windows Server 2003
Microsoft Windows 2000 所有版本
===============================================
Microsoft Windows 是微软发布的非常流行的操作系统。
Microsoft Windows在处理畸形的动画图标文件(.ani)时存在缓冲区溢出漏洞,远程攻击者可能利用此漏洞控制用户机器.
Microsoft Windows在处理畸形文件(.ani)时没有正确地验证ANI头中所指定的大小,导致栈溢出漏洞如果用户受骗使用IE访问了恶意站点或打开了恶意的邮件消息的话,就会触发这个溢出,导致执行任意代码。
ActiveX 弱点的危害
ActiveX插件让网页内容变得更加丰富,如用户可以在IE浏览器中播放Flash动画、在线观看影片、在线杀毒等。ActiveX插件技术将程序本身和IE浏览器融为一体,扩展了IE的功能,大家常见的3721网络助手、百度搜索伴侣等就是依靠这项技术。
由于ActiveX插件本身存在安全缺陷以及漏洞,在为用户提供方便的同时,针对ActiveX开发的病毒和木马应运而生。由于从网页中调用ActiveX插件十分容易,致使ActiveX插件成为病毒木马良好的寄生传染介质。攻击者将恶意代码嵌入到网页中,当用户浏览该网页时,通过ActiveX插件的安装,病毒和木马悄悄潜入电脑,随即在后台默默执行,在没有任何告警的情况下使用户的机器感染盗号木马、恶意广告软件、蠕虫病毒等。
可疑木马的危害
B/S构架的应用系统的木马包括Webshell和恶意木马。
Webshell是Web入侵的脚本攻击工具。Webshell即asp或php木马后门,黑客在入侵了一个网站后,常常在将这些Asp或 Php木马后门文件放置在网站服务器的Web目录中,然后黑客就可以用Web的方式,通过Asp或Php木马后门控制网站服务器,包括上传下载文件、查看数据库、执行任意程序命令等。
恶意代码是攻击者对网站数据进行篡改,插入恶意木马,欺骗用户点击。当用户点击带有恶意代码的图片、Flash以及ActiveX插件等,恶意木马立即潜入电脑,随即在后台默默执行,在没有任何告警的情况下使用户的机器感染盗号木马、恶意广告软件、蠕虫病毒等。
表单绕过危害
FORM检测是针对页面的表单的安全性做的检测,其中最重要部分是对表单绕过漏洞的检测。当WEB后台管理页面存在表单绕过漏洞时,导致攻击者可以以任意口令获取表单认证,从而获取后台的管理权限。
XSS 跨站漏洞以及钓鱼式攻击
XSS,中文名称为跨站脚本,是一种很常见的脚本漏洞。因为跨站脚本攻击不能直接对系统进行攻击,所以往往被人们忽视。由于WEB应用程序没有对用户的输入进行严格的过滤和转换,就导致在返回页面中可能嵌入恶意代码。远程攻击者可以利用这些漏洞在用户浏览器会话中执行任意HTML和脚本代码。跨站脚本执行漏洞的攻击效果需要借助第三方网站来显现,因此这种攻击能在一定程度上隐藏身份。
由于跨站脚本不能直接对系统进行攻击,所以跨站脚本总是伴随社会工程学来实现攻击的,这种攻击的主要表现形式是钓鱼式攻击。钓鱼式攻击方式有很多,比如获取Cookie, 伪造页面,屏蔽页面特定信息,与其它漏洞结合攻击操作系统等等。钓鱼式攻击是针对人脑的攻击方式,它的传播手段有EMAIL、IM、聊天室、恶意连接、游戏中的聊天系统,凡是能实现用户之间互动操作的系统都存在钓鱼式攻击的风险。
在电子商务蓬勃发展的今天,针对个人财务信息的钓鱼攻击事件数量成直线上升,其中一个主要攻击途径就是跨站脚本执行漏洞。据统计,国内外存在跨站脚本漏洞的网站多达60%, 其中包括许多大型知名网站。
WebService XPath 注入的危害
随着简单 XML API、Web 服务和 Rich Internet Applications (RIAs) 的发展,更多组织几乎在所有方面(从配置文件到远程过程调用)都采用 XML 作为数据格式。一般的Web2.0网站和复杂的WEB应用使用XML作为数据格式。XML 应用程序更容易受到代码注入的攻击,尤其是 XPath 注入攻击。
Path语言表达的句法与SQL查询在许多方面都有些相似,但是Xpath注入攻击的危险性更胜于SQL注入攻击。
与SQL注入攻击带来的危害相似,攻击者能利用Xpath注入同样能迅速获取数据库的删除、修改、读取权限,并可以利用数据库的特性迅速获取服务器的控制权限;同时大多数B/S架构的数据库都提供了某种形式的访问和权限控制,限制用户访问某些表格、字段或者查询。这种权限控制限制攻击者访问应用程序的数据库账户,而XPath没有为数据库文件提供访问限制,攻击者利用Xpath注入能够查询这个数据库中的全部XML对象。
登录口令破解的危害
安全研究人员使用工具对部分已知密码进行分析: “123456” 和 “password” 是最流行的口令;研究人员特别从心理学角度分析密码的使用模式:14%的密码是严 格遵循键盘布局,如“1234”或“qwerty”或“asdf”;另有一些略有变化,如“1qaz2wsx”或“1q2w3e”,“159357”则是根据数字键盘布局。
研究人员还推测右撇子喜欢用“1234”之类,左撇子常用 “159357”。
用户使用口令的时候很难辨别自己的口令是否是弱口令,很多用户认为123456这样简单的口令不会有人使用。除了此类口令还有一些遵循键盘排布规律的弱口令,使用者更加难以判断。
弱口令的危害
口令失窃是现在黑客事件中比较常见一个问题,这种攻击相对隐蔽,即使口令出现泄漏也不宜发觉。
CGI弱点的危害
WebServer设计时候的缺陷,导致攻击者可以利用一些攻击代码等方式轻易获取目录、文件结构、文件内容甚至执行命令等。利用CGI漏洞,可以通过直接删除程序或者改写程序来达到非法入侵的目的。
源代码泄漏
由于Web服务器在构建时,未修改服务器的默认配置以及浏览权限,导致攻击者轻易获取B/S构架中服务端的应用程序代码。通过阅读应用程序代码,获取程序代码中存在的安全隐患、服务器架构信息甚至数据库敏感信息。
- 网站安全基础知识
- 网站基础知识
- 网站安全
- 网站安全
- 网站安全
- 网站安全
- 安全网站
- 网站安全
- 高并发Web网站构建和安全防护(基础知识分享)
- 计算机网络及安全基础知识
- java线程安全-基础知识
- 服务器安全基础知识
- 信息安全基础知识
- 【WEB安全】:基础知识
- [安全]基础知识(汇编)
- Linux安全基础知识
- 信息安全基础知识总结-信息安全概述
- 网站分析基础知识
- hibernate 一对一(One-to-One)
- Android开发所需工具
- Android setOnCreateContextMenuListener实现长按ListItem弹出不同菜单
- 在Linux集群上安装和配置Spark
- 大师之路解惑基础概念篇:Java Servlet与Web容器之间的关系
- 网站安全基础知识
- spring注解 springmvc的注解
- 从今天起开始记录一下自己的成长之路
- ajax 用法 + json使用方法
- 深入理解JVM—JVM内存模型
- 十个最适合 Web 和 APP 开发的 NodeJS 框架
- 2015年12月15日 关于引用和适配器的数据更新的一个低级坎
- 04-ps印章制作
- iOS 学习日志 :开发中常用的注释方法以及代码块