许多Web应用程序提供的功能将数据从其他Web服务器,由于种种原因。下载XML提要,从远程服务器,Web应用程序可以使用用户指定的URL,获取图像,此功能可能会被滥用,使制作的查询使用易受攻击的Web应用程序作为代理运行在远程攻击其他服务的基于文本的文件等。 /本地服务器。通过这种滥用而产生的功能被命名为攻击,跨站点端口的攻击(XSPA)。
* \7 V* u0 T; aXSPA(SSPA)是什么?
$ a: n7 G8 u, x如果应用程序处理用户提供的URL和不验证/消毒后端从远程服务器接收到响应,然后将其发送回客户端应用程序是容易受到跨站点端口的攻击。攻击者可以通过发送特制的查询到一个易受攻击的Web应用程序代理攻击,面临的外部Internet服务器,内网设备和Web服务器本身易受攻击的Web应用程序使用的广告功能。的反应,在某些情况下,可以进行研究,以确定服务的可用性(端口状态,横幅等),甚至在非传统的方式获取数据的远程服务。
3 W: }0 e6 V+ r" jPHP fsockopen() function: d& v g2 s6 O" l% \
<?php
, h: x2 f' i- o& [: f$ Tfunction GetFile($host,$port,$link)
6 W6 U* b6 U6 c7 ^* t: k% P$ T{# E! t X m: }( C x: K
$fp = fsockopen($host, intval($port), $errno, $errstr, 30);1 a7 q: M: y+ S3 A0 p- {
if (!$fp) { 6 P* U: L5 X" N
echo “$errstr (error number $errno) \n”;
7 G, s: J% T/ e! F8 u1 T9 A# C} else {0 z3 h% Y5 Q, Y1 j
$out = “GET $link HTTP/1.1\r\n”;/ h1 e- g7 ^ x, I* O- y6 Z9 c
$out .= “Host: $host\r\n”;
6 P: ?+ d4 C- v$out .= “Connection: Close\r\n\r\n”;
& J' P6 x T" B2 D$out .= “\r\n”;1 u3 l- E' c) k H. t% c. q v
fwrite($fp, $out);
& P# |' k3 Z/ Z0 r l |$contents=”;9 {) G, l- s+ ~ c7 R/ w# q S
while (!feof($fp)) {- Q. r3 t5 q) A) t ^0 Y
$contents.= fgets($fp, 1024);8 Z" K% ^ }7 |8 s2 k, [' X
}
7 Z. ?9 J: T4 `1 t. Zfclose($fp);' m4 F; l1 \' X
return $contents;5 s2 }! I8 ^8 r$ }
}) p% W* t* i# L: @. C# K
}( ] D d2 j! ~/ P8 |' p
?>$ j7 j6 R; G7 M0 e/ y: O
复制代码( s/ L$ b, C9 k/ C
此实现获取数据,如由一个用户使用的fsockopen PHP函数(任何文件或HTML)请求。此功能建立一个TCP连接的套接字的服务器上,并进行原始数据传输。: ^7 p; b2 T0 |% g! y1 n
PHP curl_exec() function:3 |/ u( i& m/ v p) e
<?php
! [$ l% `; R) A5 _! Iif (isset($_POST['url']))- G& D- b0 f1 {, ~- G# p: k
{. w) m6 B# v5 ~
$link = $_POST['url'];, U/ G8 J- e& f6 Y' G8 a
$curlobj = curl_init();
* a9 V% U+ a3 d6 ?3 scurl_setopt($curlobj, CURLOPT_POST, 0);: g; ~( K' K: R3 l( W4 `2 M
curl_setopt($curlobj,CURLOPT_URL,$link);" V2 M& U* D& {7 h
curl_setopt($curlobj, CURLOPT_RETURNTRANSFER, 1);
; J& ?) R% g, d$result=curl_exec($curlobj);$ j* l5 O1 r' r; K3 f. k
curl_close($curlobj);& [6 x. Q9 h k0 p+ u
/ v. d7 x. h3 v$filename = ‘./curled/’.rand().’.txt’;
6 J: D: H; ]. h, W( ?1 Y# ifile_put_contents($filename, $result);
9 Y, n/ v: V. V5 B, \8 Yecho $result;
) H# l. _4 i$ C}
% S& Q# N; o ]) X$ n?>/ Y c0 S* l2 p. y) u
复制代码) u# z% P% ?6 j; x
这是另一种非常常见的实现,通过PHP使用curl获取数据。“卷曲”文件夹下的文件/数据下载并存储到磁盘,并附加一个随机数“。txt’结尾的文件扩展名。
5 I) z+ l8 v* E+ _9 e7 ?. {在本系列的下一部分,我们将看到一些可以启动的攻击使用此vulnerbility。XSPA允许攻击者在目标服务器基础设施,主要是内网的Web服务器,Web服务器本身,以及面向互联网的服务器以及。目前,我已经遇到以下五种不同的攻击方式,可以启动使用XSPA:
) m; [9 d7 {* m% e: }$ u1。端口扫描远程互联网服务器,内网设备和本地Web服务器本身。横幅敛也有可能在某些情况下, A4 w1 ?) ]7 E0 g, \, t# ^( u) y/ ?
2。开发弱势运行的程序在Intranet或本地Web服务器+ q+ u6 \# N2 {7 ?9 R& b
3。攻击内部/外部Web应用程序很容易通过URL来获取参数的漏洞(SQLI,参数操作等)
8 N6 Y5 z9 z. F3 t4。指纹图谱的Intranet Web应用程序使用标准的应用程序的默认文件及行为# J( l) E* C$ e$ I3 n: q$ P" G+ |; r% L
5。阅读使用file :/ / /协议处理程序的本地Web服务器上的文件。 |