许多Web应用程序提供的功能将数据从其他Web服务器,由于种种原因。下载XML提要,从远程服务器,Web应用程序可以使用用户指定的URL,获取图像,此功能可能会被滥用,使制作的查询使用易受攻击的Web应用程序作为代理运行在远程攻击其他服务的基于文本的文件等。 /本地服务器。通过这种滥用而产生的功能被命名为攻击,跨站点端口的攻击(XSPA)。
% i3 O9 u! m4 r2 q0 E4 ~XSPA(SSPA)是什么? Q4 K( m1 ? p# w- g( C
如果应用程序处理用户提供的URL和不验证/消毒后端从远程服务器接收到响应,然后将其发送回客户端应用程序是容易受到跨站点端口的攻击。攻击者可以通过发送特制的查询到一个易受攻击的Web应用程序代理攻击,面临的外部Internet服务器,内网设备和Web服务器本身易受攻击的Web应用程序使用的广告功能。的反应,在某些情况下,可以进行研究,以确定服务的可用性(端口状态,横幅等),甚至在非传统的方式获取数据的远程服务。) I$ M5 u' X8 B5 o+ v' s+ ]
PHP fsockopen() function:6 l/ D8 P, U' }! Z9 l+ E( i
<?php$ u$ k# r4 M# W) T
function GetFile($host,$port,$link)
# K9 o$ `- Z, |/ h s4 v* ]" F) h! D{
" x% r( Z1 ]; c$fp = fsockopen($host, intval($port), $errno, $errstr, 30);2 L1 P% M j* w* |% t- \
if (!$fp) {
; `1 W" ]2 F: c' _8 @2 d' [% p8 J6 l: Mecho “$errstr (error number $errno) \n”;
% o$ K/ j- B2 t7 n} else {
$ `6 _( P7 k0 f' b4 l! x) Z$out = “GET $link HTTP/1.1\r\n”;4 Y) u' t V$ [- b5 `* p
$out .= “Host: $host\r\n”;
3 F2 ]/ ^8 q5 C! f$out .= “Connection: Close\r\n\r\n”;
! m; y+ O9 O0 R9 `$out .= “\r\n”;
0 w; V0 }! G! b3 r7 M. sfwrite($fp, $out);
& D; `. s: v+ O2 l9 c+ \- ^$contents=”;
0 Q, e5 O# \' W( E. `+ A/ swhile (!feof($fp)) {7 v9 t9 ?5 A9 W9 S+ B b
$contents.= fgets($fp, 1024);
+ r7 J. v, a% o}
1 g5 {9 w- ?& x! g' }fclose($fp);
& j% v: k+ B! w! D2 ?' ]1 ]return $contents;
( u9 O$ C" L4 q- y}
9 ~; h* n+ B. I3 l}
( O6 C0 ]4 A0 V?>9 {5 G2 ]( u. ~/ ^9 a: v. i1 m7 W( B
复制代码
7 \& r2 E7 U0 ^1 O此实现获取数据,如由一个用户使用的fsockopen PHP函数(任何文件或HTML)请求。此功能建立一个TCP连接的套接字的服务器上,并进行原始数据传输。
T3 B5 n8 L& l PHP curl_exec() function:
, P2 ]6 A1 @! p# a' l<?php2 u6 W. o; [! @5 f( k' t* H
if (isset($_POST['url']))
7 b3 z' Y) D' ~' D# ]7 U( w{4 [5 ~- T+ q4 S3 f
$link = $_POST['url'];8 b7 ^5 L$ i) u" W' b/ m
$curlobj = curl_init();2 I# _* c! l( g4 |9 w6 M8 S; M
curl_setopt($curlobj, CURLOPT_POST, 0);
& @1 M- ]+ d! q) ?- ?curl_setopt($curlobj,CURLOPT_URL,$link);0 c' h5 d, x3 n3 d! L; ^# c$ S% i+ A
curl_setopt($curlobj, CURLOPT_RETURNTRANSFER, 1);- t" H$ g9 L0 o0 A+ m3 B
$result=curl_exec($curlobj);; V8 E p' I: B( {
curl_close($curlobj);% g/ C0 M1 P: S; g6 U, ]
! \4 m; ]" `/ i; S9 k6 X$filename = ‘./curled/’.rand().’.txt’;
% L8 ~+ V; \" p* q9 afile_put_contents($filename, $result);
" x$ f) w% o" u2 a4 zecho $result;
( s- O* D0 I# z7 f) y) f}5 k5 V& X( l2 e$ X a; E# {
?>
# u4 x) K; y# @; i9 J' g% _% @复制代码$ t3 b F( B8 R2 N5 {
这是另一种非常常见的实现,通过PHP使用curl获取数据。“卷曲”文件夹下的文件/数据下载并存储到磁盘,并附加一个随机数“。txt’结尾的文件扩展名。, C5 S, {; i. y" q% }: y/ I5 s j
在本系列的下一部分,我们将看到一些可以启动的攻击使用此vulnerbility。XSPA允许攻击者在目标服务器基础设施,主要是内网的Web服务器,Web服务器本身,以及面向互联网的服务器以及。目前,我已经遇到以下五种不同的攻击方式,可以启动使用XSPA:
! W5 C/ d+ h( Y; p1。端口扫描远程互联网服务器,内网设备和本地Web服务器本身。横幅敛也有可能在某些情况下,
) R7 W" u; b+ R( \$ P r# o2。开发弱势运行的程序在Intranet或本地Web服务器
) j( j" @5 j6 T! P2 V+ I s3。攻击内部/外部Web应用程序很容易通过URL来获取参数的漏洞(SQLI,参数操作等)
$ o- U2 }7 q0 S" V: T( |4。指纹图谱的Intranet Web应用程序使用标准的应用程序的默认文件及行为2 D* P6 q0 T2 a: P9 r
5。阅读使用file :/ / /协议处理程序的本地Web服务器上的文件。 |