许多Web应用程序提供的功能将数据从其他Web服务器,由于种种原因。下载XML提要,从远程服务器,Web应用程序可以使用用户指定的URL,获取图像,此功能可能会被滥用,使制作的查询使用易受攻击的Web应用程序作为代理运行在远程攻击其他服务的基于文本的文件等。 /本地服务器。通过这种滥用而产生的功能被命名为攻击,跨站点端口的攻击(XSPA)。$ D8 t. ^- ?. x: l
XSPA(SSPA)是什么?
2 @* p( ~3 Y i7 Q如果应用程序处理用户提供的URL和不验证/消毒后端从远程服务器接收到响应,然后将其发送回客户端应用程序是容易受到跨站点端口的攻击。攻击者可以通过发送特制的查询到一个易受攻击的Web应用程序代理攻击,面临的外部Internet服务器,内网设备和Web服务器本身易受攻击的Web应用程序使用的广告功能。的反应,在某些情况下,可以进行研究,以确定服务的可用性(端口状态,横幅等),甚至在非传统的方式获取数据的远程服务。
7 G5 |) {6 l. rPHP fsockopen() function:" e) c* z4 r* _$ A( z
<?php
; O: [% h2 L0 T: ofunction GetFile($host,$port,$link)9 P0 O4 ~2 V1 ^+ H% E/ n
{* |+ V! v& Z- e" u* A
$fp = fsockopen($host, intval($port), $errno, $errstr, 30);; K& R1 l6 v, n& }- c# w2 {! @
if (!$fp) {
2 z) H- H8 H- Z) V+ j4 q, ^1 aecho “$errstr (error number $errno) \n”;
* U- j" ^# {4 F# ?% z8 V l} else {. z- t/ d9 R) U c/ n( q
$out = “GET $link HTTP/1.1\r\n”;
4 Y o5 a( w- g+ q* o$out .= “Host: $host\r\n”;# l% |" ?) e& D+ y) Z
$out .= “Connection: Close\r\n\r\n”;( T: q1 o% @6 n. _5 m. I, y
$out .= “\r\n”;! N( ~& L# d* x# N& x2 v
fwrite($fp, $out);0 P: [$ q' \# o' ]6 X
$contents=”;. M) X: v( G7 h1 G) z
while (!feof($fp)) {
4 `3 x2 p+ A$ v a1 _% L! O: ~$contents.= fgets($fp, 1024);, B C/ V* U5 P; R/ C
}- U' s8 s0 I7 Y7 h: N D
fclose($fp);5 n+ ^( c* X' ~/ u5 v
return $contents;$ e; {% X$ w' E% w3 `
}; r6 m9 _0 O( @* H& y; b
}' `7 r: I% Y9 _! r+ \3 V
?>+ P1 z( n# m+ _4 Z
复制代码5 r. ~6 B3 H* g9 z3 O% \
此实现获取数据,如由一个用户使用的fsockopen PHP函数(任何文件或HTML)请求。此功能建立一个TCP连接的套接字的服务器上,并进行原始数据传输。
( r( v. Y. M- U5 q3 B7 h PHP curl_exec() function:0 U6 G# O2 n0 I& {8 T
<?php* ^) s6 Z. C; p% F# }# {
if (isset($_POST['url']))
4 o' t6 r5 C; I {( p3 l D{% P$ z, X* E% ~
$link = $_POST['url'];$ A5 Y8 D4 ^( |7 M6 X. F
$curlobj = curl_init();
2 v" [, ? }+ o* |2 A! fcurl_setopt($curlobj, CURLOPT_POST, 0);9 n f% V- m) q1 S+ D1 f' n9 I
curl_setopt($curlobj,CURLOPT_URL,$link);% _* y/ h4 G7 B! O, Q% W
curl_setopt($curlobj, CURLOPT_RETURNTRANSFER, 1);( H+ n4 X: ?9 h4 @8 J
$result=curl_exec($curlobj);
* o: ?1 v& u% g/ l1 m- l: s; ?curl_close($curlobj);
( ?$ v* ^$ I2 X& ^ ! Y, b O9 _5 ? p( h- g
$filename = ‘./curled/’.rand().’.txt’;* _4 k: H0 H. }4 _; x! ` w( T( r
file_put_contents($filename, $result);
8 L- I3 y4 Q# j2 q; w( j- Uecho $result;
- K2 O1 R4 P) O5 N5 \}0 x. W% j; ?. U* Q, A5 H! j3 F& C
?>
) V) M2 t3 ~. p4 j9 x复制代码
# X' z) Z Z. Y* K这是另一种非常常见的实现,通过PHP使用curl获取数据。“卷曲”文件夹下的文件/数据下载并存储到磁盘,并附加一个随机数“。txt’结尾的文件扩展名。
% }% f5 o* _. d3 D2 j6 I在本系列的下一部分,我们将看到一些可以启动的攻击使用此vulnerbility。XSPA允许攻击者在目标服务器基础设施,主要是内网的Web服务器,Web服务器本身,以及面向互联网的服务器以及。目前,我已经遇到以下五种不同的攻击方式,可以启动使用XSPA: a6 Q& _9 k3 A
1。端口扫描远程互联网服务器,内网设备和本地Web服务器本身。横幅敛也有可能在某些情况下,
, O' [& ~# ~: g; p) z2 L2。开发弱势运行的程序在Intranet或本地Web服务器
# ?- y% B6 U4 h: v0 w% n' N, _3。攻击内部/外部Web应用程序很容易通过URL来获取参数的漏洞(SQLI,参数操作等)
9 |- [ n& s% K, t! t: ?; t4。指纹图谱的Intranet Web应用程序使用标准的应用程序的默认文件及行为( O5 M* g$ M6 T) ?. O, X8 R% e y* K, z
5。阅读使用file :/ / /协议处理程序的本地Web服务器上的文件。 |