许多Web应用程序提供的功能将数据从其他Web服务器,由于种种原因。下载XML提要,从远程服务器,Web应用程序可以使用用户指定的URL,获取图像,此功能可能会被滥用,使制作的查询使用易受攻击的Web应用程序作为代理运行在远程攻击其他服务的基于文本的文件等。 /本地服务器。通过这种滥用而产生的功能被命名为攻击,跨站点端口的攻击(XSPA)。" c6 [, {+ N2 x/ H
XSPA(SSPA)是什么?" r0 L% x. L, M( C* f
如果应用程序处理用户提供的URL和不验证/消毒后端从远程服务器接收到响应,然后将其发送回客户端应用程序是容易受到跨站点端口的攻击。攻击者可以通过发送特制的查询到一个易受攻击的Web应用程序代理攻击,面临的外部Internet服务器,内网设备和Web服务器本身易受攻击的Web应用程序使用的广告功能。的反应,在某些情况下,可以进行研究,以确定服务的可用性(端口状态,横幅等),甚至在非传统的方式获取数据的远程服务。4 I, n7 v+ L0 ]& h+ R
PHP fsockopen() function:2 O1 ?1 l4 _6 W7 m
<?php
0 y2 U) P e6 X. o4 Efunction GetFile($host,$port,$link)3 k9 d8 {* _3 c' \0 I5 }
{
* p5 h3 V3 s2 B$fp = fsockopen($host, intval($port), $errno, $errstr, 30);
% k: Z$ b5 F+ A, ]% ^if (!$fp) {
7 t. T. H! H9 T& Z Mecho “$errstr (error number $errno) \n”;' x' a3 `2 F3 I0 o3 }' s6 T/ q
} else {& ~& J% t6 P# B! c# E" h
$out = “GET $link HTTP/1.1\r\n”;* W% l. i( \2 Y& N8 a# Q
$out .= “Host: $host\r\n”;' [, R# P6 |/ K9 T$ ?
$out .= “Connection: Close\r\n\r\n”;
: k$ q) V6 z) J0 M. Z+ n1 ?, b$out .= “\r\n”;+ t, R# s7 @* _* t
fwrite($fp, $out);* m+ L; r1 i3 ?( O+ I# E! P
$contents=”;
7 J$ B" X% ]1 p4 g. |) B! a' t, qwhile (!feof($fp)) {& `" _( t! w; f1 c+ i I5 k0 l
$contents.= fgets($fp, 1024);- n8 n/ ^2 A( F: N
}
) G' i2 N% a/ C' hfclose($fp);( P+ I8 _" d* U, Y( u5 d5 d) r( a
return $contents;' c1 T9 q" k8 v, U% U. v
}
: P6 R! l" U) V! x}
; N) Q8 Y' w& m; |2 w; ]/ c?>
s% p/ ^$ H1 z. A8 z/ L复制代码% m/ _" f/ b. g
此实现获取数据,如由一个用户使用的fsockopen PHP函数(任何文件或HTML)请求。此功能建立一个TCP连接的套接字的服务器上,并进行原始数据传输。1 E3 _1 z' G& X3 N& a, i( \
PHP curl_exec() function:+ q1 E- \9 B* Q$ ]
<?php
; \+ e9 F0 A( o, R6 Zif (isset($_POST['url']))
+ c3 S$ C( _' y+ Z{" Q- \. G, u' Y0 W) f: B1 S& k
$link = $_POST['url'];
! p1 i2 v8 B& c$curlobj = curl_init();
* _7 I5 w* o- i6 n# Ucurl_setopt($curlobj, CURLOPT_POST, 0);
, S/ `; l3 V- F# Hcurl_setopt($curlobj,CURLOPT_URL,$link);. V8 H4 N. O& }5 M. Q) X2 H# g
curl_setopt($curlobj, CURLOPT_RETURNTRANSFER, 1);9 ?* D) ?' f( H- M2 C4 ]2 t) C- [
$result=curl_exec($curlobj);
. i/ J# |2 i- a7 S/ y# dcurl_close($curlobj);
4 k. u. F( O, k4 u( f7 L
( m7 P" ]: c: }4 {2 c$filename = ‘./curled/’.rand().’.txt’;
/ l0 a2 g& `# |: R' f* O4 Wfile_put_contents($filename, $result);+ J6 x6 X$ \" U B3 X9 [
echo $result;
# _: j1 p/ B: g/ P( P, D1 G8 W}
# T0 D3 p, d6 m/ N/ Y7 x" h?>
; S) f( V2 g" Z$ V! \& v复制代码3 B# {( A ]7 H7 C2 L* m
这是另一种非常常见的实现,通过PHP使用curl获取数据。“卷曲”文件夹下的文件/数据下载并存储到磁盘,并附加一个随机数“。txt’结尾的文件扩展名。
/ b: `+ A C! l0 Q在本系列的下一部分,我们将看到一些可以启动的攻击使用此vulnerbility。XSPA允许攻击者在目标服务器基础设施,主要是内网的Web服务器,Web服务器本身,以及面向互联网的服务器以及。目前,我已经遇到以下五种不同的攻击方式,可以启动使用XSPA:
3 M. g3 q* L& n: k1。端口扫描远程互联网服务器,内网设备和本地Web服务器本身。横幅敛也有可能在某些情况下,
6 O) c4 \& z- s, I* n: M! E2。开发弱势运行的程序在Intranet或本地Web服务器4 T/ r: L, \8 _2 m5 u) {8 i
3。攻击内部/外部Web应用程序很容易通过URL来获取参数的漏洞(SQLI,参数操作等)
! ^5 N6 M/ D5 O! U- E+ P4。指纹图谱的Intranet Web应用程序使用标准的应用程序的默认文件及行为
L) x7 a0 P( J! U1 T2 g/ L8 o# h5。阅读使用file :/ / /协议处理程序的本地Web服务器上的文件。 |