许多Web应用程序提供的功能将数据从其他Web服务器,由于种种原因。下载XML提要,从远程服务器,Web应用程序可以使用用户指定的URL,获取图像,此功能可能会被滥用,使制作的查询使用易受攻击的Web应用程序作为代理运行在远程攻击其他服务的基于文本的文件等。 /本地服务器。通过这种滥用而产生的功能被命名为攻击,跨站点端口的攻击(XSPA)。$ ^" S7 ?. V- c9 A1 F
XSPA(SSPA)是什么?. M1 a8 c7 A0 k
如果应用程序处理用户提供的URL和不验证/消毒后端从远程服务器接收到响应,然后将其发送回客户端应用程序是容易受到跨站点端口的攻击。攻击者可以通过发送特制的查询到一个易受攻击的Web应用程序代理攻击,面临的外部Internet服务器,内网设备和Web服务器本身易受攻击的Web应用程序使用的广告功能。的反应,在某些情况下,可以进行研究,以确定服务的可用性(端口状态,横幅等),甚至在非传统的方式获取数据的远程服务。8 S3 Y9 N1 O$ z
PHP fsockopen() function:: I/ O& G i: b% e. i! {
<?php
' Q% G# z& C+ }1 hfunction GetFile($host,$port,$link)6 l g6 {1 Z% m. P( c
{# t( d" B% L& z& y% ~
$fp = fsockopen($host, intval($port), $errno, $errstr, 30);
; N0 l; n2 k9 L9 I2 ]$ U0 d. hif (!$fp) {
9 ?) X( w( F; m( B! {5 w( f1 Aecho “$errstr (error number $errno) \n”;
7 J: w3 l4 b7 H- c* p5 T8 G7 y} else {5 v( [/ F0 {# F6 y) I
$out = “GET $link HTTP/1.1\r\n”;9 K7 Y1 [" G: w( [: H7 x
$out .= “Host: $host\r\n”;+ ~3 a# x, C5 \ I1 Q
$out .= “Connection: Close\r\n\r\n”;1 H3 q5 ^/ W& s: V. {7 A
$out .= “\r\n”;: R4 I' g2 @0 a. ]
fwrite($fp, $out);- c; Z& I) S$ \2 o4 s
$contents=”;
/ [" l! `" O* G( ?7 Swhile (!feof($fp)) {( n% \ x# E3 m" I; I6 o
$contents.= fgets($fp, 1024);: f3 z5 G# `$ h- r7 P( e
}) R$ t$ e- t8 Z
fclose($fp);- Y9 G; p0 b1 x h( j
return $contents;
, z$ V2 V2 G3 X0 i+ n2 D! t- r}
4 Z$ s1 ]6 S; l# i2 ~}
8 h4 L- k* |% n% D2 }?>/ [/ ? K: j. z) \% a
复制代码
6 p! Q: Y% X2 E! b w( ^5 ]此实现获取数据,如由一个用户使用的fsockopen PHP函数(任何文件或HTML)请求。此功能建立一个TCP连接的套接字的服务器上,并进行原始数据传输。
9 v5 u. j8 g3 t0 J8 h PHP curl_exec() function:9 u$ _) {5 Z, N# p/ r
<?php7 a6 ~: n- C w
if (isset($_POST['url']))
: ^" ?. f9 m' p+ R& V8 P9 K9 {{, P P& [: ]9 t7 x5 G0 K- ]/ a! I. w
$link = $_POST['url'];
/ E8 a; T4 L' L1 E0 _$curlobj = curl_init();& M8 t0 r3 o- V" l7 I7 N
curl_setopt($curlobj, CURLOPT_POST, 0); c3 l7 k W: k
curl_setopt($curlobj,CURLOPT_URL,$link);! y- D) A' f# W! W- \% y
curl_setopt($curlobj, CURLOPT_RETURNTRANSFER, 1);
r( l- n$ h2 |2 e: g9 a$result=curl_exec($curlobj);
( l2 W3 q; X' D: k+ I% f: Xcurl_close($curlobj);
- Z9 a+ L( g6 L
6 B" A. Q( S8 j$filename = ‘./curled/’.rand().’.txt’;7 z7 _1 K; o `5 o* Q& I9 T
file_put_contents($filename, $result);# T' D) i+ P6 l/ B, `+ i0 {
echo $result;# ^, S" o. d- `$ _# [' v
}
* e- J v( H5 q2 C, F: U. B. [?>9 X( W! f! K+ ]% d1 A f
复制代码. @# Q- T9 y4 s$ ]
这是另一种非常常见的实现,通过PHP使用curl获取数据。“卷曲”文件夹下的文件/数据下载并存储到磁盘,并附加一个随机数“。txt’结尾的文件扩展名。
7 m) Q/ }2 p3 h/ X; F9 v% I5 C在本系列的下一部分,我们将看到一些可以启动的攻击使用此vulnerbility。XSPA允许攻击者在目标服务器基础设施,主要是内网的Web服务器,Web服务器本身,以及面向互联网的服务器以及。目前,我已经遇到以下五种不同的攻击方式,可以启动使用XSPA:" W3 p6 T+ ]5 c
1。端口扫描远程互联网服务器,内网设备和本地Web服务器本身。横幅敛也有可能在某些情况下,' z, r8 \. ] ~2 S) {/ m, v4 L/ O
2。开发弱势运行的程序在Intranet或本地Web服务器
6 u9 F+ `: H8 v9 Y- e' Q3。攻击内部/外部Web应用程序很容易通过URL来获取参数的漏洞(SQLI,参数操作等)+ f$ P: g, F6 h4 q7 Z
4。指纹图谱的Intranet Web应用程序使用标准的应用程序的默认文件及行为- _$ ] E6 M) X7 B8 _5 b# o
5。阅读使用file :/ / /协议处理程序的本地Web服务器上的文件。 |