许多Web应用程序提供的功能将数据从其他Web服务器,由于种种原因。下载XML提要,从远程服务器,Web应用程序可以使用用户指定的URL,获取图像,此功能可能会被滥用,使制作的查询使用易受攻击的Web应用程序作为代理运行在远程攻击其他服务的基于文本的文件等。 /本地服务器。通过这种滥用而产生的功能被命名为攻击,跨站点端口的攻击(XSPA)。
. V6 i- ?. i( V" G. IXSPA(SSPA)是什么?
U2 f+ i q, m7 }如果应用程序处理用户提供的URL和不验证/消毒后端从远程服务器接收到响应,然后将其发送回客户端应用程序是容易受到跨站点端口的攻击。攻击者可以通过发送特制的查询到一个易受攻击的Web应用程序代理攻击,面临的外部Internet服务器,内网设备和Web服务器本身易受攻击的Web应用程序使用的广告功能。的反应,在某些情况下,可以进行研究,以确定服务的可用性(端口状态,横幅等),甚至在非传统的方式获取数据的远程服务。
+ G8 J. C' M4 IPHP fsockopen() function:
4 U$ W9 f! T2 P! @<?php
: R9 d2 ?# |7 u" a. I0 p0 Bfunction GetFile($host,$port,$link)
* W3 g$ O# ~) Y{8 e6 D! F2 Y7 i
$fp = fsockopen($host, intval($port), $errno, $errstr, 30);
! d: G0 U4 u6 x. ~5 w( qif (!$fp) { 7 d% v s- B6 n
echo “$errstr (error number $errno) \n”;5 |% b3 A) \( P7 D
} else {
7 ?! C j: ~1 V* Y$out = “GET $link HTTP/1.1\r\n”;
Y( m8 [' Y1 o, {; B1 ]$out .= “Host: $host\r\n”;8 ^( Q+ Z4 H! T4 X
$out .= “Connection: Close\r\n\r\n”;7 | ?" ]) j8 O; Z5 \. u
$out .= “\r\n”;
. ?+ u- w) L3 i- x; T1 efwrite($fp, $out);
. }3 e( W3 t/ `( y5 T0 ]7 y$contents=”;: I0 `. p# O, E9 D+ r. P7 a# c
while (!feof($fp)) {
i" `% ?6 a- B' ], g: {$contents.= fgets($fp, 1024);, B. Y5 y9 T4 @$ m, B" o
}
* [9 x8 m! U6 Nfclose($fp);
* A4 b2 f- d Y7 Z7 `* g5 y5 lreturn $contents;
* q# ~! r9 e @6 y" U' u7 U}; {4 ]7 p* ?- Q% B+ l: B4 \
}' j7 Z# g9 b* p1 z1 U
?>8 k6 p5 ^( y9 [. i& x/ O
复制代码* S8 x) |( G: R+ [
此实现获取数据,如由一个用户使用的fsockopen PHP函数(任何文件或HTML)请求。此功能建立一个TCP连接的套接字的服务器上,并进行原始数据传输。
# [" r% z$ i3 p1 A; M! S/ s PHP curl_exec() function:. Z4 o8 Y0 J+ G3 }9 `9 v+ W" u
<?php" I! D% k# V0 l4 e
if (isset($_POST['url']))- c& b' H% n/ R7 k
{3 R& ?2 x3 d6 X8 u' T
$link = $_POST['url'];
- C! ^$ p7 l- B: a3 c2 i$curlobj = curl_init();# Q% {4 {! |; K2 q
curl_setopt($curlobj, CURLOPT_POST, 0);8 P& y* ^, r; P
curl_setopt($curlobj,CURLOPT_URL,$link);! v& G4 U; ]! }5 d, R
curl_setopt($curlobj, CURLOPT_RETURNTRANSFER, 1);0 T# U& K7 _+ G, T
$result=curl_exec($curlobj);( u2 r. t3 m0 H* g. `# I2 z: r& V% B
curl_close($curlobj);
; i' P6 k2 ~# q r/ A7 f ) g9 N/ Z( q& c6 r t" i- M
$filename = ‘./curled/’.rand().’.txt’;
, d5 y7 H, @9 s2 Wfile_put_contents($filename, $result);4 H: O/ u# F+ L( k2 U
echo $result;* U$ j4 k& s/ `! \- C |
}& Z! _; D8 o0 u) e' P; c' r+ e
?>
7 u& U2 u% C/ N7 C) _7 w1 }复制代码3 e+ @3 C" l- T! t* z
这是另一种非常常见的实现,通过PHP使用curl获取数据。“卷曲”文件夹下的文件/数据下载并存储到磁盘,并附加一个随机数“。txt’结尾的文件扩展名。
% X. t, e+ q1 a$ u在本系列的下一部分,我们将看到一些可以启动的攻击使用此vulnerbility。XSPA允许攻击者在目标服务器基础设施,主要是内网的Web服务器,Web服务器本身,以及面向互联网的服务器以及。目前,我已经遇到以下五种不同的攻击方式,可以启动使用XSPA:' h: g6 g J) }
1。端口扫描远程互联网服务器,内网设备和本地Web服务器本身。横幅敛也有可能在某些情况下,) E D0 ~9 G8 C) ]% c' c+ |
2。开发弱势运行的程序在Intranet或本地Web服务器
* k6 ^5 T) K: Q7 R9 y3。攻击内部/外部Web应用程序很容易通过URL来获取参数的漏洞(SQLI,参数操作等)( W6 [' D4 [% v4 [- s3 _6 T
4。指纹图谱的Intranet Web应用程序使用标准的应用程序的默认文件及行为
) k) C0 U' P* L' X0 S/ o! I( @5。阅读使用file :/ / /协议处理程序的本地Web服务器上的文件。 |