XSS高手们的那些XSS,大家都是可以拿出来做些什么的,这样的东西才能算得上漏洞。
* F5 F) K) _; n' h6 r' n( E' Y% }* k7 u$ n) ]
* M4 K5 Q. `9 a4 }4 F5 X# W大家经常看一些高手测试XSS漏洞都是alert一个窗口来。便以为XSS即是如此,当自己alert出窗口来,便说自己发现了漏洞。
! X; B1 P K+ y! u7 T
% A& G6 r/ l3 ~' e* L7 R其实远没这么简单。你发现的只是程序员的一个小bug而已,远谈不上XSS。它们的关系如同系统漏洞与漏洞利用的关系,不可同日而语。你的系统是否出现过“****内存不能为read”?你是否知道它是溢出漏洞的一种表现呢?但想因此做出exploit远不是那么简单的事情,你能说自己发现了溢出漏洞了么?那么利用xss漏洞能做什么?应该有几点:
( Z: c9 t) S' W! t% D1 v
4 g' u5 s* V# M- `" F7 y: W& h* X& O4 [( \5 @" X7 l
1、针对性挂马! \$ d1 m9 |, J8 h) _
. l6 t7 J0 n* |7 E
所以这类网站一定是游戏网站,银行网站或者是关于qq、taobao或者影响力相当大的网站等,它们必须有我们平常需要盗取的帐号密码;当然也或许是这个站点的浏览量相当高,我们能将更多的马挂出去。
, @; g. ]& p/ s4 D6 e4 F% Z3 [
而如果仅仅是平平常常的一个小站点的XSS漏洞,如果我们要挂马,那么莫不如就直接把木马页面地址贴出去。* k8 c: [6 v3 L, X
( f, Y' j/ E% a9 y# [4 D% v" i2、用户权限下操作
4 k1 m9 G8 J$ @4 Z9 C1 t$ E
' X+ e# W7 o$ f这类网站则必须有会员了,而且这些会员有很多有意义的操作或者有我们需要的内部个人资料,所以我们可以通过XSS对已登录访问者进行有权限操作。我认为cookies的盗取应该算作这一项,因为其目的也是获取用户操作权限(盗密码包括在内),从而获取用户某些信息或者进行权限下的相关操作。+ v% `0 U/ ^4 j2 m# h
4 E. d9 V5 w& o3、Dos攻击或傀儡机
7 E2 D+ q4 d/ \: c% h3 S
1 o1 b' E M+ K7 g) T这同样需要一个访问量非常大的站点,利用小站点莫不如我们自己攻击或获取信息。我们可以通过此页的访问用户不间断地攻击其他站点,或者进行局域网扫描等等。这类js工具早已经产生,js端口扫描、jikto、xssshell等等。% N2 ~" z6 d# P' a) p8 I7 W2 d# M
) ]8 X) |; s4 z1 d3 B2 P5 ?! r
4、提权. i3 u8 B) Z e9 m' R
. G- e( K; N7 ?9 n+ ^# Y* z0 a4 f/ M一般这主要发生在论坛或信息管理系统,总之一定要有管理员了。这需要攻击者对目标系统相当熟悉(一般这样的系统需要开源代码),从而知道怎样构造语句进行提权。7 Q/ @! ]1 @9 T' W5 }7 A3 ^( F
* k7 E4 A3 @$ y5 ]! g2 E% m
5、实现特殊效果" }$ X9 e. x! p9 U6 G. w; s# F5 o
q! E0 b- ^ `
譬如在百度空间的插入视频,插入版块;譬如一些人在新浪博客或者校内网实现的特殊效果等等。
# w2 j! S, n& [' d& m
0 ?. a. r- @/ e1 u结论:
( w3 C" C) j0 V8 f. @2 G; p
/ o2 @4 K3 W& O L$ A$ E从而你应该了解到这些网站应该具有的性质:
+ g8 G4 s. V/ X; B$ h( t) J0 W2 L* |% y' m9 e6 Y2 [2 z) T
极高的访问量,有会员,有管理员,有具有价值的帐号密码,或者有意义进行特殊效果的实现。& ^6 R7 Y# q6 r# Z& y, ~. M
4 g1 J6 S2 [7 F8 N" h如果你读过《Ajax Hacking with XSS》,你应该知道XSS至少包含input XSS和textarea XSS等七种方式。2 U2 `( ^% w, s- l7 d U- }$ T3 z* d8 F
- Y0 K+ ?% f1 X* f. _
其中url XSS属于input XSS,这些漏洞大部分属于保留式的XSS,而textarea XSS等一般属于不保留XSS。
: i& v; j" X* O" q. j; \9 c; T; D4 f' L* h8 V) g1 Q
这意味着正常访问一个页面是不会触发保留式的XSS的,尽管这是大部分网站具有的漏洞,其中搜索部分又称搜索式XSS漏洞。
9 Z8 @% U2 J; x; d. w: r
+ D% N. v' w4 j( U( O& G u+ w所以当你获取了一个input XSS,你仅仅alert出一个小框框。你跟别人大吹大擂,你发现了一个漏洞,并且你可以alert一个框框给他看,但是事实上你什么都做不了。即使你能挂些小木马,那也是很没意义的事情——因为你莫不如直接在自己的虚拟主机里做XSS页面发给别人。1 i) i2 w) [" o8 |( I8 f- x
1 X& @5 |' M0 F! ?1 E这个跟sql注入不同,XSS毕竟是客户端的东西。sql注入的目的往往是为了得到目标系统的权限,并且sql语句本身执行的就是服务端的指令;但XSS一般却是为了获得客户端的东西,执行的也是客户端的指令。: s2 d9 E3 @- y3 {$ \- G
|