许多Web应用程序提供的功能将数据从其他Web服务器,由于种种原因。下载XML提要,从远程服务器,Web应用程序可以使用用户指定的URL,获取图像,此功能可能会被滥用,使制作的查询使用易受攻击的Web应用程序作为代理运行在远程攻击其他服务的基于文本的文件等。 /本地服务器。通过这种滥用而产生的功能被命名为攻击,跨站点端口的攻击(XSPA)。
2 X G: n: \1 j; oXSPA(SSPA)是什么?* t! z& ?# D% s" Z s4 y
如果应用程序处理用户提供的URL和不验证/消毒后端从远程服务器接收到响应,然后将其发送回客户端应用程序是容易受到跨站点端口的攻击。攻击者可以通过发送特制的查询到一个易受攻击的Web应用程序代理攻击,面临的外部Internet服务器,内网设备和Web服务器本身易受攻击的Web应用程序使用的广告功能。的反应,在某些情况下,可以进行研究,以确定服务的可用性(端口状态,横幅等),甚至在非传统的方式获取数据的远程服务。# |$ }2 T) A+ r* R; ]
PHP fsockopen() function:
- {- J4 ]' k# X<?php
/ W5 g |! W, n3 M0 }function GetFile($host,$port,$link)# H+ ]+ H6 L7 M
{( C* I, n6 m8 D" g. n/ B7 M+ ~
$fp = fsockopen($host, intval($port), $errno, $errstr, 30);
- y/ L3 s F" j7 Gif (!$fp) {
( F$ f' a V* @( f4 a$ f! P: Iecho “$errstr (error number $errno) \n”;
* g7 A" g" Z2 U8 K( b9 b3 U} else {
8 E9 V8 s: O8 j0 m, p$out = “GET $link HTTP/1.1\r\n”;
7 b3 T5 |8 |8 u3 O( O8 ?. e$out .= “Host: $host\r\n”;; X7 {7 O: j, I0 T8 i
$out .= “Connection: Close\r\n\r\n”;
- c# c8 h! D3 B* Q- @9 f$out .= “\r\n”;# C0 \3 L* U' Y% D. t# I; ?
fwrite($fp, $out);
! O& g% D, f0 E. r6 P3 h3 E' ]2 |2 E$contents=”;% [$ u5 j; h7 W5 A
while (!feof($fp)) {% I" k/ ~' F* P4 Z+ h
$contents.= fgets($fp, 1024);& Z( [! y. @. k6 `& U# Y7 ]
}4 }$ }% G+ M" H; l- ~7 L- | I: p. i
fclose($fp);
- Y$ }! B/ J+ r4 @ w2 t6 H$ n5 `- preturn $contents;* P* j6 M. H" X0 q* l
}% @" T3 W! J" K4 }
}; @2 R3 P* g, K ]) N
?>4 ~ e. `5 W5 z0 H9 O% P" t
复制代码 G7 c; j V8 p
此实现获取数据,如由一个用户使用的fsockopen PHP函数(任何文件或HTML)请求。此功能建立一个TCP连接的套接字的服务器上,并进行原始数据传输。
+ d2 s# Y* K. Z: H PHP curl_exec() function:6 x \, T3 m3 I- Z5 f, |+ m) U
<?php
6 n% x p6 f' Lif (isset($_POST['url'])); u' E# q& I3 K
{
; j5 i U( B m* a$link = $_POST['url'];
0 l5 G: v0 _. j G4 S; o$curlobj = curl_init();9 L N1 p' Y# w9 `
curl_setopt($curlobj, CURLOPT_POST, 0);7 N- ^3 {& R9 ~: J' g
curl_setopt($curlobj,CURLOPT_URL,$link);# H% l8 f: Y7 q0 U/ l1 i
curl_setopt($curlobj, CURLOPT_RETURNTRANSFER, 1);) ^- h( `0 K: w8 A7 z0 x
$result=curl_exec($curlobj);
: Z$ E8 x5 `$ ]0 U* xcurl_close($curlobj);, ~: Q h% ~8 t7 b' }2 @8 O) s. r
# s9 |1 J+ z0 K9 w' _3 O v$filename = ‘./curled/’.rand().’.txt’;/ u- w! t2 s6 K5 b* l
file_put_contents($filename, $result);' `' H' M9 C, U4 A2 [
echo $result;
8 l7 k5 z6 G# E# T}0 Q! x0 C1 [7 X5 I ^& t4 ?
?>
7 s5 T& S- L! y复制代码" }4 ~: F( S/ H! \# \( [
这是另一种非常常见的实现,通过PHP使用curl获取数据。“卷曲”文件夹下的文件/数据下载并存储到磁盘,并附加一个随机数“。txt’结尾的文件扩展名。; H9 i# j% H* A0 p/ A& I
在本系列的下一部分,我们将看到一些可以启动的攻击使用此vulnerbility。XSPA允许攻击者在目标服务器基础设施,主要是内网的Web服务器,Web服务器本身,以及面向互联网的服务器以及。目前,我已经遇到以下五种不同的攻击方式,可以启动使用XSPA:
' b3 L* ^: r: \& u# g+ V) ?+ K; \1。端口扫描远程互联网服务器,内网设备和本地Web服务器本身。横幅敛也有可能在某些情况下,
- p' k {: y6 t3 K2。开发弱势运行的程序在Intranet或本地Web服务器
( n. ?: G4 o8 Q* Y; U4 X5 o3。攻击内部/外部Web应用程序很容易通过URL来获取参数的漏洞(SQLI,参数操作等)
: q8 w. b( t2 [4。指纹图谱的Intranet Web应用程序使用标准的应用程序的默认文件及行为
" |8 E: d7 b* M L5。阅读使用file :/ / /协议处理程序的本地Web服务器上的文件。 |