许多Web应用程序提供的功能将数据从其他Web服务器,由于种种原因。下载XML提要,从远程服务器,Web应用程序可以使用用户指定的URL,获取图像,此功能可能会被滥用,使制作的查询使用易受攻击的Web应用程序作为代理运行在远程攻击其他服务的基于文本的文件等。 /本地服务器。通过这种滥用而产生的功能被命名为攻击,跨站点端口的攻击(XSPA)。
: z7 p9 p A! M% i Y1 IXSPA(SSPA)是什么?
, S# H9 F& I( ^( S' R4 T C, ~$ u如果应用程序处理用户提供的URL和不验证/消毒后端从远程服务器接收到响应,然后将其发送回客户端应用程序是容易受到跨站点端口的攻击。攻击者可以通过发送特制的查询到一个易受攻击的Web应用程序代理攻击,面临的外部Internet服务器,内网设备和Web服务器本身易受攻击的Web应用程序使用的广告功能。的反应,在某些情况下,可以进行研究,以确定服务的可用性(端口状态,横幅等),甚至在非传统的方式获取数据的远程服务。
J: d% s. Y8 N; z/ `! MPHP fsockopen() function:/ J8 G# U# Z2 i7 Q* W& D% ?
<?php% x5 R9 E8 h. i$ B/ d4 y& Z
function GetFile($host,$port,$link)# ?. b3 ?8 }% H8 `; e
{' C: V% n% a" L8 q# b/ D* z5 j
$fp = fsockopen($host, intval($port), $errno, $errstr, 30);
, Z4 ^0 k8 w) M# C6 S2 rif (!$fp) {
+ B) @; {: y; g* t5 techo “$errstr (error number $errno) \n”;
' q" b4 c* H% v7 w) z} else {
$ D- @" M' \5 g$out = “GET $link HTTP/1.1\r\n”;
/ Y$ p3 r5 x# O( Z! f$out .= “Host: $host\r\n”;
- x( o3 b. u \3 q( I8 {2 }$out .= “Connection: Close\r\n\r\n”;- B9 V( ~# [! k3 |% l; u+ e
$out .= “\r\n”;% X" Z& Z' i8 [9 i$ Z( `9 F4 d
fwrite($fp, $out);
) k! v" H( p, _1 ]4 J1 v2 H$contents=”;
) s0 s/ S; v- N% H) Rwhile (!feof($fp)) {
% @& C. h/ U2 T* d, K9 f4 e8 q. a2 X$contents.= fgets($fp, 1024);
9 R$ b6 |7 i. m- @! \}
& A3 s5 j4 `2 X" Ifclose($fp);5 B' J$ R U. P( S% G* Q
return $contents;
w+ {& _; k) d}9 i% t, [4 _( h4 m$ Y9 k
}
' j j( l6 O" l, ^& x?>
5 x; {1 _/ Y7 t/ O' O复制代码
, X& S/ B8 F5 @8 ]1 X8 r; v此实现获取数据,如由一个用户使用的fsockopen PHP函数(任何文件或HTML)请求。此功能建立一个TCP连接的套接字的服务器上,并进行原始数据传输。* D# g0 u- v( ]8 ^: d- n
PHP curl_exec() function:
! I- E4 R( X/ C% l<?php8 G, }0 d* X/ w# f+ m% [# f
if (isset($_POST['url']))
# M2 K: o( C; J{
) l7 |) p4 C% b$link = $_POST['url'];
1 P4 p6 X! f! y. q7 k, k& r$curlobj = curl_init();6 }% Q1 W$ p% F
curl_setopt($curlobj, CURLOPT_POST, 0);& |: f |& p7 \+ v0 g# w. M b1 ] I6 ]! F
curl_setopt($curlobj,CURLOPT_URL,$link);
0 p# l' m1 e' {8 v5 Xcurl_setopt($curlobj, CURLOPT_RETURNTRANSFER, 1);
' `' V) K+ q! g+ Y" j8 e$result=curl_exec($curlobj);9 v% o, s3 v% U8 G
curl_close($curlobj);+ e3 T" M$ h8 w9 Z* h& {
: C' g( M( q$ ^+ |9 f! i* y$filename = ‘./curled/’.rand().’.txt’;/ t" x* U! L9 L
file_put_contents($filename, $result);# _9 i7 T9 a% h: P% z4 T% D
echo $result;
7 O4 x9 _$ K- d: k7 R( `& _4 O1 F}( N+ o7 i& y$ R/ e
?>
9 j% ^* m: w/ r! r, ?. }/ ~复制代码% b( I! I9 {- M) R8 p
这是另一种非常常见的实现,通过PHP使用curl获取数据。“卷曲”文件夹下的文件/数据下载并存储到磁盘,并附加一个随机数“。txt’结尾的文件扩展名。
" G- q+ u) w, \* ]; V在本系列的下一部分,我们将看到一些可以启动的攻击使用此vulnerbility。XSPA允许攻击者在目标服务器基础设施,主要是内网的Web服务器,Web服务器本身,以及面向互联网的服务器以及。目前,我已经遇到以下五种不同的攻击方式,可以启动使用XSPA:! _% B/ [- W7 J5 G! j% g
1。端口扫描远程互联网服务器,内网设备和本地Web服务器本身。横幅敛也有可能在某些情况下,# p/ z! D7 H3 I
2。开发弱势运行的程序在Intranet或本地Web服务器
) e- k( x8 S$ t$ i3。攻击内部/外部Web应用程序很容易通过URL来获取参数的漏洞(SQLI,参数操作等)! B2 [) _$ R5 }3 N5 K0 U
4。指纹图谱的Intranet Web应用程序使用标准的应用程序的默认文件及行为
! A/ _8 N) U- c" S1 `5。阅读使用file :/ / /协议处理程序的本地Web服务器上的文件。 |