许多Web应用程序提供的功能将数据从其他Web服务器,由于种种原因。下载XML提要,从远程服务器,Web应用程序可以使用用户指定的URL,获取图像,此功能可能会被滥用,使制作的查询使用易受攻击的Web应用程序作为代理运行在远程攻击其他服务的基于文本的文件等。 /本地服务器。通过这种滥用而产生的功能被命名为攻击,跨站点端口的攻击(XSPA)。( ^& n& d; Z+ d+ ^8 N/ V# Y
XSPA(SSPA)是什么?
) A: R! j" L. f4 P如果应用程序处理用户提供的URL和不验证/消毒后端从远程服务器接收到响应,然后将其发送回客户端应用程序是容易受到跨站点端口的攻击。攻击者可以通过发送特制的查询到一个易受攻击的Web应用程序代理攻击,面临的外部Internet服务器,内网设备和Web服务器本身易受攻击的Web应用程序使用的广告功能。的反应,在某些情况下,可以进行研究,以确定服务的可用性(端口状态,横幅等),甚至在非传统的方式获取数据的远程服务。
; I/ j; U3 S" b: [0 H5 ePHP fsockopen() function:
: I4 i" c4 j" ~# t/ s: f! F<?php
8 `5 N @$ t0 I6 M0 k2 _% W1 Ofunction GetFile($host,$port,$link)/ Y* h& E" E# p9 \
{
8 D8 Q- O2 h y) J! U$fp = fsockopen($host, intval($port), $errno, $errstr, 30);
. {' A) k! z! y s- q6 G3 Y) H; c7 Uif (!$fp) { % W: S# y0 ~- d% z' Q
echo “$errstr (error number $errno) \n”;3 u) u+ x% m" d
} else {. d0 p/ v: L6 o1 y# U3 T
$out = “GET $link HTTP/1.1\r\n”;
- N4 E! {/ j, b& ]$out .= “Host: $host\r\n”;
# b6 t& V# k* {, e4 Q+ t$out .= “Connection: Close\r\n\r\n”;- h# h/ T/ C) G) k
$out .= “\r\n”;5 Q! e6 c' F. E% N" w; ~+ L
fwrite($fp, $out);
! U, w4 \0 C6 p F u* _) _$contents=”;
& H% E! p2 i. Fwhile (!feof($fp)) {
! |+ K/ D% c* |% A, V' J6 L: u$contents.= fgets($fp, 1024);
; A O* m b" @7 D- E0 X}
- ^5 E; m& }: e6 Ufclose($fp);# l: {) M0 G7 n! J- {8 R
return $contents;' o! T# @# J: J3 [3 v2 c
}, b4 r: o x" A4 N6 Y
}& D8 U, l( e1 E
?>
- p9 ~+ h2 u4 d2 ^2 ~* i7 q( `复制代码
H& L$ z+ K8 X2 \! X1 |0 L此实现获取数据,如由一个用户使用的fsockopen PHP函数(任何文件或HTML)请求。此功能建立一个TCP连接的套接字的服务器上,并进行原始数据传输。
" O9 D/ J& W* N+ Z" i PHP curl_exec() function:
4 O4 A! |; O3 `# C8 Y/ f<?php! ^8 A* F1 N& N- i! H
if (isset($_POST['url']))
. H- { a4 p" m+ s: I* ]{
' P! B V) T1 O( d4 `, r; y$link = $_POST['url'];, x8 F- ?7 p0 O
$curlobj = curl_init();
) T% m& [9 O9 x/ y4 mcurl_setopt($curlobj, CURLOPT_POST, 0);
2 S) F& [4 [7 {3 t8 [curl_setopt($curlobj,CURLOPT_URL,$link);4 `; Y: e" [4 _9 y( S# i9 ]0 b
curl_setopt($curlobj, CURLOPT_RETURNTRANSFER, 1);
" x. S' K- U5 x% r$result=curl_exec($curlobj);% H! O* T# ^) h- W4 y
curl_close($curlobj);
$ x& F, E( p5 K0 m; F
% \( V9 t" U9 M; A) E/ Z- |$filename = ‘./curled/’.rand().’.txt’;
( r; f" i0 M) f& G0 `0 t( e* Zfile_put_contents($filename, $result);9 p1 t; o& f( I8 z6 m2 M" f
echo $result;
0 p3 r" x0 G0 P1 W}
o0 Y' R3 e# f+ o?>. t2 A2 ] A0 V- c4 L9 v2 w! R4 F
复制代码
7 W, G- B" U) C! [- ~4 o0 ~( K这是另一种非常常见的实现,通过PHP使用curl获取数据。“卷曲”文件夹下的文件/数据下载并存储到磁盘,并附加一个随机数“。txt’结尾的文件扩展名。7 F9 n4 _, \$ [$ B) T. Q
在本系列的下一部分,我们将看到一些可以启动的攻击使用此vulnerbility。XSPA允许攻击者在目标服务器基础设施,主要是内网的Web服务器,Web服务器本身,以及面向互联网的服务器以及。目前,我已经遇到以下五种不同的攻击方式,可以启动使用XSPA:2 m1 C0 k0 C6 c' q* ?/ T% m
1。端口扫描远程互联网服务器,内网设备和本地Web服务器本身。横幅敛也有可能在某些情况下,$ d1 c- \; T: W( @
2。开发弱势运行的程序在Intranet或本地Web服务器+ _1 A- |0 u3 H6 b
3。攻击内部/外部Web应用程序很容易通过URL来获取参数的漏洞(SQLI,参数操作等)
# ~+ {. \0 w+ Q4。指纹图谱的Intranet Web应用程序使用标准的应用程序的默认文件及行为. d3 X+ }7 j% b2 o: z9 i
5。阅读使用file :/ / /协议处理程序的本地Web服务器上的文件。 |