许多Web应用程序提供的功能将数据从其他Web服务器,由于种种原因。下载XML提要,从远程服务器,Web应用程序可以使用用户指定的URL,获取图像,此功能可能会被滥用,使制作的查询使用易受攻击的Web应用程序作为代理运行在远程攻击其他服务的基于文本的文件等。 /本地服务器。通过这种滥用而产生的功能被命名为攻击,跨站点端口的攻击(XSPA)。
8 Q0 ~. H' R! J, F( {: Y! RXSPA(SSPA)是什么?
) @$ d5 }+ i% t9 s1 w/ a; e如果应用程序处理用户提供的URL和不验证/消毒后端从远程服务器接收到响应,然后将其发送回客户端应用程序是容易受到跨站点端口的攻击。攻击者可以通过发送特制的查询到一个易受攻击的Web应用程序代理攻击,面临的外部Internet服务器,内网设备和Web服务器本身易受攻击的Web应用程序使用的广告功能。的反应,在某些情况下,可以进行研究,以确定服务的可用性(端口状态,横幅等),甚至在非传统的方式获取数据的远程服务。6 l" E% n: G( @0 Q9 V/ E# \$ w
PHP fsockopen() function:+ S$ f( t; ]7 X9 w8 B( P
<?php8 r' J; i# T$ y, U
function GetFile($host,$port,$link)% O# @$ v q% Y" J8 { ?
{6 r! r+ ~& S$ I7 J$ n% ~/ W
$fp = fsockopen($host, intval($port), $errno, $errstr, 30);7 U; y- h- v6 o3 ]( }
if (!$fp) {
7 f2 q T3 p( T% a7 _echo “$errstr (error number $errno) \n”;4 d+ A7 Y8 @. d: y$ L
} else {2 r. d1 b/ R, U2 s! I
$out = “GET $link HTTP/1.1\r\n”;2 Z+ U3 @) f/ a; a
$out .= “Host: $host\r\n”;# b% @8 p! G1 T6 l1 j/ [
$out .= “Connection: Close\r\n\r\n”;0 u% O1 S |( h5 ^. z9 `) D
$out .= “\r\n”;
' C; B! i) \' K# O2 ofwrite($fp, $out);1 S- Z, l+ L+ ^- G) @1 R
$contents=”;* q6 B0 i! P) m
while (!feof($fp)) {
3 R8 _% ]" L, |3 T1 }# f$contents.= fgets($fp, 1024);
u% f! L; F7 J7 i. \}
0 k& y& j% F+ K; e1 w7 B9 o5 dfclose($fp);
4 D! @# a( ?. D8 [' g ?return $contents;1 G6 j3 r8 D* k7 ] ~+ @
}
2 ~) N6 k" j4 z: F}! ?. n. E+ S# x- X) G
?>
5 B8 [0 Y( u) z4 ]+ _复制代码
4 E- S% [4 S1 q/ p- C9 N此实现获取数据,如由一个用户使用的fsockopen PHP函数(任何文件或HTML)请求。此功能建立一个TCP连接的套接字的服务器上,并进行原始数据传输。 G* W% B7 I- l. b7 s' i
PHP curl_exec() function:; y- `5 ]) z& \
<?php
# m5 c9 B9 f- k4 @if (isset($_POST['url']))
; c1 b! ]; ~ y0 w0 v3 r& m{ ~* L. ^4 d8 h+ z& Y
$link = $_POST['url'];
& c" k/ ~% L6 y2 l$curlobj = curl_init();
* s: S6 l" L+ n" ~' D7 Ecurl_setopt($curlobj, CURLOPT_POST, 0);" I4 g4 r( v& n/ R) N5 T5 m7 s
curl_setopt($curlobj,CURLOPT_URL,$link);
3 H9 v; z" f0 q8 r8 pcurl_setopt($curlobj, CURLOPT_RETURNTRANSFER, 1);
0 \( S, l, M! G4 B$result=curl_exec($curlobj);
+ |6 O+ l3 g8 @" W6 }! dcurl_close($curlobj);% t( M* b. p$ H2 K2 U
9 Z% u+ w( g+ N$filename = ‘./curled/’.rand().’.txt’;
' d$ X, @ K& m" r4 efile_put_contents($filename, $result);1 y1 [4 d3 [2 F; C! B
echo $result;1 ]# z& ~! x, V0 E5 _7 y7 t4 W
}! E* N+ g7 F" R$ Y
?>
" u- {* _% Q6 Y. v复制代码
3 Q$ l' U2 `& W/ Z3 p X这是另一种非常常见的实现,通过PHP使用curl获取数据。“卷曲”文件夹下的文件/数据下载并存储到磁盘,并附加一个随机数“。txt’结尾的文件扩展名。
) {' ~: j) C5 ^& b5 @在本系列的下一部分,我们将看到一些可以启动的攻击使用此vulnerbility。XSPA允许攻击者在目标服务器基础设施,主要是内网的Web服务器,Web服务器本身,以及面向互联网的服务器以及。目前,我已经遇到以下五种不同的攻击方式,可以启动使用XSPA:
8 h0 ]! E6 a, d( l' ?1。端口扫描远程互联网服务器,内网设备和本地Web服务器本身。横幅敛也有可能在某些情况下,
* c) G0 b+ f3 a! I1 R2。开发弱势运行的程序在Intranet或本地Web服务器# J" @4 x- y. M0 L4 A
3。攻击内部/外部Web应用程序很容易通过URL来获取参数的漏洞(SQLI,参数操作等)3 K; B6 k: R. E6 \3 {
4。指纹图谱的Intranet Web应用程序使用标准的应用程序的默认文件及行为/ S4 @- D6 S% H; `# `! f _7 B5 `: |
5。阅读使用file :/ / /协议处理程序的本地Web服务器上的文件。 |