Web应用程序常见漏洞研究

时间:2022-10-03 09:05:05

Web应用程序常见漏洞研究

摘要:本文主要介绍了Web应用程序的概念及漏洞的危害,并对Web应用程序的常见漏洞进行了深入分析,主要研究了SQL注入漏洞和XSS漏洞的成因及攻击过程。

关键词:Web应用程序;漏洞;SQL注入漏洞;XSS漏洞

中图分类号:TP393.08 文献标识码:A 文章编号:1007-9599 (2011) 21-0000-01

Web Application Common Vulnerability Research

Liu Ying,Wang Liju

(Liaoning Finance Vocational College,Shenyang 110122,China)

Abstract:This paper introduces the concept of Web application vulnerabilities and hazards,and common Web application vulnerabilities in-depth analysis of the main study and XSS vulnerabilities SQL injection vulnerabilities and attack the causes of the process.

Keywords:Web applications;Vulnerability;SQL injection vulnerability;XSS vulnerability

一、Web应用程序的概念

Web应用程序通常指在Web服务器的基础上所开发的各种应用程序,它们具有各种各样的形式和规模,用各种语言编写,运行在各种操作系统上,以各种方式运行。如用JSP(Java Server Pages)开发的员工管理系统,开发的电子商务网站等。

二、Web应用程序漏洞的危害

Web应用程序漏洞的危害在于攻击者能够利用漏洞入侵系统,对系统数据进行非法篡改;利用漏洞破坏系统或网络的正常运行,导致信息或网络服务无法正常使用;利用漏洞泄露受保护的信息给未授权的个人和实体等。

三、Web应用程序常见漏洞研究

(一)SQL注入漏洞。SQL注入攻击是指被攻击系统采用字符串接收用户输入,并构造相应的SQL语句来执行数据库操作。

1.SQL注入漏洞的成因。Web应用程序存在SQL注入漏洞,主要是由于程序员在编写代码过程中,对代码的安全性和健壮性考虑不周,从而造成代码的不完善。攻击者可以利用SQL注入漏洞从正常的WWW端口访问,绕过防火墙的防御,巧妙的构造SQL语句,成功获取想要的数据。

最简单的一种SQL注入是攻击者可以利用SQL注入漏洞获得合法身份登录系统。例如,当验证用户登录的SQL语句为“"select * from adminusers where name='"+uName+"' and pwd='"+uPwd+"'"”,如果用户在登录窗口中输入用户名为“little' or 1='1”,输入密码为“123”,即uName的值为“little' or 1='1”,uPwd的值为“123”。那么验证用户登录的SQL语句将成为“select * from adminusers where name='little' or 1='1' and pwd='123'”,该SQL语句的执行结果将使用户成功登录到后台管理系统。

2.SQL注入漏洞的攻击过程。

(1)寻找攻击入口。对一个Web网站实施SQL注入攻击,首先要攻击入口(也叫注入点)。可能的SQL注入点一般存在于登录页面、查找页面、添加页面及信息检索页面等用户可以提交修改数据的地方,比如常见的登录用户名和密码输入框等。通常判断Web应用程序是否存在SQL注入漏洞的检测方法有两种:“加引号”法和“1=1和1=2”法。

1)“加引号”法:可以在浏览器的地址栏中的网址链接后加上一个单引号,构造如:http://www.***.com/***?id=20'形式的链接。如果浏览器返回错误提示信息,则往往表示存在SQL注入漏洞。

2)“1=1和1=2”法:构造如下。

www.***.com/***?id=20

www.***.com/***?id=20 and 1=1

www.***.com/***?id=20 and 1=2

这就是“1=1和1=2”测试法。三个网址返回的结果如下:

①页面运行正常。②页面运行正常,运行显示页面与①相同。③页面运行异常。

如果满足上面的显示,就说明当前页面中存在SQL注入漏洞。否则可能不能注入。

(2)获取和验证SQL注入点:找到SQL注入点以后,需要进行SQL注入点的判断和验证。

(3)获取信息:获取信息是SQL注入中一个关键的部分,SQL注入中首先需要判断存在注入点的数据库是否支持多句查询、子查询、数据库用户账号、数据库用户权限。如果用户权限为sa,且数据库中存在xp_cmdshell存储过程,则可以直接转到D。

(4)实施直接控制:如果实施注入攻击的数据库是SQL Server,且数据库用户为sa,则可以直接添加管理员账号、开放3389远程终端服务、生成文件等命令。

(5)间接进行控制:间接控制主要是指通过SQL注入点不能执行Dos等命令,只能进行数据字段内容的猜测。在Web应用程序中,为了方便用户的维护,一般都提供了后台管理功能,其后台管理验证用户和口令都会保存在数据库中,通过猜测可以获取这些内容。

(二)XSS漏洞。XSS漏洞即为跨站脚本(Cross-Site Scripting)漏洞。跨站脚本是由攻击者通过某种方式,在远程的Web页面的HTML代码中写入可执行的恶意代码,如果这段代码没有被验证或过滤,当其他网站用户浏览网页时,嵌入页面中的这些恶意代码就会被执行。

1.XSS漏洞的成因。XSS漏洞的原因主要是由于Web应用程序对客户的输入没有进行有效验证,于是攻击者就可能会输入一些恶意的Script程序代码。由于网站程序保存了攻击者的输入,并将它们展示给所有的浏览者,因此已输入的恶意代码就可能会对浏览者造成危害。

2.XSS漏洞的攻击过程。XSS漏洞是较常见的一种Web漏洞,可分为反射型、存储型、DOM型三个类别,其攻击过程如下:

(1)攻击者选定一个Web站点,正常用户需要通过身份认证才能够访问这个站点,并且这个站点根据用户的cookie和session ID来追踪已经通过认证的用户。

(2)攻击者在这个站点上寻找一个有XSS漏洞的页面,例如:http://www.***.com/***.asp。

(3)攻击者精心制作一个指向此页面的特殊链接,然后把该链接发到潜在的受害者的邮箱里。

(4)攻击者在链接中插入恶意代码,拷贝用户的cookie。例如:document.location.replace('www.***.cn/***.asp?'+document.cookie);">。

(5)当浏览者点击此链接时,攻击者就获得了该用户的cookie,从而可以假冒此用户来访问该站点。

参考文献:

[1]徐亮.基于网络的Web应用程序漏洞检测系统研究与实现[D].长沙:国防科技大学,2005

[2]肖遥.网站入侵与脚本攻防修炼[M].西安:电子工业出版社,2008

上一篇:通信工程项目的集成化管理之我见 下一篇:计算机技术和网络技术在机房管理中的应用研究