安全课堂:常见的 Web 应用攻击

上一篇 / 下一篇  2008-12-04 08:05:01

两个重要的国际应用安全组织

X%q!{|r7i0

"}$VX&Hd1T0在讨论常见的 Web 应用攻击之前,我们需要先了解两个组织:WASC 和 OWASP。这两个组织在呼吁企业加强应用安全意识和指导企业开发安全的 Web 应用方面,起到了重要的作用。IXPUB技术博客D0B}2s:[6w5V4c$@

8WsZ-Km.xN s\0Web Application Security Consortium(WASC),是一个由安全专家、行业顾问和诸多组织的代表组成的国际团体。他们负责为 WWW 制定被广为接受的应用安全标准。WASC 组织的关键项目之一是“Web 安全威胁分类”,也就是将 Web 应用所受到的威胁、攻击进行说明并归纳成具有共同特征的分类。该项目的目的是针对 Web 应用的安全隐患,制定和推广行业标准术语。WASC 将 Web 应用安全威胁分为如下六类:IXPUB技术博客hEv1o_bj

IXPUB技术博客 S!P7Qt)z {

Authentication(验证)IXPUB技术博客P zi'n-@ I
用来确认某用户、服务或是应用身份的攻击手段。IXPUB技术博客 DR2D&tc*h.R
Authorization(授权)IXPUB技术博客j6KC8V2Y)w)c
用来决定是否某用户、服务或是应用具有执行请求动作必要权限的攻击手段。
eM8cr0m3neS4P^0Client-Side Attacks(客户侧攻击)
+i$km,ET/b6}3~N0用来扰乱或是探测 Web 站点用户的攻击手段。
q7@ZQ/i5b!k0Command Execution(命令执行)
!Aw(w |.x0在 Web 站点上执行远程命令的攻击手段。
N8Q"?jF2GM0Information Disclosure(信息暴露)IXPUB技术博客Jz:F!?2o Q+y-L{#Y7XZ
用来获取 Web 站点具体系统信息的攻击手段。IXPUB技术博客+X/g.b:^;V K(J
Logical Attacks(逻辑性攻击)IXPUB技术博客PsD\5q"uG\&^
用来扰乱或是探测 Web 应用逻辑流程的攻击手段。IXPUB技术博客v[M$hX1`7GB%dy)j
可以通过如下的网址访问该组织网站,获得更多详细信息:www.webappsec.org。也可以通过参考资料中链接,具体了解“Web 安全威胁分类”项目。IXPUB技术博客:h:l-[^X,@N2@5z

IXPUB技术博客Iz:WHzij"H

Open Web Application Security Project(OWASP),该组织致力于发现和解决不安全 Web 应用的根本原因。它们最重要的项目之一是“Web 应用的十大安全隐患”,总结了目前 Web 应用最常受到的十种攻击手段,并且按照攻击发生的概率进行了排序。这个项目的目的是统一业界最关键的 Web 应用安全隐患,并且加强企业对 Web 应用安全的意识。IXPUB技术博客#} a2cV-n8^

IXPUB技术博客 j3W6B*p6lLn,s*~

IXPUB技术博客(apIL6A/U
图 1: Web 应用十大安全隐患IXPUB技术博客c R/g#X5vT Z9G"y
 

c0l4hW.l*~_0

|9k!KdV U'eK0可以通过如下的网址访问该组织,了解更为详细的信息:www.owasp.org。也可以通过参考资料中链接,具体了解“Web 应用十大安全隐患”项目。

h @2{2M{e,r]6[0

M)j4\9~#G{ G0IBM Rational,是上述两个组织的成员。

*HGW$D'b0IXPUB技术博客4k0Vic(\([0P1LE%K@L

常见的 Web 应用攻击示例

H lLt A&Q0

|rv!B8}A)m0在 OWASP 组织列举的十大 Web 应用安全隐患中,有两个概率最高的攻击手段,它们分别是“跨站点脚本攻击”(Cross-Site Scripting)和“注入缺陷”(Injection Flaws)。下面将通过举例来说明这两种攻击是如何实施的。

5NMf5Jt5}'OTE#W(\0IXPUB技术博客3mk:q,N*zp

1、 跨站点脚本攻击

4aS@U7UW9|0

/t0wK|8A7@7rj$\0首先来看一下跨站点脚本的利用过程,如图2。IXPUB技术博客+Al)]S H+a9HM X

IXPUB技术博客dtXB5B)U!jz)c
图 2: 跨站点脚本攻击的过程
bTSK%HD0 IXPUB技术博客&tj$|Mk

MxP(u*n?O.m0在上图中,恶意攻击者(这里使用 Evil.org 表示)通过 E-mail 或 HTTP 将某银行的网址链接发给用户(银行用 bank.com 表示),该链接中附加了恶意的脚本(上图步骤一);用户访问发来的链接,进入银行网站,同时,嵌在链接中的脚本被用户的浏览器执行(上图步骤二、三);用户在银行网站的所有操作,包括用户的 cookie 和 session 信息,都被脚本收集到,并且在用户毫不知情的情况下发送给恶意攻击者(上图步骤四);恶意攻击者使用偷来的 session 信息,伪装成该用户,进入银行网站,进行非法活动(上图步骤五)。IXPUB技术博客3s,Hw q2`5Jf{!J7o

IXPUB技术博客|G N dZ7R ^#Y4})k,R

因此,只要 Web 应用中,有可被恶意攻击者利用执行脚本的地方,都存在极大的安全隐患。黑客们如果可以让用户执行他们提供的脚本,就可以从用户正在浏览的域中偷到他的个人信息、可以完全修改用户看到的页面内容、跟踪用户在浏览器中的每一个动作,甚至利用用户浏览器的缺陷完全控制用户的机器。

C7SH8k5hl8a0

C_2vF hoc wH0目前,跨站点脚本攻击是最大的安全风险。

Cz~1\5rx.qR0IXPUB技术博客1HT:i S M,\4BE*@

2、 注入缺陷IXPUB技术博客J;}szF)rQQ

IXPUB技术博客,_ ^:o b&T'U4U

目前的 Web 应用中,绝大多数都会向用户提供一个接口,用来进行权限验证、搜索、查询信息等功能。比如一个在线银行应用,首先会有对注册客户进行身份验证的登录界面,在正确登录后,会提供更多交互功能,如根据客户的银行卡号信息,查询客户的最近交易、转账细节等。这些都是注入缺陷的最佳利用场景。所谓注入缺陷,就是在上述场景中,用户输入的数据被当做命令和查询的一部分,送到后端的解释器中解释执行。如果用户的输入是正常合法的,Web 应用自然会返回正常合理的结果,但是,如果恶意攻击者,利用输入数据可被后台执行的原理,偷梁换柱,使用非法的输入,脆弱的 Web 应用会怎样呢?IXPUB技术博客ua;{6m:nm2I3Bjmq8d-T

IXPUB技术博客4jV4G3l*@

下面我们举一个例子来说明注入缺陷是如何进行的。在一个交易网站中,用户必须输入产品 ID 号才可以查看该产品的详细信息。为了实现这个需求,通常会用 SQL 语句查询数据库来实现。开发人员在编写应用程序时,可能会使用如下的 SQL 语句来实现上述目的(这里仅为示例):IXPUB技术博客_3g&Y]f1J%I'?6N

IXPUB技术博客v*s]N5J

1) Select * from products where product_id = ` + 用户输入的 ID + `IXPUB技术博客.U(lrK9},}

IXPUB技术博客;SH,ny |*^7Z6q

这里的 products 是数据库中用来存放产品信息的表,+号表示 SQL 语句需要和用户输入的真实 ID 进行拼接。如果用户输入 325,则该语句在执行时变为:IXPUB技术博客4T \ @X'rxm:y

IXPUB技术博客B#J8Z'MZ2G o2b

Select * from products where product_id = ` 325 `IXPUB技术博客p`0sL0I(cH

IXPUB技术博客6F!Q7muK Z"z3tS

数据库会将 ID 为 325 的产品信息返回给用户。

~? Fj _'M0

2V"tAGH[02) 在界面上,需要用户输入产品 ID 的地方,黑客会输入如下数据:

1hNlOI-B0

9l%KP0Df~!P0` or `1`= `1

%U`N;P3JItPb2Tc0

gVJxf0可以看到,黑客并没有输入正常合法的产品编号。IXPUB技术博客:@8`c1`*i|]

IXPUB技术博客}^.A2a#X

3) 通过黑客的非法输入,需要执行的 SQL 语句变为:IXPUB技术博客#n3Ea#cy

+]P/Ab4[ }Kpq{[n0Select * from products where product_id = ` ` or `1`=`1`IXPUB技术博客&iw7Y*TlaS)P.m8k2Y

%Wg9|1_C4c d2K#dfOP0可以看出,SQL 语句的意义就完全改变了,当产品 ID 为空或者 1=1 时,返回产品所有信息,而 1=1 是永远成立的条件,因此,黑客并没有输入任何产品编号,就可以返回数据库中所有产品的详细信息。IXPUB技术博客'd wk^$l

gQ:AP\D)w0通过这个例子,我们可以看出,注入缺陷是风险非常高的安全漏洞,一旦 Web 应用中给用户提供了需要其输入数据的接口,就有可能遭到攻击,将后台的数据完全暴露在用户的面前。

0?8E?%onM^0IXPUB技术博客 s@VX#U;XP7}3{

上述说明的“跨站点脚本攻击”和“注入缺陷攻击”,是目前 Web 应用中比例最高的两种攻击手段,按照 OWASP 的项目排序,还有如下八种风险性较高的攻击方法:IXPUB技术博客'P8Rj'ZA3@I']

MnLH0aV0*Malicious File Execution(恶意文件执行);IXPUB技术博客}y&j,Z w9c

n5F1f"Q&]*_A0*Insecure Direct Object Reference(不安全的直接对象引用);

R'K.o1It/vM,b QI0IXPUB技术博客MP`O1~8t{]

*Cross-Site Request Forgery(跨站点的请求伪造);IXPUB技术博客OQD ^ bY,I
*Information Leakage and Improper Error Handling(信息泄漏和不正确的错误处理);

RXN?&QU,},@f0IXPUB技术博客 T%i)`|$q:N'l

*Broken Authentication & Session Management(损坏的认证和 Session 管理);

{&j*O[CX Nu0

N1s#^"E;F6g)E+rM0*Insecure Cryptographic Storage(不安全的密码存储);

E$n tE-?.\ Wl:}[0

"f I*{\ TI8gK l\0 *Insecure Communications(不安全的通信);

I~6t?@ReJ0

_\5u tm7ni&zZRZ0*Failure to Restrict URL Access(未能限制 URL 访问)IXPUB技术博客U!H @*v&h;Vt)A,vc

IXPUB技术博客&x1lK"x%TZ ?3P j

在这里,我们就不过多的讨论这几种安全隐患,大家可以通过如下的网址访问该组织网站,获得更多详细信息:。www.webappsec.orgIXPUB技术博客0vm;v!h8fk})@


1

1

TAG:

 

评分:0

我来说两句

显示全部

:loveliness: :handshake :victory: :funk: :time: :kiss: :call: :hug: :lol :'( :Q :L ;P :$ :P :o :@ :D :( :)

日历

« 2009-01-07  
    123
45678910
11121314151617
18192021222324
25262728293031

数据统计

  • 访问量: 65604
  • 日志数: 1209
  • 文件数: 1
  • 建立时间: 2007-08-10
  • 更新时间: 2009-01-06

RSS订阅

Open Toolbar