许多Web应用程序提供的功能将数据从其他Web服务器,由于种种原因。下载XML提要,从远程服务器,Web应用程序可以使用用户指定的URL,获取图像,此功能可能会被滥用,使制作的查询使用易受攻击的Web应用程序作为代理运行在远程攻击其他服务的基于文本的文件等。 /本地服务器。通过这种滥用而产生的功能被命名为攻击,跨站点端口的攻击(XSPA)。 e* M: k" O8 C
XSPA(SSPA)是什么?
% h' X! [, `* Q5 }8 G+ X3 m0 a9 O如果应用程序处理用户提供的URL和不验证/消毒后端从远程服务器接收到响应,然后将其发送回客户端应用程序是容易受到跨站点端口的攻击。攻击者可以通过发送特制的查询到一个易受攻击的Web应用程序代理攻击,面临的外部Internet服务器,内网设备和Web服务器本身易受攻击的Web应用程序使用的广告功能。的反应,在某些情况下,可以进行研究,以确定服务的可用性(端口状态,横幅等),甚至在非传统的方式获取数据的远程服务。- x8 S6 d7 S) j7 F! ]6 k5 t( q) b
PHP fsockopen() function:2 D, Y& U) b5 v# _0 G2 l5 B$ r
<?php/ ^' x$ D5 c+ {3 `4 N9 L/ J
function GetFile($host,$port,$link)
: P" o# \3 h$ N. {, B% B/ {{
5 N% \8 \+ V, b( D) Z! C$fp = fsockopen($host, intval($port), $errno, $errstr, 30);
% q! m* T" l% T- ]2 o6 e5 `if (!$fp) { % I% P1 U" t/ r# m0 R! j
echo “$errstr (error number $errno) \n”;
4 ]8 c) J8 [' i} else {
5 v0 l& M/ K/ {& J# V; Y$out = “GET $link HTTP/1.1\r\n”;
3 t/ g4 k6 }$ R2 M! W$out .= “Host: $host\r\n”;
8 s$ S- s+ g) ?2 `; h$out .= “Connection: Close\r\n\r\n”;8 N& y [' N+ @$ K8 ^
$out .= “\r\n”;- X) D1 b) V& N9 {, A; a
fwrite($fp, $out);. i6 ]2 N7 P; r9 m6 A% x8 q
$contents=”;" k" i; k2 A5 a
while (!feof($fp)) {
2 K' N; q# X0 v; _! N3 ^3 O$contents.= fgets($fp, 1024);* J. j. z/ @! g* W( ~2 h6 v9 x9 a
} a" l8 w$ v3 D# t) l9 B7 H
fclose($fp);
1 i7 m& x1 B* z+ U1 W* E$ ^return $contents; x! L) k, v* l7 S
}
3 X- D; l) K, J}
( y# A. v, N7 y& f% [( G1 K?>! d" r" H( `1 f, _0 _( x6 n* F4 A
复制代码, y* C7 W1 K2 Q
此实现获取数据,如由一个用户使用的fsockopen PHP函数(任何文件或HTML)请求。此功能建立一个TCP连接的套接字的服务器上,并进行原始数据传输。- A; S6 y7 |% H, C+ P5 t
PHP curl_exec() function:4 d0 T, z. N) j; j( X" q2 @
<?php* G! I3 V" {; N* D
if (isset($_POST['url']))( J, A, l* m" }0 c8 P
{
, x9 c, f& L3 V8 y2 C$link = $_POST['url'];; }5 F) T# A O# e8 C% O; D4 H2 |; R
$curlobj = curl_init();
/ F( r* F( g9 I) b6 Wcurl_setopt($curlobj, CURLOPT_POST, 0);
' f& _8 ?2 e# a1 i# [curl_setopt($curlobj,CURLOPT_URL,$link);
4 e( ^4 D; B4 Q/ u- @# g+ Icurl_setopt($curlobj, CURLOPT_RETURNTRANSFER, 1);: ~% v( ~# w0 L1 [( H/ }, X# o1 M
$result=curl_exec($curlobj);: P/ M6 p- }- A0 \: ^0 I" b& p
curl_close($curlobj);
5 a" z. K1 P: c4 ]" Z
' \( h0 n1 @+ O9 q7 B$filename = ‘./curled/’.rand().’.txt’;
7 }* z! O% C+ Y+ I) j& X# Zfile_put_contents($filename, $result);9 D) @3 C- ?0 f6 Y0 P% j9 S
echo $result;
) n: b# y* K# B7 {! W V}
* t- R+ ], w, a/ Y?>% x( }1 { @8 a3 v2 B& [
复制代码& b% Y5 O; H( O3 l
这是另一种非常常见的实现,通过PHP使用curl获取数据。“卷曲”文件夹下的文件/数据下载并存储到磁盘,并附加一个随机数“。txt’结尾的文件扩展名。
' W5 w% Y/ \8 o0 S5 ~: f在本系列的下一部分,我们将看到一些可以启动的攻击使用此vulnerbility。XSPA允许攻击者在目标服务器基础设施,主要是内网的Web服务器,Web服务器本身,以及面向互联网的服务器以及。目前,我已经遇到以下五种不同的攻击方式,可以启动使用XSPA:' I) D/ t6 U- P- @' z
1。端口扫描远程互联网服务器,内网设备和本地Web服务器本身。横幅敛也有可能在某些情况下,' ~% @: A6 F1 t$ A6 v
2。开发弱势运行的程序在Intranet或本地Web服务器! s3 }4 Y" x! @, S5 R: t0 t
3。攻击内部/外部Web应用程序很容易通过URL来获取参数的漏洞(SQLI,参数操作等)" j5 [. ~: I- J% [
4。指纹图谱的Intranet Web应用程序使用标准的应用程序的默认文件及行为$ c! e* b% k0 c' I8 G- i+ I
5。阅读使用file :/ / /协议处理程序的本地Web服务器上的文件。 |