许多Web应用程序提供的功能将数据从其他Web服务器,由于种种原因。下载XML提要,从远程服务器,Web应用程序可以使用用户指定的URL,获取图像,此功能可能会被滥用,使制作的查询使用易受攻击的Web应用程序作为代理运行在远程攻击其他服务的基于文本的文件等。 /本地服务器。通过这种滥用而产生的功能被命名为攻击,跨站点端口的攻击(XSPA)。
4 V0 v7 y4 @4 T4 v3 a, wXSPA(SSPA)是什么? Z& |' x3 }5 E: d% Q
如果应用程序处理用户提供的URL和不验证/消毒后端从远程服务器接收到响应,然后将其发送回客户端应用程序是容易受到跨站点端口的攻击。攻击者可以通过发送特制的查询到一个易受攻击的Web应用程序代理攻击,面临的外部Internet服务器,内网设备和Web服务器本身易受攻击的Web应用程序使用的广告功能。的反应,在某些情况下,可以进行研究,以确定服务的可用性(端口状态,横幅等),甚至在非传统的方式获取数据的远程服务。
6 T; [; y+ S: ^0 h0 Q# gPHP fsockopen() function:6 s3 ]7 Q7 F9 h* K, k
<?php
6 J/ y. o, N$ K8 X3 F8 ufunction GetFile($host,$port,$link)
6 ]; G6 i' A4 L* Y+ R{ P& I0 s# E1 Z M
$fp = fsockopen($host, intval($port), $errno, $errstr, 30);
, n& U6 |7 U* x* Z8 `; rif (!$fp) { ; c3 G. h& R/ V* L6 W8 s1 E$ r& o
echo “$errstr (error number $errno) \n”;+ y, A! }* B# M8 N% x9 m q
} else {
1 o) M' H( A s) U$out = “GET $link HTTP/1.1\r\n”;
* v. {5 s, c! o+ l$out .= “Host: $host\r\n”;
# l) C4 D! Z( j' V* G$out .= “Connection: Close\r\n\r\n”;
" n9 S2 x4 Y3 ~$out .= “\r\n”;' c% @7 V1 T- p
fwrite($fp, $out);
1 W3 C7 @1 R) T: q* p& ?) L6 ~$contents=”;9 }& n$ A4 r+ e( _4 R- c6 ~
while (!feof($fp)) {- w. S2 ?7 w9 l3 L7 Z
$contents.= fgets($fp, 1024);
7 h0 ^" n8 V1 R9 C) e# ^1 P2 ~% U* j2 ?}, b3 q% P) w/ v9 y2 J) c8 c& E
fclose($fp);
* V% F8 b% `' y- ]$ c% o1 a2 ~# kreturn $contents;0 l' I: m$ K, `+ }
}
* D: J4 g3 f6 K9 u/ @}
& t# P$ z" y) S2 ^) U?>& m/ k7 R! U6 p/ R
复制代码
5 z K, A2 B3 ^$ |此实现获取数据,如由一个用户使用的fsockopen PHP函数(任何文件或HTML)请求。此功能建立一个TCP连接的套接字的服务器上,并进行原始数据传输。8 N" G% r Q& C( y
PHP curl_exec() function:
+ t, }- j7 O) p) l$ d. E6 O<?php
1 a7 H0 Y% q( Y, E. v2 j; eif (isset($_POST['url']))
% Z% H/ i& R" S/ c: G, h! j{, K5 F; z+ s4 X. i8 o1 U6 ?& z+ i& i
$link = $_POST['url'];8 J! u: H( G$ a1 D9 z
$curlobj = curl_init();! _ i W" N: _ f; E
curl_setopt($curlobj, CURLOPT_POST, 0);: t' N4 P8 r7 \# M8 E: ]/ r! V
curl_setopt($curlobj,CURLOPT_URL,$link);7 v2 t# \' m8 X" {* n* z G# k* r
curl_setopt($curlobj, CURLOPT_RETURNTRANSFER, 1);" v' j$ D3 |' e$ B
$result=curl_exec($curlobj);- b/ X) X% @* c+ ^7 Z# T: d
curl_close($curlobj);) b$ ]+ O, ?: I$ W7 D: G& ?9 W. z
* Q# q( u$ K2 j, @: |" I; }
$filename = ‘./curled/’.rand().’.txt’;$ M. l; x J$ U. s/ P
file_put_contents($filename, $result);
2 V' _! s" N# q5 Fecho $result;
+ {) c0 E* N5 x% z t} p1 a/ m8 I4 [+ N" r5 J1 Z1 ?
?>
5 r( m4 T* e" n3 p2 F/ l' A8 I复制代码7 |4 l0 x3 ^! h8 q% ?( r$ [# _
这是另一种非常常见的实现,通过PHP使用curl获取数据。“卷曲”文件夹下的文件/数据下载并存储到磁盘,并附加一个随机数“。txt’结尾的文件扩展名。4 y' f' l2 |! U. z
在本系列的下一部分,我们将看到一些可以启动的攻击使用此vulnerbility。XSPA允许攻击者在目标服务器基础设施,主要是内网的Web服务器,Web服务器本身,以及面向互联网的服务器以及。目前,我已经遇到以下五种不同的攻击方式,可以启动使用XSPA:
1 Q+ }# Z, `9 q1。端口扫描远程互联网服务器,内网设备和本地Web服务器本身。横幅敛也有可能在某些情况下,
3 ^; q. l* E+ v' Q2。开发弱势运行的程序在Intranet或本地Web服务器
- h' Q* V- u" M& ^* ~4 j- D3。攻击内部/外部Web应用程序很容易通过URL来获取参数的漏洞(SQLI,参数操作等)0 d$ }! T4 X4 F* k
4。指纹图谱的Intranet Web应用程序使用标准的应用程序的默认文件及行为5 I8 D( m4 \! B
5。阅读使用file :/ / /协议处理程序的本地Web服务器上的文件。 |