Web应用安全威胁和设防措施
在网站系统的各个软件层次上,目前最薄弱的安全环节在于Web应用程序。相比较于底层操作系统、网络服务和常用应用软件,Web应用程序可能是开发过程最快、编码质量和测试水平最低的,这也造成了Web应用程序安全性最为薄弱的现状。同时,Web应用程序的复杂性和灵活性又进一步恶化了它们的安全性。
国际上著名的信息安全研究组织OWASP在2007年首次公布之后,2010年又发布了Web应用程序所面临的最新十大安全威胁(如表1所示)。从中我们可以看到,代码注入攻击和XSS跨站脚本一直以来占据着前两位的位置,也是目前高校网站所面临的最普遍的Web应用攻击方式。
代码注入攻击有多种类型,但SQL注入攻击是其中最为常见和简单易懂的技术类型,我们以它为例,来介绍高校网站Web应用程序的主要安全威胁状况。
SQL注入是利用Web应用程序数据层存在的输入验证不完善型安全漏洞实施的一类代码注入攻击技术,能够通过恶意读取、修改与操纵数据库,来窃取网站敏感信息,进而攻陷网站获得控制权。目前在网络骇客社群中流传着各种自动化的SQL注入攻击工具,如CSC、NBSI、HDSI、阿D注入工具、WED、Domain等。
而高校网站中,大量涉及数据库查询操作的Web应用程序在开发时并没有考虑到对SQL注入攻击的预防、检测和防御,例如某高校科研管理机构维护的科研经费来款查询系统,是一个非常简单的ASP动态页面程序,设计目的是为高校科研人员查询所承担的各类科研项目经费是否到款、到款数额及拨付情况,在检索表单中需用户输入一个对来款单位进行查询的关键字,并只返回包含给定关键字的来款记录,ASP 程序中使用的SQL 语句猜想应该是类似于“SELECT * FROM some_tbl where some_rec like ' %INPUT%'”。然而这个程序好像没有对用户输入做任何的安全验证和过滤,因此当具有好奇心的一些用户,比如说作者本人,希望了解到其他科研人员承担各类科研项目的情况,就会在输入框内填写“a% ' or ' a ' like ' %a”,点击检索之后就可以得到数据表全部记录信息,这是因为程序在注入的输入后,使用的SQL语句将会变成“SELECT * FROM some_tbl where some_rec like ' % a% ' or ' a ' like ' %a '”,而' a ' like ' %a '是一个永真式,使得WHERE子句永真,因此该SQL语句等价于“SELECT * FROM some_tbl”,从而在返回结果中给出全部记录信息。当然,由于该ASP程序存在着SQL注入漏洞,对它的攻击可以不限于此,还包括猜解管理员用户口令、上传ASP后门和本地提权攻击等。
该漏洞可能在该网站上存在了数年之久,笔者曾向网站留下的管理员邮件地址发送多封漏洞提示邮件,但均未有回复,想是该网站已无技术人员维护,或是管理员邮件地址已沦为垃圾邮件充斥的邮箱而无人问津。
特别声明:本站注明稿件来源为其他媒体的文/图等稿件均为转载稿,本站转载出于非商业性的教育和科研之目的,并不意味着赞同其观点或证实其内容的真实性。如转载稿涉及版权等问题,请作者在两周内速来电或来函联系。