找回密码
 立即注册
查看: 2665|回复: 0
打印 上一主题 下一主题

跨站点端口攻击 – XSPA(SSPA)

[复制链接]
跳转到指定楼层
楼主
发表于 2013-2-16 21:48:30 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
许多Web应用程序提供的功能将数据从其他Web服务器,由于种种原因。下载XML提要,从远程服务器,Web应用程序可以使用用户指定的URL,获取图像,此功能可能会被滥用,使制作的查询使用易受攻击的Web应用程序作为代理运行在远程攻击其他服务的基于文本的文件等。 /本地服务器。通过这种滥用而产生的功能被命名为攻击,跨站点端口的攻击(XSPA)。5 `" a' a2 U% a- s% z, X
XSPA(SSPA)是什么?2 P6 B) @6 M$ \' N- k/ k
如果应用程序处理用户提供的URL和不验证/消毒后端从远程服务器接收到响应,然后将其发送回客户端应用程序是容易受到跨站点端口的攻击。攻击者可以通过发送特制的查询到一个易受攻击的Web应用程序代理攻击,面临的外部Internet服务器,内网设备和Web服务器本身易受攻击的Web应用程序使用的广告功能。的反应,在某些情况下,可以进行研究,以确定服务的可用性(端口状态,横幅等),甚至在非传统的方式获取数据的远程服务。* S6 }' _( t9 d+ Q) v
PHP fsockopen() function:
. q; |$ s8 x( g" e6 n) n<?php! r8 Q7 e. h& w& u+ ?# G- }
function GetFile($host,$port,$link)& I0 {0 r% i% n- r& E8 K; |& v
{
- Y7 N$ N, A8 p& k% o) x) {$fp = fsockopen($host, intval($port), $errno, $errstr, 30);  ]( V; d6 H+ b* v$ c! }0 Q
if (!$fp) { & [$ a% U* O, g2 ~, W( G) @0 }- U
echo “$errstr (error number $errno) \n”;$ ]9 V+ D/ i+ Q: D1 j& F6 n' j$ |
} else {
1 ], |* T. Z& v7 @0 {8 H0 u) ]$out = “GET $link HTTP/1.1\r\n”;
3 _: ~1 _2 k2 r+ {9 g" p$out .= “Host: $host\r\n”;+ w& {- V" l/ A* o! d' l$ @
$out .= “Connection: Close\r\n\r\n”;
4 X# B$ A' y7 i( O% A' E/ ?$out .= “\r\n”;
, f5 Q* h% R+ Ffwrite($fp, $out);! B2 L# }8 _+ q; S: S( z! O
$contents=”;, Z5 l, r' x. h
while (!feof($fp)) {
" T; o( _0 ?/ y  F$contents.= fgets($fp, 1024);
- k8 F* }  h' H: N3 p' O2 o}
  [, ]3 y% `: Pfclose($fp);
2 _6 u' c1 G; l  M! t0 Dreturn $contents;% t* S5 s" M; N) y
}
( Y0 i6 s7 b" v  g- b8 {) _6 }+ M}# m3 o$ d' n; v' V# O: v
?>& f& v, e! z% H; C$ d9 e& g" c  I1 x% o
复制代码
/ ?# S% w4 f$ ]) i* ]$ Q; y此实现获取数据,如由一个用户使用的fsockopen PHP函数(任何文件或HTML)请求。此功能建立一个TCP连接的套接字的服务器上,并进行原始数据传输。
3 P& r! S8 j9 C7 S* `) L/ F  PHP curl_exec() function:7 h4 x7 [) O3 I0 `/ e! r# @
<?php
' b6 O/ O0 v7 a3 l+ v/ u, h, Vif (isset($_POST['url']))
+ I' X( s" A% D# n. G{
' ~/ N( b: S* C. Q$link = $_POST['url'];
; d" F# H  P# u/ w; r. M8 g$curlobj = curl_init();% J1 R% I  l, S$ a
curl_setopt($curlobj, CURLOPT_POST, 0);/ y) J1 j8 X3 b# I7 J. c( r% N; A4 r
curl_setopt($curlobj,CURLOPT_URL,$link);
0 G- o# `2 S8 Z' b9 Zcurl_setopt($curlobj, CURLOPT_RETURNTRANSFER, 1);5 b/ i, ~$ k" H0 \& z
$result=curl_exec($curlobj);
9 U' D8 O* ~$ C+ {curl_close($curlobj);8 e' V$ }. \3 o/ ]- }- c" S, B! x

$ I  h; |3 |: v$filename = ‘./curled/’.rand().’.txt’;, {7 q, ]9 S# ?% z: M
file_put_contents($filename, $result);$ f. t% y& W+ {; G
echo $result;) s3 [9 ^8 o* d0 Y6 H, }( J
}
1 I# D0 L; x$ |' X?>
" n3 _" q3 e. M8 v9 S  `复制代码
. s0 }0 [# Q! \# t9 b! a这是另一种非常常见的实现,通过PHP使用curl获取数据。“卷曲”文件夹下的文件/数据下载并存储到磁盘,并附加一个随机数“。txt’结尾的文件扩展名。
5 {3 ~7 k  P8 ?在本系列的下一部分,我们将看到一些可以启动的攻击使用此vulnerbility。XSPA允许攻击者在目标服务器基础设施,主要是内网的Web服务器,Web服务器本身,以及面向互联网的服务器以及。目前,我已经遇到以下五种不同的攻击方式,可以启动使用XSPA:' N+ r/ A8 E. P9 g6 Z
1。端口扫描远程互联网服务器,内网设备和本地Web服务器本身。横幅敛也有可能在某些情况下,
; U2 U: m5 c3 o1 _$ o2。开发弱势运行的程序在Intranet或本地Web服务器3 Q3 {) a/ V  K! O1 F
3。攻击内部/外部Web应用程序很容易通过URL来获取参数的漏洞(SQLI,参数操作等)
1 Z( m! `. Y& d4。指纹图谱的Intranet Web应用程序使用标准的应用程序的默认文件及行为
) ?( }# Y. R% Y/ g0 Z5。阅读使用file :/ / /协议处理程序的本地Web服务器上的文件。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表