许多Web应用程序提供的功能将数据从其他Web服务器,由于种种原因。下载XML提要,从远程服务器,Web应用程序可以使用用户指定的URL,获取图像,此功能可能会被滥用,使制作的查询使用易受攻击的Web应用程序作为代理运行在远程攻击其他服务的基于文本的文件等。 /本地服务器。通过这种滥用而产生的功能被命名为攻击,跨站点端口的攻击(XSPA)。
! F- m9 f6 [( W# pXSPA(SSPA)是什么?( s' a$ j2 m+ a- ~
如果应用程序处理用户提供的URL和不验证/消毒后端从远程服务器接收到响应,然后将其发送回客户端应用程序是容易受到跨站点端口的攻击。攻击者可以通过发送特制的查询到一个易受攻击的Web应用程序代理攻击,面临的外部Internet服务器,内网设备和Web服务器本身易受攻击的Web应用程序使用的广告功能。的反应,在某些情况下,可以进行研究,以确定服务的可用性(端口状态,横幅等),甚至在非传统的方式获取数据的远程服务。' x2 q: N- ?* [! G! G
PHP fsockopen() function:. F7 ^$ ?3 _: k. u# l0 S
<?php
* Y0 K* ^+ ?" k, n3 \3 d5 P% Nfunction GetFile($host,$port,$link) T5 t" \- P$ ]9 `+ Z0 z
{
% S- Q8 k, P1 C1 H& L* N9 H$fp = fsockopen($host, intval($port), $errno, $errstr, 30);
0 {6 m% b" o% U& Iif (!$fp) { & ~& }7 |/ \% m/ o
echo “$errstr (error number $errno) \n”;
( g- X u. Y' _4 a2 p- m1 J% s} else {- I! d$ A6 s, H# ^6 l% G1 m
$out = “GET $link HTTP/1.1\r\n”;0 i) G/ ]/ w* y1 ?& ~8 X
$out .= “Host: $host\r\n”;
4 z) F; O2 |5 x7 \, @7 o, o$out .= “Connection: Close\r\n\r\n”;5 E+ ?; B) Z: _. _, i- m5 V
$out .= “\r\n”;
! C, q) J5 w$ B9 T- hfwrite($fp, $out);0 M# u7 D# B4 b: X1 F3 z u5 H3 s
$contents=”;6 H+ ~8 J) l/ \
while (!feof($fp)) {, n, H- |/ P3 e4 {8 i8 Y6 o* o1 E: o' j# v
$contents.= fgets($fp, 1024);1 y- t+ K K: R0 R' n; w0 l
}
* k& k/ H" O% ufclose($fp);
3 y& r# m4 T( c, n1 e6 U! ?8 w' h2 Vreturn $contents;
# o' O6 W5 a4 o. }, o8 N}8 T9 R6 o% P# G" \1 ^! c6 C5 {9 o
}3 E8 N' J# }+ j% k/ Y3 ~* `9 U
?>
* V8 w6 y. W8 A% [复制代码' @# l# x% d3 J% ~
此实现获取数据,如由一个用户使用的fsockopen PHP函数(任何文件或HTML)请求。此功能建立一个TCP连接的套接字的服务器上,并进行原始数据传输。
' j8 I0 m. i% _$ \4 L- ~" V PHP curl_exec() function:
0 N0 T" p# f+ ]) a<?php" P! Z( Y9 ?* z/ T
if (isset($_POST['url'])) R3 f& x7 ]# z" N) V" ]
{
5 r9 C& t# I4 p; S6 s. P: j$link = $_POST['url'];1 l( W/ k, J2 W. n+ g! g
$curlobj = curl_init();. s" P2 m+ d! S5 U% G
curl_setopt($curlobj, CURLOPT_POST, 0);
. ? F4 v6 r4 y7 H( n0 y/ e2 gcurl_setopt($curlobj,CURLOPT_URL,$link);
4 b8 U: T; R; ^: c8 J. R" hcurl_setopt($curlobj, CURLOPT_RETURNTRANSFER, 1);; y) n7 W8 v7 O2 R
$result=curl_exec($curlobj);, l0 v+ h; w4 l& A+ S3 A! s
curl_close($curlobj);
0 ]; b* P/ V9 S 4 h- \! @) T& L) h! e9 }
$filename = ‘./curled/’.rand().’.txt’;
% {8 w7 V2 P$ R1 j; ?& Z: S; q( |file_put_contents($filename, $result);* }+ |5 u# a! f0 g
echo $result;
2 y1 L9 ^$ S1 q6 i8 s5 x; G}9 |- l# ~) t0 R6 M
?>
$ i0 Z# R: F. f复制代码
6 I4 Y$ h5 W- z/ k4 N这是另一种非常常见的实现,通过PHP使用curl获取数据。“卷曲”文件夹下的文件/数据下载并存储到磁盘,并附加一个随机数“。txt’结尾的文件扩展名。$ h0 _: ?# {1 w* d# \1 N
在本系列的下一部分,我们将看到一些可以启动的攻击使用此vulnerbility。XSPA允许攻击者在目标服务器基础设施,主要是内网的Web服务器,Web服务器本身,以及面向互联网的服务器以及。目前,我已经遇到以下五种不同的攻击方式,可以启动使用XSPA:2 P' c# l% d' Z- z) [
1。端口扫描远程互联网服务器,内网设备和本地Web服务器本身。横幅敛也有可能在某些情况下,* ^) _" P1 l; g& X( w- M5 z
2。开发弱势运行的程序在Intranet或本地Web服务器$ ]/ `$ |4 c. P3 E
3。攻击内部/外部Web应用程序很容易通过URL来获取参数的漏洞(SQLI,参数操作等), ]8 x4 c* j3 Z" s# W, H* \
4。指纹图谱的Intranet Web应用程序使用标准的应用程序的默认文件及行为1 I; S* O# s a0 ~6 ]1 z: [
5。阅读使用file :/ / /协议处理程序的本地Web服务器上的文件。 |