许多Web应用程序提供的功能将数据从其他Web服务器,由于种种原因。下载XML提要,从远程服务器,Web应用程序可以使用用户指定的URL,获取图像,此功能可能会被滥用,使制作的查询使用易受攻击的Web应用程序作为代理运行在远程攻击其他服务的基于文本的文件等。 /本地服务器。通过这种滥用而产生的功能被命名为攻击,跨站点端口的攻击(XSPA)。
% }0 g% Q' }" a/ `# [XSPA(SSPA)是什么?7 I. h* X/ d( S2 V$ L' B% {) ~0 r
如果应用程序处理用户提供的URL和不验证/消毒后端从远程服务器接收到响应,然后将其发送回客户端应用程序是容易受到跨站点端口的攻击。攻击者可以通过发送特制的查询到一个易受攻击的Web应用程序代理攻击,面临的外部Internet服务器,内网设备和Web服务器本身易受攻击的Web应用程序使用的广告功能。的反应,在某些情况下,可以进行研究,以确定服务的可用性(端口状态,横幅等),甚至在非传统的方式获取数据的远程服务。
- q+ h- w$ A3 BPHP fsockopen() function:
) k4 Y- x( v5 E% Y( _<?php( _ U5 T4 @4 K
function GetFile($host,$port,$link)
* w8 E, h: M7 I2 {7 f8 c/ k{( t5 U8 n) r. `! R; v1 z# P4 I
$fp = fsockopen($host, intval($port), $errno, $errstr, 30);
* ]/ |( }2 i v" Dif (!$fp) { " H- m2 l' X. [# Y. H6 [" P
echo “$errstr (error number $errno) \n”;
6 Q, a9 `8 q2 X} else {
# b+ Z0 E, C5 U! M$out = “GET $link HTTP/1.1\r\n”;( Y+ H; K! Z" D6 B
$out .= “Host: $host\r\n”;
2 B" v5 t3 \4 X# D2 R4 n3 }9 V8 T$out .= “Connection: Close\r\n\r\n”; w6 P" T) v; R/ j. r6 }
$out .= “\r\n”;$ b0 l0 x$ v# l+ s9 J+ ^3 `
fwrite($fp, $out);, ?3 E& ?! l- I) k1 _
$contents=”;
* R# r( N0 ^" R: w3 l6 k5 t" w3 Nwhile (!feof($fp)) {
+ T4 _* _' {' T6 r% s' z3 H7 c$contents.= fgets($fp, 1024);+ \6 v: Z; S3 k
}
1 T$ a; b6 A, m( A& zfclose($fp);
7 R) ]2 `/ D) `2 dreturn $contents;# G; `( S2 p* U& {$ N; Q
}
# h0 F2 }6 {- ^- L0 x' i}6 s" t0 R2 d% [- m) n+ \ p/ O
?>9 d4 l9 a3 Z8 O) F/ s
复制代码
/ I3 W6 X$ n5 r: y) ~6 Y7 @此实现获取数据,如由一个用户使用的fsockopen PHP函数(任何文件或HTML)请求。此功能建立一个TCP连接的套接字的服务器上,并进行原始数据传输。# ?4 c$ M6 r1 X8 d/ ~
PHP curl_exec() function:: N1 ]3 V1 V& E# X) `9 ~8 Y. i
<?php
% @, Q9 o3 X6 G! @8 Kif (isset($_POST['url']))0 m9 l, O- s) o0 _2 L, L
{' n7 N8 g# x. [
$link = $_POST['url'];
. k0 D* X$ R) o' X$curlobj = curl_init();+ w2 L# J0 O: ~8 l
curl_setopt($curlobj, CURLOPT_POST, 0);
+ P6 p9 [8 Q& o" O# o5 wcurl_setopt($curlobj,CURLOPT_URL,$link);9 d* ], p2 a9 f0 p* p4 B r
curl_setopt($curlobj, CURLOPT_RETURNTRANSFER, 1);' d, \( Z5 M( ^5 i4 G" j* j
$result=curl_exec($curlobj);
6 m& }3 p8 b5 ^9 t/ f0 Ncurl_close($curlobj);& n- W- B/ e6 p# W* G* j
- _. _# \! E4 X# W, ]3 T0 N( i$filename = ‘./curled/’.rand().’.txt’;
# F3 I4 U% m2 [file_put_contents($filename, $result);
* b3 S! f+ v! q: ?# becho $result;; }' j6 ~5 @- G
}! T: Z0 E6 x& F/ D
?>
0 c y, ]" l# [1 Q2 P6 H$ D6 V复制代码4 l) Y5 q5 M3 m8 M
这是另一种非常常见的实现,通过PHP使用curl获取数据。“卷曲”文件夹下的文件/数据下载并存储到磁盘,并附加一个随机数“。txt’结尾的文件扩展名。
9 ~. Y* ~0 ^9 ?/ t在本系列的下一部分,我们将看到一些可以启动的攻击使用此vulnerbility。XSPA允许攻击者在目标服务器基础设施,主要是内网的Web服务器,Web服务器本身,以及面向互联网的服务器以及。目前,我已经遇到以下五种不同的攻击方式,可以启动使用XSPA:
( O9 g6 g) x& r; g3 I- x9 c: [ P1。端口扫描远程互联网服务器,内网设备和本地Web服务器本身。横幅敛也有可能在某些情况下,
/ R; P$ ~1 `* J" V2 |: ~: D. ?; ?2。开发弱势运行的程序在Intranet或本地Web服务器
- h! z$ x7 ~. e+ m8 P3。攻击内部/外部Web应用程序很容易通过URL来获取参数的漏洞(SQLI,参数操作等)3 M5 o8 u8 U! v# x; w1 ^' |
4。指纹图谱的Intranet Web应用程序使用标准的应用程序的默认文件及行为
0 _3 E7 O* s$ ~8 @3 e! z5。阅读使用file :/ / /协议处理程序的本地Web服务器上的文件。 |