许多Web应用程序提供的功能将数据从其他Web服务器,由于种种原因。下载XML提要,从远程服务器,Web应用程序可以使用用户指定的URL,获取图像,此功能可能会被滥用,使制作的查询使用易受攻击的Web应用程序作为代理运行在远程攻击其他服务的基于文本的文件等。 /本地服务器。通过这种滥用而产生的功能被命名为攻击,跨站点端口的攻击(XSPA)。
5 d) F/ j- h+ C k6 JXSPA(SSPA)是什么?
. i3 o; o% g t* c" j+ z8 b% y! m3 f如果应用程序处理用户提供的URL和不验证/消毒后端从远程服务器接收到响应,然后将其发送回客户端应用程序是容易受到跨站点端口的攻击。攻击者可以通过发送特制的查询到一个易受攻击的Web应用程序代理攻击,面临的外部Internet服务器,内网设备和Web服务器本身易受攻击的Web应用程序使用的广告功能。的反应,在某些情况下,可以进行研究,以确定服务的可用性(端口状态,横幅等),甚至在非传统的方式获取数据的远程服务。- T% P; A' ?* l. ^! b7 T# P
PHP fsockopen() function:" `9 t, d& w c* h+ ?
<?php5 N, C( `( L/ ^( n# h
function GetFile($host,$port,$link); ?5 G2 U" x9 R* u
{% ]& k# \. W( ^& y
$fp = fsockopen($host, intval($port), $errno, $errstr, 30);3 }, g5 }( ^- a! r
if (!$fp) {
4 G) u+ X- P% m5 J, U5 ]echo “$errstr (error number $errno) \n”;& V! t C1 x I2 n2 x
} else {
, Y* c4 O' S5 O k) {$out = “GET $link HTTP/1.1\r\n”;
# o! b; B8 |2 A. f& O* O4 `6 ] Z$out .= “Host: $host\r\n”;+ X1 ]. u. R' G! ^) l2 X) K
$out .= “Connection: Close\r\n\r\n”;# @ G# c5 j* @, }1 i
$out .= “\r\n”;
* X& F: Y& W" A* [) B( cfwrite($fp, $out);
\! g3 d% k% t$contents=”;! U8 `6 g7 j( b1 |. g- }
while (!feof($fp)) {
, @( N: v" t1 A; A2 _/ S% s$contents.= fgets($fp, 1024);# V9 h5 M; E9 y' g
}
) L3 [# e0 n, a/ ?, f3 O1 ~fclose($fp);
& Q* j" e) X0 u) ^4 Zreturn $contents;
7 f# h6 B9 |, t2 T# x V) H}
2 B( P; s! b6 ~# V: B}# v" Y; h" `7 g0 Z$ V* c
?>
& V' G8 }5 w' B- Q( H. y5 K% w复制代码, ~( O+ N' y; p' ]
此实现获取数据,如由一个用户使用的fsockopen PHP函数(任何文件或HTML)请求。此功能建立一个TCP连接的套接字的服务器上,并进行原始数据传输。
1 L. a9 d T7 | PHP curl_exec() function:) e$ b, O5 M+ M9 E5 T
<?php' K2 P; x* d+ J6 o+ m
if (isset($_POST['url']))7 {% O0 \; l" |8 {
{( {: j) Q% _: B' @8 B" A
$link = $_POST['url'];. S3 n+ l6 w; f4 J& D7 l8 v3 A% I
$curlobj = curl_init();/ e l, c- ~) Y& r
curl_setopt($curlobj, CURLOPT_POST, 0);! u7 s8 d H: X
curl_setopt($curlobj,CURLOPT_URL,$link);
1 u; J6 B* \% B: T) u. u: m% k( {curl_setopt($curlobj, CURLOPT_RETURNTRANSFER, 1);9 X \( u, f- p( T3 K' }+ C3 |6 F
$result=curl_exec($curlobj);
- @0 _! I; u2 `( o3 G, g5 _curl_close($curlobj);
+ R( f& V$ y! m) H$ I* f/ x) I6 x 9 l1 `5 x" k+ u" N; w5 f
$filename = ‘./curled/’.rand().’.txt’;: B& Q4 n# c2 o# g
file_put_contents($filename, $result);1 x. a7 q' `; s0 ~9 d
echo $result;
& K0 `, c& i7 i! e$ M! A}
# z* T U6 I y2 |. |?>
4 P/ k# `6 `+ ]$ [3 v u2 s' n, Z复制代码. W7 h- s; N+ M, B0 [% w$ U
这是另一种非常常见的实现,通过PHP使用curl获取数据。“卷曲”文件夹下的文件/数据下载并存储到磁盘,并附加一个随机数“。txt’结尾的文件扩展名。
$ O1 ?. w5 v" |* d8 U9 _在本系列的下一部分,我们将看到一些可以启动的攻击使用此vulnerbility。XSPA允许攻击者在目标服务器基础设施,主要是内网的Web服务器,Web服务器本身,以及面向互联网的服务器以及。目前,我已经遇到以下五种不同的攻击方式,可以启动使用XSPA:* }8 c1 B* r; k/ L$ D- t
1。端口扫描远程互联网服务器,内网设备和本地Web服务器本身。横幅敛也有可能在某些情况下,
" {) M$ x2 T. K' a# L2。开发弱势运行的程序在Intranet或本地Web服务器
$ Q# z4 h6 J' g4 h0 {) F( x, s3。攻击内部/外部Web应用程序很容易通过URL来获取参数的漏洞(SQLI,参数操作等)
$ V E8 C3 G7 X0 d4。指纹图谱的Intranet Web应用程序使用标准的应用程序的默认文件及行为) O; C% H7 C+ V/ L! t# F
5。阅读使用file :/ / /协议处理程序的本地Web服务器上的文件。 |