许多Web应用程序提供的功能将数据从其他Web服务器,由于种种原因。下载XML提要,从远程服务器,Web应用程序可以使用用户指定的URL,获取图像,此功能可能会被滥用,使制作的查询使用易受攻击的Web应用程序作为代理运行在远程攻击其他服务的基于文本的文件等。 /本地服务器。通过这种滥用而产生的功能被命名为攻击,跨站点端口的攻击(XSPA)。
/ u/ C. k4 V# nXSPA(SSPA)是什么?
! {* p! x5 u' z$ a如果应用程序处理用户提供的URL和不验证/消毒后端从远程服务器接收到响应,然后将其发送回客户端应用程序是容易受到跨站点端口的攻击。攻击者可以通过发送特制的查询到一个易受攻击的Web应用程序代理攻击,面临的外部Internet服务器,内网设备和Web服务器本身易受攻击的Web应用程序使用的广告功能。的反应,在某些情况下,可以进行研究,以确定服务的可用性(端口状态,横幅等),甚至在非传统的方式获取数据的远程服务。
$ H( o8 c: X; }PHP fsockopen() function:2 s- }' a6 _# d' q
<?php9 h0 u! \1 h8 H; h' Z
function GetFile($host,$port,$link)
2 w% C7 d6 b/ _2 u) F{
; g6 V4 S1 [. J$fp = fsockopen($host, intval($port), $errno, $errstr, 30);
/ w& D3 p+ a# Gif (!$fp) {
. m$ r( N' L/ R+ d d6 Q, @" s8 U& gecho “$errstr (error number $errno) \n”;
3 }; ]! N; p6 ~8 J} else {6 l6 }9 m- a! m' J2 A [2 R
$out = “GET $link HTTP/1.1\r\n”;
5 ?" A$ ^# L; ~1 k% S$out .= “Host: $host\r\n”;( l0 T" E3 _! n& n+ C
$out .= “Connection: Close\r\n\r\n”;
/ ~/ m& O* l* v0 E3 y! D$out .= “\r\n”;8 ^/ v& Y" A. K @3 u z. M
fwrite($fp, $out);9 d9 B4 z: h j+ [4 ?, |, S
$contents=”;' R. v6 ^5 c/ k( G# p
while (!feof($fp)) {) i* P8 k6 {' R$ k0 u4 ?
$contents.= fgets($fp, 1024);9 z; Y7 v/ k% ]
}
) n$ ~) ?$ a6 x3 X, ]- yfclose($fp);: Z) r: F6 z1 G9 @# N C! X
return $contents;
7 [) r/ g- e( Y5 t6 q1 m}
; B, z( `8 Y I' i# J}
+ j# B* \+ R, D- O5 `?>
+ a, C" r2 {0 p复制代码& }2 q! d, ^. h/ s5 g f
此实现获取数据,如由一个用户使用的fsockopen PHP函数(任何文件或HTML)请求。此功能建立一个TCP连接的套接字的服务器上,并进行原始数据传输。
% |6 ? I3 [/ T3 l, Y PHP curl_exec() function:' a" F& ^1 z6 h/ [6 H" c
<?php
6 @" J. j s! q) zif (isset($_POST['url']))
# N, E( I3 x, x( _; a{! ?9 M; g5 h9 l' B+ E
$link = $_POST['url'];
8 T8 c7 [" z6 e! }$curlobj = curl_init();5 {: i$ X& \% L0 V4 l: v! z
curl_setopt($curlobj, CURLOPT_POST, 0);
8 ^% ^9 O/ G' x+ Y2 U; j; Tcurl_setopt($curlobj,CURLOPT_URL,$link);: q1 U6 C; `9 B8 x& u
curl_setopt($curlobj, CURLOPT_RETURNTRANSFER, 1);: G! _5 T' |8 e u5 s2 _
$result=curl_exec($curlobj); J; c/ g: V4 s* F! e3 y- x
curl_close($curlobj);
1 I. X, x# j7 t8 c
9 f- _7 X6 L; F) O$filename = ‘./curled/’.rand().’.txt’;4 q/ ]) _: v$ R# E8 ^
file_put_contents($filename, $result);: x4 Z+ I9 v; ?3 _: @" F6 [7 b6 C Y5 s
echo $result;
. f8 ^. t! g6 w! t' s/ T( I}
# U- R5 f+ S* ]/ @) ^6 g' r: J; T?>& A1 J7 y' t4 N3 \8 B m$ x
复制代码
* V+ p5 H5 _% v) ^& ^: Q这是另一种非常常见的实现,通过PHP使用curl获取数据。“卷曲”文件夹下的文件/数据下载并存储到磁盘,并附加一个随机数“。txt’结尾的文件扩展名。
+ @; O) v1 f x0 t在本系列的下一部分,我们将看到一些可以启动的攻击使用此vulnerbility。XSPA允许攻击者在目标服务器基础设施,主要是内网的Web服务器,Web服务器本身,以及面向互联网的服务器以及。目前,我已经遇到以下五种不同的攻击方式,可以启动使用XSPA:; j& s( l: M5 u7 n! R
1。端口扫描远程互联网服务器,内网设备和本地Web服务器本身。横幅敛也有可能在某些情况下,
9 ~* v/ A: @" I1 m6 d2。开发弱势运行的程序在Intranet或本地Web服务器
( }" {8 u1 R7 d* Z# J- T! Z3。攻击内部/外部Web应用程序很容易通过URL来获取参数的漏洞(SQLI,参数操作等)# v2 L& f- b$ W
4。指纹图谱的Intranet Web应用程序使用标准的应用程序的默认文件及行为$ Y/ ?+ T5 x% Q- c
5。阅读使用file :/ / /协议处理程序的本地Web服务器上的文件。 |