许多Web应用程序提供的功能将数据从其他Web服务器,由于种种原因。下载XML提要,从远程服务器,Web应用程序可以使用用户指定的URL,获取图像,此功能可能会被滥用,使制作的查询使用易受攻击的Web应用程序作为代理运行在远程攻击其他服务的基于文本的文件等。 /本地服务器。通过这种滥用而产生的功能被命名为攻击,跨站点端口的攻击(XSPA)。5 Y9 T/ Q0 \9 c# W, V' A
XSPA(SSPA)是什么?
* W/ ^7 d8 L( V# u2 G如果应用程序处理用户提供的URL和不验证/消毒后端从远程服务器接收到响应,然后将其发送回客户端应用程序是容易受到跨站点端口的攻击。攻击者可以通过发送特制的查询到一个易受攻击的Web应用程序代理攻击,面临的外部Internet服务器,内网设备和Web服务器本身易受攻击的Web应用程序使用的广告功能。的反应,在某些情况下,可以进行研究,以确定服务的可用性(端口状态,横幅等),甚至在非传统的方式获取数据的远程服务。/ { K3 l! H# ?# u/ p# P Z$ S
PHP fsockopen() function:: V: g) P! H/ _& G5 L
<?php
, W3 Y! L3 C3 [4 efunction GetFile($host,$port,$link)
; `% d# {- h' T1 c{ M2 K& k a6 r3 H
$fp = fsockopen($host, intval($port), $errno, $errstr, 30);
; }* J! L, {, Y4 O+ ?" R0 ]+ H$ ~if (!$fp) { 5 |2 S6 i6 S7 ]4 H( z% k9 Z2 E( @
echo “$errstr (error number $errno) \n”;
2 W. I* e* w7 `* x3 g} else {, n$ E+ F6 R* j( P# m
$out = “GET $link HTTP/1.1\r\n”;( w" I+ H# k x6 |( \9 u
$out .= “Host: $host\r\n”;
' S+ g, G7 e6 O% Y$out .= “Connection: Close\r\n\r\n”;
2 L" {" k- \4 _4 h3 K( D0 E$out .= “\r\n”;
% t, E6 x Q0 |% d" Zfwrite($fp, $out);0 ?, o' {& m$ Z( a" c6 W
$contents=”;
% g" w$ J6 M" g( }+ L0 bwhile (!feof($fp)) {( ]* F, A R/ O0 M& l, Y
$contents.= fgets($fp, 1024);( ^1 I% V5 f# Z$ B# ~; Q8 v
}
0 o: S* ]. B- W0 J, Rfclose($fp);
$ v1 C. V( t/ X. Qreturn $contents;
1 Z( n2 \' N. Q% P. J& i}9 d! a. \$ U6 [3 x2 Z" W, u# U, H( t
}% ^( W7 e# m& ~* U* }3 j
?>
; x; o9 r l3 e8 S复制代码
2 z9 b2 z4 J+ h此实现获取数据,如由一个用户使用的fsockopen PHP函数(任何文件或HTML)请求。此功能建立一个TCP连接的套接字的服务器上,并进行原始数据传输。6 ~; `" w, @; c! x5 V
PHP curl_exec() function:; v( x0 S, [0 K' J, j+ m
<?php: l$ L' ^' o9 R1 k v3 @6 Y
if (isset($_POST['url']))" e1 l; E" b/ x1 L4 E
{9 U) c, H. z q! p, d! x! p: y8 z
$link = $_POST['url'];
8 q/ U3 e+ A9 O, B6 @8 @3 g) e$curlobj = curl_init();, V% a$ e c$ g2 Z
curl_setopt($curlobj, CURLOPT_POST, 0);, ~# l. a4 d2 H3 n% h
curl_setopt($curlobj,CURLOPT_URL,$link);* ]/ g2 o. y* w* u
curl_setopt($curlobj, CURLOPT_RETURNTRANSFER, 1);0 i$ L2 L9 a2 j
$result=curl_exec($curlobj);
4 s7 J3 D5 r4 n# _5 m2 ?, E: |. Xcurl_close($curlobj);
! p0 V3 g4 E) E2 T/ [ ' p% I, ]( y# W& E, h& F( Z
$filename = ‘./curled/’.rand().’.txt’;
$ v, D6 |' X" |- q2 _) Nfile_put_contents($filename, $result);
9 V- |/ x4 U3 b- i" V- d* a1 Secho $result;
& l& P6 s+ a! t: U* H}
5 I. t. F% ~" U/ Q% s- T: X. T?>; c7 P- i1 @- _( V3 c3 l7 ]* W" |
复制代码% _* [$ r) `7 Y5 q
这是另一种非常常见的实现,通过PHP使用curl获取数据。“卷曲”文件夹下的文件/数据下载并存储到磁盘,并附加一个随机数“。txt’结尾的文件扩展名。6 ?& i/ K" R) N9 J1 w/ ^9 p
在本系列的下一部分,我们将看到一些可以启动的攻击使用此vulnerbility。XSPA允许攻击者在目标服务器基础设施,主要是内网的Web服务器,Web服务器本身,以及面向互联网的服务器以及。目前,我已经遇到以下五种不同的攻击方式,可以启动使用XSPA:2 Q2 y: ~: M+ p0 u- F5 d6 Q' e- U
1。端口扫描远程互联网服务器,内网设备和本地Web服务器本身。横幅敛也有可能在某些情况下,
2 d! `% p& t3 d2 r- Y5 d2。开发弱势运行的程序在Intranet或本地Web服务器% ]( T, S- \! [
3。攻击内部/外部Web应用程序很容易通过URL来获取参数的漏洞(SQLI,参数操作等)
5 O: R' Y, e+ g& l4。指纹图谱的Intranet Web应用程序使用标准的应用程序的默认文件及行为
5 l4 Y8 U3 e) l2 o5。阅读使用file :/ / /协议处理程序的本地Web服务器上的文件。 |