许多Web应用程序提供的功能将数据从其他Web服务器,由于种种原因。下载XML提要,从远程服务器,Web应用程序可以使用用户指定的URL,获取图像,此功能可能会被滥用,使制作的查询使用易受攻击的Web应用程序作为代理运行在远程攻击其他服务的基于文本的文件等。 /本地服务器。通过这种滥用而产生的功能被命名为攻击,跨站点端口的攻击(XSPA)。
: l2 `) K4 s2 L/ GXSPA(SSPA)是什么?
% f' T! h0 S E如果应用程序处理用户提供的URL和不验证/消毒后端从远程服务器接收到响应,然后将其发送回客户端应用程序是容易受到跨站点端口的攻击。攻击者可以通过发送特制的查询到一个易受攻击的Web应用程序代理攻击,面临的外部Internet服务器,内网设备和Web服务器本身易受攻击的Web应用程序使用的广告功能。的反应,在某些情况下,可以进行研究,以确定服务的可用性(端口状态,横幅等),甚至在非传统的方式获取数据的远程服务。
( a- E m5 w4 f0 B6 u7 E+ kPHP fsockopen() function:
2 p1 ]+ z# i; F- R: H. r- i<?php
9 k" }1 w( B/ p6 e# P( C- Hfunction GetFile($host,$port,$link)
# X+ r* S* D0 R6 ]{2 u$ H" d$ V& u
$fp = fsockopen($host, intval($port), $errno, $errstr, 30);: b) f5 `4 e/ A& [! }; U3 l
if (!$fp) {
& p' U/ N+ H- A5 |* o. Uecho “$errstr (error number $errno) \n”;: J' a: R3 _( r
} else {
* f# c z5 N5 _$out = “GET $link HTTP/1.1\r\n”;- V% Z& b4 y* r" F4 p$ b4 ^
$out .= “Host: $host\r\n”;8 T' _5 P' L' d' m# ?
$out .= “Connection: Close\r\n\r\n”;$ Y, H6 |- u! n2 D, B
$out .= “\r\n”;4 Z9 W' {+ Y1 J2 i* Y
fwrite($fp, $out);- K/ d, | W9 t
$contents=”;" g! A' ]! i, z5 H' l9 K4 \, p2 j3 k
while (!feof($fp)) {2 z4 ]4 k0 [; E# e
$contents.= fgets($fp, 1024);
& N, Y9 J4 @( A}+ I6 J. A# }, L% }# s
fclose($fp);
4 ]3 b9 F" g8 T1 Ireturn $contents;
$ X. S( D3 x! l" W+ S& Y5 u}4 D( _% f% e( P3 }4 j0 a+ P
}
" _/ c( U/ V& @) v9 }/ i: ]0 s?>, f7 T5 n! e/ }: s0 W
复制代码3 c- P" E( q) W" W, g- \: s+ v9 U4 e7 M
此实现获取数据,如由一个用户使用的fsockopen PHP函数(任何文件或HTML)请求。此功能建立一个TCP连接的套接字的服务器上,并进行原始数据传输。
) C7 j. g" a6 x3 e+ }1 h5 q; b7 A PHP curl_exec() function:" P/ N6 q. L( r1 I% m% `
<?php
8 X4 ?7 @. Z! S1 N2 q2 Oif (isset($_POST['url']))4 O# a. I& |. V5 [, t
{
5 l6 @8 l, m4 y/ T( V3 T$link = $_POST['url'];
, _9 Y5 N9 i/ @0 y) h" H1 z$curlobj = curl_init();* Z; X4 l* g4 i3 G$ [9 F+ o
curl_setopt($curlobj, CURLOPT_POST, 0);
) S& c: m7 X9 Jcurl_setopt($curlobj,CURLOPT_URL,$link);
$ W/ q3 P" ~ f S( _2 E5 ucurl_setopt($curlobj, CURLOPT_RETURNTRANSFER, 1);& q p+ W5 d5 O. }9 w+ X- l( v
$result=curl_exec($curlobj);& I6 A7 w4 S6 l K5 H) t$ b& _
curl_close($curlobj);. L; [; [3 ], c4 u3 M$ Z
& V$ ~4 e( E$ M0 p( t$filename = ‘./curled/’.rand().’.txt’;
. w8 S; m: ^$ `! X! t+ i* C9 ?file_put_contents($filename, $result);
2 T% L/ j; o8 K U* O& R+ R- Cecho $result;
. Y# R+ W6 m8 W$ h r- E9 U}* {7 C1 b& h; v8 e2 {& f) O" [
?>
6 p7 H% ?$ B& m% \* ]复制代码. D+ k( K0 M. c+ k" D
这是另一种非常常见的实现,通过PHP使用curl获取数据。“卷曲”文件夹下的文件/数据下载并存储到磁盘,并附加一个随机数“。txt’结尾的文件扩展名。5 i) e1 O4 U: b0 o. E8 v' u
在本系列的下一部分,我们将看到一些可以启动的攻击使用此vulnerbility。XSPA允许攻击者在目标服务器基础设施,主要是内网的Web服务器,Web服务器本身,以及面向互联网的服务器以及。目前,我已经遇到以下五种不同的攻击方式,可以启动使用XSPA:2 w. d' _# k; A9 W+ k
1。端口扫描远程互联网服务器,内网设备和本地Web服务器本身。横幅敛也有可能在某些情况下,
+ l. e# G3 S1 x# k6 P" o- l2。开发弱势运行的程序在Intranet或本地Web服务器% x, l$ U6 y, H* F4 w9 l& |( s
3。攻击内部/外部Web应用程序很容易通过URL来获取参数的漏洞(SQLI,参数操作等)
; T3 {# u! y& N* u" _4 \$ ^$ B" z+ h4。指纹图谱的Intranet Web应用程序使用标准的应用程序的默认文件及行为" r+ O( |6 D, }- v
5。阅读使用file :/ / /协议处理程序的本地Web服务器上的文件。 |