许多Web应用程序提供的功能将数据从其他Web服务器,由于种种原因。下载XML提要,从远程服务器,Web应用程序可以使用用户指定的URL,获取图像,此功能可能会被滥用,使制作的查询使用易受攻击的Web应用程序作为代理运行在远程攻击其他服务的基于文本的文件等。 /本地服务器。通过这种滥用而产生的功能被命名为攻击,跨站点端口的攻击(XSPA)。. h0 X- |; H3 W( ?- Z7 q& G& m/ G
XSPA(SSPA)是什么?
$ x3 K6 q S$ h6 f' ]. u如果应用程序处理用户提供的URL和不验证/消毒后端从远程服务器接收到响应,然后将其发送回客户端应用程序是容易受到跨站点端口的攻击。攻击者可以通过发送特制的查询到一个易受攻击的Web应用程序代理攻击,面临的外部Internet服务器,内网设备和Web服务器本身易受攻击的Web应用程序使用的广告功能。的反应,在某些情况下,可以进行研究,以确定服务的可用性(端口状态,横幅等),甚至在非传统的方式获取数据的远程服务。/ X& l3 r8 T/ t1 P5 j/ x3 C
PHP fsockopen() function:; b$ \ x% P& V" v8 o
<?php( x/ k, v2 B% C; w) [
function GetFile($host,$port,$link)% |2 L& ?5 @; p8 c9 n' J9 D
{* R: x8 N* P% M# @
$fp = fsockopen($host, intval($port), $errno, $errstr, 30);* |0 j" N u$ t4 t$ f Q% B _8 P
if (!$fp) {
# A8 t7 g6 \: T- I/ Z( Lecho “$errstr (error number $errno) \n”;) i8 c. D4 u+ y3 i5 H# o
} else {5 m2 e- o Z0 s2 X* K- [
$out = “GET $link HTTP/1.1\r\n”;
# z/ M& c& c, m+ h- ~6 [( P% B$out .= “Host: $host\r\n”;5 m, o& G3 k6 u. w
$out .= “Connection: Close\r\n\r\n”;# I3 e. e% K/ }3 k; N
$out .= “\r\n”;
8 u! M: v8 o9 x/ @- T' Cfwrite($fp, $out);
3 k8 o% C* O! f% U* ]4 V6 S) Y$contents=”;
5 \1 C. i$ R& ^' v; vwhile (!feof($fp)) {+ c) J5 }. p( T% X7 Z) ^6 H
$contents.= fgets($fp, 1024);( K" M- c0 ?9 l$ O
}
, q& W! V: x0 R& K$ `fclose($fp);
8 E/ T9 d- f5 f, N2 Ereturn $contents;* g# Z' `! U1 F! D
}- P- h1 A5 M, w% n9 N
}' ]4 {: S9 a- E' z' h
?>
$ G7 h* } f7 R b$ Y2 b0 m, |复制代码8 U D! t, z+ S; C
此实现获取数据,如由一个用户使用的fsockopen PHP函数(任何文件或HTML)请求。此功能建立一个TCP连接的套接字的服务器上,并进行原始数据传输。' K0 |0 O6 Z2 V# L
PHP curl_exec() function:
$ F/ t1 S% q+ v! P- P. J$ B<?php% q. V! Z% `; L- \
if (isset($_POST['url']))3 A d" e1 J( d% f. v. n
{
h2 S4 J5 I: I% |( t$link = $_POST['url'];
; E; \4 k, f4 [$curlobj = curl_init();
4 R+ Q$ N6 J7 D+ tcurl_setopt($curlobj, CURLOPT_POST, 0);
5 D- J0 |! x+ A9 y4 a/ ]9 ycurl_setopt($curlobj,CURLOPT_URL,$link);
* l5 c, L' p5 z6 G. @curl_setopt($curlobj, CURLOPT_RETURNTRANSFER, 1);
/ {* K: Z# {/ [# ?2 `& m$result=curl_exec($curlobj);
# y+ I0 s" }7 ?' m/ X3 q) P" n/ pcurl_close($curlobj);3 h6 E) Q& v2 c5 \% @
' m5 w8 l. C" s8 Y; ]9 A$filename = ‘./curled/’.rand().’.txt’;( I- q) \: f7 `$ T' z
file_put_contents($filename, $result);
4 }7 J" s$ n) P! iecho $result;
& c- a2 L2 E+ D- a' v! {}
9 G' f$ H ?6 i+ X$ r1 \?>( K; k1 J8 z' L
复制代码
) n- A3 V O# B( ]这是另一种非常常见的实现,通过PHP使用curl获取数据。“卷曲”文件夹下的文件/数据下载并存储到磁盘,并附加一个随机数“。txt’结尾的文件扩展名。
# c( K; ?/ z$ p" \1 u8 m5 U K在本系列的下一部分,我们将看到一些可以启动的攻击使用此vulnerbility。XSPA允许攻击者在目标服务器基础设施,主要是内网的Web服务器,Web服务器本身,以及面向互联网的服务器以及。目前,我已经遇到以下五种不同的攻击方式,可以启动使用XSPA:2 g X+ |( P0 B; V
1。端口扫描远程互联网服务器,内网设备和本地Web服务器本身。横幅敛也有可能在某些情况下,
4 @7 E: Y; Z( g) @. ~; a2。开发弱势运行的程序在Intranet或本地Web服务器! Q- K+ w @1 {7 x3 m
3。攻击内部/外部Web应用程序很容易通过URL来获取参数的漏洞(SQLI,参数操作等)% r7 J6 Q1 k9 s8 S, o
4。指纹图谱的Intranet Web应用程序使用标准的应用程序的默认文件及行为
@( Y) k2 D( p) c6 ^2 I: I: Q8 n5。阅读使用file :/ / /协议处理程序的本地Web服务器上的文件。 |