许多Web应用程序提供的功能将数据从其他Web服务器,由于种种原因。下载XML提要,从远程服务器,Web应用程序可以使用用户指定的URL,获取图像,此功能可能会被滥用,使制作的查询使用易受攻击的Web应用程序作为代理运行在远程攻击其他服务的基于文本的文件等。 /本地服务器。通过这种滥用而产生的功能被命名为攻击,跨站点端口的攻击(XSPA)。: t2 @. D/ T4 {# ]- O$ ~5 w
XSPA(SSPA)是什么?
/ k2 ^/ G/ w, B: s6 e" E- l如果应用程序处理用户提供的URL和不验证/消毒后端从远程服务器接收到响应,然后将其发送回客户端应用程序是容易受到跨站点端口的攻击。攻击者可以通过发送特制的查询到一个易受攻击的Web应用程序代理攻击,面临的外部Internet服务器,内网设备和Web服务器本身易受攻击的Web应用程序使用的广告功能。的反应,在某些情况下,可以进行研究,以确定服务的可用性(端口状态,横幅等),甚至在非传统的方式获取数据的远程服务。& s$ n/ E: t7 S( }# T" L- R
PHP fsockopen() function:4 e9 P$ D5 h; V e( r
<?php
8 ^$ _9 F8 O# _1 a4 n3 u7 \& Zfunction GetFile($host,$port,$link)
+ a' J2 j" O {, l! U; I9 w2 _{- H7 f b+ t# v q% n
$fp = fsockopen($host, intval($port), $errno, $errstr, 30);# E0 `" q. ^" o2 l$ [
if (!$fp) {
! J$ n- s1 D1 f8 K& f# {echo “$errstr (error number $errno) \n”;
. k6 |( r) H, h! j} else {, n e) z, _4 o8 b0 K. i ^' f% K
$out = “GET $link HTTP/1.1\r\n”;- E1 ]: K7 M8 j# r; a
$out .= “Host: $host\r\n”;* M2 r( S! s, z' Q; R' J. m
$out .= “Connection: Close\r\n\r\n”;
" {+ @7 S' _) Z/ S$out .= “\r\n”;2 \( l: {* d) v' v
fwrite($fp, $out);
; T9 F5 T/ E5 x$contents=”;
: H F7 l" S. ~, O7 j' _% Swhile (!feof($fp)) {9 N9 G8 Z' j. w
$contents.= fgets($fp, 1024);$ G7 R3 O2 j* Y. k$ u
}
: Z" L& i0 K: {) }1 L0 p7 hfclose($fp);% B6 Y7 z& s( @- j
return $contents;
, x9 t% |5 q2 s}0 t- x. v6 P. Q I
}' s+ Q5 \) D8 C$ Z- ]
?>1 [, R2 [* y5 W2 H% l' ?, ^ q4 E
复制代码/ ]9 b( ~9 h! Z) {1 f! G
此实现获取数据,如由一个用户使用的fsockopen PHP函数(任何文件或HTML)请求。此功能建立一个TCP连接的套接字的服务器上,并进行原始数据传输。9 r( b- K& I! C! K& f
PHP curl_exec() function:/ S, N$ A! ~# J" l# ^; [5 C1 a$ `* c
<?php
, X/ Q% w% T8 d( l# Tif (isset($_POST['url']))
+ [& x, s$ x% M4 a: T: O{ X6 ^3 b4 C2 c0 y4 N' L
$link = $_POST['url'];% k- E" b0 m' q$ w! N& u3 l
$curlobj = curl_init();4 H( E. b1 |; G. c' `
curl_setopt($curlobj, CURLOPT_POST, 0);
" F! U6 t' k! K# j2 }- r1 Z5 dcurl_setopt($curlobj,CURLOPT_URL,$link);
( ^3 p+ n( p/ P8 M( D- Gcurl_setopt($curlobj, CURLOPT_RETURNTRANSFER, 1);( s9 Q; f0 j- P/ w: C5 C( p9 o$ r
$result=curl_exec($curlobj);7 _: K4 O; a7 d9 x3 |1 _' C1 x
curl_close($curlobj);
' z f6 u% ]" l4 ~% C2 K
! `# b+ b |, P1 ?$filename = ‘./curled/’.rand().’.txt’;8 L% M% D+ L8 U: J g8 Z _
file_put_contents($filename, $result);. k1 k7 T- ~7 I. j: T' f8 z
echo $result;- m; ^) Y; \5 J4 g
}" N9 W/ C/ q8 P; I: b
?>
c$ I+ o4 U* ]6 @% X* S/ @复制代码& @; E8 K$ c$ u1 s! Y
这是另一种非常常见的实现,通过PHP使用curl获取数据。“卷曲”文件夹下的文件/数据下载并存储到磁盘,并附加一个随机数“。txt’结尾的文件扩展名。
8 l& k- [, i, \: c在本系列的下一部分,我们将看到一些可以启动的攻击使用此vulnerbility。XSPA允许攻击者在目标服务器基础设施,主要是内网的Web服务器,Web服务器本身,以及面向互联网的服务器以及。目前,我已经遇到以下五种不同的攻击方式,可以启动使用XSPA:/ k$ l* z5 f9 H I* H
1。端口扫描远程互联网服务器,内网设备和本地Web服务器本身。横幅敛也有可能在某些情况下,* `; M: C, o' h s, R1 W7 M
2。开发弱势运行的程序在Intranet或本地Web服务器
2 _) T4 M% \6 k; G9 c9 S6 r3。攻击内部/外部Web应用程序很容易通过URL来获取参数的漏洞(SQLI,参数操作等)
/ B1 D! h! l1 x1 \) k0 ]4。指纹图谱的Intranet Web应用程序使用标准的应用程序的默认文件及行为
2 Z3 V; a) Y! v+ O8 c+ ]5 w* w0 `% C5。阅读使用file :/ / /协议处理程序的本地Web服务器上的文件。 |