许多Web应用程序提供的功能将数据从其他Web服务器,由于种种原因。下载XML提要,从远程服务器,Web应用程序可以使用用户指定的URL,获取图像,此功能可能会被滥用,使制作的查询使用易受攻击的Web应用程序作为代理运行在远程攻击其他服务的基于文本的文件等。 /本地服务器。通过这种滥用而产生的功能被命名为攻击,跨站点端口的攻击(XSPA)。/ |2 g+ U* V& ]9 e* V- G* Y+ T
XSPA(SSPA)是什么?3 J5 l$ r& f6 K' S( F( K7 [
如果应用程序处理用户提供的URL和不验证/消毒后端从远程服务器接收到响应,然后将其发送回客户端应用程序是容易受到跨站点端口的攻击。攻击者可以通过发送特制的查询到一个易受攻击的Web应用程序代理攻击,面临的外部Internet服务器,内网设备和Web服务器本身易受攻击的Web应用程序使用的广告功能。的反应,在某些情况下,可以进行研究,以确定服务的可用性(端口状态,横幅等),甚至在非传统的方式获取数据的远程服务。- n- k' K4 [0 l+ ?! C
PHP fsockopen() function:" j/ Y+ S* G' m4 L( v; M! Q( T2 I
<?php; z5 u6 k. `7 [+ m
function GetFile($host,$port,$link)
y. M% A4 \2 }% |4 m9 O% h{+ `; j9 r" ~4 G [
$fp = fsockopen($host, intval($port), $errno, $errstr, 30);
% o! |4 k* R* {4 _, L/ N! vif (!$fp) {
4 ?" S( n! ~2 i$ i! T# \. v/ K/ ?echo “$errstr (error number $errno) \n”;/ ~% K0 N, ~, |) T8 g: Q# t7 j0 _
} else {
# Y- \2 S" Q+ Y5 R9 `6 v2 M$out = “GET $link HTTP/1.1\r\n”;4 e* Y) b6 d, e3 U) e& V: L
$out .= “Host: $host\r\n”;6 z. y5 d! J* \ t0 I) N
$out .= “Connection: Close\r\n\r\n”;; U, R" _2 k6 `5 C
$out .= “\r\n”;8 k# U6 Y* g+ z, G: W. Q
fwrite($fp, $out);
7 S0 V E% T' f$ G, o$contents=”;
; e- _3 k7 l! {' v4 g/ Gwhile (!feof($fp)) {
, E! f$ b4 D+ ?3 c6 C' C! [7 j$contents.= fgets($fp, 1024);; b+ K/ h# O; m. Q0 i# W
}% C5 Y! y" k" J' F5 I
fclose($fp);* |/ c5 y* u& t" M6 L3 K
return $contents;
& I4 x5 o/ s, f" g: V}- J7 o9 Y/ p+ h. `% `$ c" @
}
$ D6 k. T% |/ v* C?>
, H8 P7 w- L. G9 R% a复制代码
9 |4 Y/ d$ p# D0 s7 r. ]% |. U此实现获取数据,如由一个用户使用的fsockopen PHP函数(任何文件或HTML)请求。此功能建立一个TCP连接的套接字的服务器上,并进行原始数据传输。" S; D1 ?: u& C7 X" c1 l6 d
PHP curl_exec() function:
- E! e2 D: G" |2 U; ?3 Q B<?php
! A$ ^/ v: D w; jif (isset($_POST['url']))
% J/ q. S- G4 U( }{
( o6 ^, \- b/ m; u L- S- ~$link = $_POST['url'];: g+ i$ \" r4 Y5 _4 D6 X
$curlobj = curl_init();1 O9 p; c/ @) d [: R2 \
curl_setopt($curlobj, CURLOPT_POST, 0);
2 J: H6 ~5 E9 Qcurl_setopt($curlobj,CURLOPT_URL,$link);
* m- d5 u6 C& n3 c$ x! ?3 Ncurl_setopt($curlobj, CURLOPT_RETURNTRANSFER, 1);. c2 Z& M. Z( B' `3 ~+ r
$result=curl_exec($curlobj);; u, A# q9 `6 B
curl_close($curlobj);
3 C3 I2 [7 j' { ! h1 G9 l6 J. D# z' D- }* W% z9 U
$filename = ‘./curled/’.rand().’.txt’;/ @" H7 V! ^. q9 P* g$ Z+ A
file_put_contents($filename, $result);
! d% d8 Y* v7 [2 oecho $result;
1 ^! b5 A ]6 e% y+ K1 K9 h1 O}
% @0 v' t5 Q0 [& j6 {: f3 N?>
; N+ C8 T0 c: ^. k复制代码
* [6 P. R! C/ T( @这是另一种非常常见的实现,通过PHP使用curl获取数据。“卷曲”文件夹下的文件/数据下载并存储到磁盘,并附加一个随机数“。txt’结尾的文件扩展名。
" D0 n9 n/ j6 g) l0 J在本系列的下一部分,我们将看到一些可以启动的攻击使用此vulnerbility。XSPA允许攻击者在目标服务器基础设施,主要是内网的Web服务器,Web服务器本身,以及面向互联网的服务器以及。目前,我已经遇到以下五种不同的攻击方式,可以启动使用XSPA:
; F0 _" b0 z4 ?8 j2 R5 K6 Y, [1。端口扫描远程互联网服务器,内网设备和本地Web服务器本身。横幅敛也有可能在某些情况下,
9 ^& r' a4 U9 l7 l' P* M! Y8 C$ c3 \2。开发弱势运行的程序在Intranet或本地Web服务器: E8 r( W" O" r. \
3。攻击内部/外部Web应用程序很容易通过URL来获取参数的漏洞(SQLI,参数操作等)
. s( M0 Y+ K6 R3 X: S. r1 O4。指纹图谱的Intranet Web应用程序使用标准的应用程序的默认文件及行为) k I+ Q, ?9 r9 u
5。阅读使用file :/ / /协议处理程序的本地Web服务器上的文件。 |