XSS高手们的那些XSS,大家都是可以拿出来做些什么的,这样的东西才能算得上漏洞。0 Q- E& t+ F& ^# t
2 T, Y& v" k$ f. }; q1 X* t" v) V 9 H/ G1 `7 i( ~& Y/ i
大家经常看一些高手测试XSS漏洞都是alert一个窗口来。便以为XSS即是如此,当自己alert出窗口来,便说自己发现了漏洞。
# z9 Q4 W# F/ J4 d4 h) p, `8 l 6 s* I, i" p7 |& e! {
其实远没这么简单。你发现的只是程序员的一个小bug而已,远谈不上XSS。它们的关系如同系统漏洞与漏洞利用的关系,不可同日而语。你的系统是否出现过“****内存不能为read”?你是否知道它是溢出漏洞的一种表现呢?但想因此做出exploit远不是那么简单的事情,你能说自己发现了溢出漏洞了么?那么利用xss漏洞能做什么?应该有几点: ( B- w* B: \" h, u' c4 L
% D3 q! w" n0 W& a/ z& o+ m
% n. E* u3 ~* r3 @, `% F- f+ i* N1、针对性挂马/ [. i! Z! w7 Z5 {! M
' t4 c! s. t3 j. g, f2 t: p7 A. y
所以这类网站一定是游戏网站,银行网站或者是关于qq、taobao或者影响力相当大的网站等,它们必须有我们平常需要盗取的帐号密码;当然也或许是这个站点的浏览量相当高,我们能将更多的马挂出去。( m3 m9 P" j2 O( r) d. q
" S0 |5 E/ S2 q/ r2 Y, l/ ~( A N
而如果仅仅是平平常常的一个小站点的XSS漏洞,如果我们要挂马,那么莫不如就直接把木马页面地址贴出去。
) I1 |+ Q- b8 K
3 g* r& c, p/ W* |4 v2、用户权限下操作
0 I" i; L/ `& R1 F+ h. P7 M) h8 b m% l( ~
这类网站则必须有会员了,而且这些会员有很多有意义的操作或者有我们需要的内部个人资料,所以我们可以通过XSS对已登录访问者进行有权限操作。我认为cookies的盗取应该算作这一项,因为其目的也是获取用户操作权限(盗密码包括在内),从而获取用户某些信息或者进行权限下的相关操作。
2 g6 Q) R K. R& C5 \! Q' s! }& f( y1 {; `' @( N5 P7 {
3、Dos攻击或傀儡机
+ x/ y" [0 Y- {3 m" Y5 R; ]9 H
& S/ O9 T4 k- D8 L, \0 M这同样需要一个访问量非常大的站点,利用小站点莫不如我们自己攻击或获取信息。我们可以通过此页的访问用户不间断地攻击其他站点,或者进行局域网扫描等等。这类js工具早已经产生,js端口扫描、jikto、xssshell等等。
: ?) i' o+ p( A, K* E
1 g7 r( k% k+ \1 H6 \4、提权
8 ]* ~/ I9 `* C- L) G6 {1 `" g, n1 R
一般这主要发生在论坛或信息管理系统,总之一定要有管理员了。这需要攻击者对目标系统相当熟悉(一般这样的系统需要开源代码),从而知道怎样构造语句进行提权。/ Z v! k& k, @( c
! b3 i% j: V; f9 W* L2 o* K3 l' k
5、实现特殊效果0 n" \& Z4 q7 ^4 y4 d7 ^8 N8 n
/ A! e: U: p5 L- Z; P5 I譬如在百度空间的插入视频,插入版块;譬如一些人在新浪博客或者校内网实现的特殊效果等等。. i& l% b. c5 E. X4 A) V- e) {
' S7 S, \, h; ~6 P7 e& v* s$ B. Q8 H- ]结论:- v: |, ~2 a+ ?* G( P$ }
# K% s e' m P1 {- n
从而你应该了解到这些网站应该具有的性质:
3 ~. {9 a( u& v, n# r9 _9 m* p& R8 J7 Z- K) i
极高的访问量,有会员,有管理员,有具有价值的帐号密码,或者有意义进行特殊效果的实现。0 Y7 J' t. H0 _( M
) f/ Y, \" `% [
如果你读过《Ajax Hacking with XSS》,你应该知道XSS至少包含input XSS和textarea XSS等七种方式。
* \ l2 s- n' y \/ u: |4 d# t9 N6 ^8 L" Q
其中url XSS属于input XSS,这些漏洞大部分属于保留式的XSS,而textarea XSS等一般属于不保留XSS。
: {% }# L' ?3 w# H! ?2 b+ |- I+ f1 D: A$ L# b' r) E2 H8 _; h1 j! t; G: [* n
这意味着正常访问一个页面是不会触发保留式的XSS的,尽管这是大部分网站具有的漏洞,其中搜索部分又称搜索式XSS漏洞。9 y! B+ |, _ ~6 e& J
& i: n3 w }1 p9 A
所以当你获取了一个input XSS,你仅仅alert出一个小框框。你跟别人大吹大擂,你发现了一个漏洞,并且你可以alert一个框框给他看,但是事实上你什么都做不了。即使你能挂些小木马,那也是很没意义的事情——因为你莫不如直接在自己的虚拟主机里做XSS页面发给别人。
, o+ U7 J) h& G! T* `/ D
9 b9 O# L7 Y- C& n) U这个跟sql注入不同,XSS毕竟是客户端的东西。sql注入的目的往往是为了得到目标系统的权限,并且sql语句本身执行的就是服务端的指令;但XSS一般却是为了获得客户端的东西,执行的也是客户端的指令。
& y$ b* S7 ~! |5 T) D3 Q, H |