许多Web应用程序提供的功能将数据从其他Web服务器,由于种种原因。下载XML提要,从远程服务器,Web应用程序可以使用用户指定的URL,获取图像,此功能可能会被滥用,使制作的查询使用易受攻击的Web应用程序作为代理运行在远程攻击其他服务的基于文本的文件等。 /本地服务器。通过这种滥用而产生的功能被命名为攻击,跨站点端口的攻击(XSPA)。
* [7 ]8 n6 a! R2 ^; k0 \4 dXSPA(SSPA)是什么?
$ U7 M i4 R. |, n如果应用程序处理用户提供的URL和不验证/消毒后端从远程服务器接收到响应,然后将其发送回客户端应用程序是容易受到跨站点端口的攻击。攻击者可以通过发送特制的查询到一个易受攻击的Web应用程序代理攻击,面临的外部Internet服务器,内网设备和Web服务器本身易受攻击的Web应用程序使用的广告功能。的反应,在某些情况下,可以进行研究,以确定服务的可用性(端口状态,横幅等),甚至在非传统的方式获取数据的远程服务。4 U6 D6 c Q+ ~6 {& _ H+ L
PHP fsockopen() function:3 ^, L1 i* S3 S- S, I9 I
<?php
! Z" k5 c9 u# S" {! Jfunction GetFile($host,$port,$link)
) m& ]- T8 i# F$ U{: T5 f4 ^. _( Y# L3 \( L- p9 G6 p( v
$fp = fsockopen($host, intval($port), $errno, $errstr, 30);
' k! Y6 }. d3 Wif (!$fp) {
3 D; o, F% m0 c$ V4 S( l4 l( T, Eecho “$errstr (error number $errno) \n”;
' E9 \8 _9 p7 s} else {; j+ u' k; k3 c' D
$out = “GET $link HTTP/1.1\r\n”;
5 l. x/ |- s; r* @$out .= “Host: $host\r\n”;
) f9 Y( E8 l0 q6 ]; q$ t$out .= “Connection: Close\r\n\r\n”;
- w+ c6 S' _+ M! C) X$out .= “\r\n”;3 a* D6 R% k3 Q" N/ U/ J
fwrite($fp, $out);
" n; b" P0 Y* q5 o6 s5 d. A$contents=”;7 T& U9 ]5 B! \4 r
while (!feof($fp)) {/ _- A# ?, [1 j% T( g9 K* p
$contents.= fgets($fp, 1024);
- ^5 m8 N3 |5 C6 ^0 D} K; |- E6 C3 g; D. p* Z# [: m1 f
fclose($fp);7 T% w6 e% u1 |( i" m2 m" a
return $contents;: | t1 E2 O3 |" R4 F# Q7 d
}' v6 p) f1 j% r* g" G$ V4 b, n
}3 m- `8 b- h% T. ?7 D
?>
- A4 s7 Q, J6 G# t# V6 w7 G复制代码$ h! a( x) W1 y
此实现获取数据,如由一个用户使用的fsockopen PHP函数(任何文件或HTML)请求。此功能建立一个TCP连接的套接字的服务器上,并进行原始数据传输。
6 I/ @- t! H8 V7 _1 @ PHP curl_exec() function:
1 E' j7 n3 N0 O# G! ~3 N% V<?php6 Q3 J F$ k9 P5 x8 {
if (isset($_POST['url']))
2 x8 }# j! v. A. v{' M0 T( J: H: q- y4 f/ g; B' c3 [
$link = $_POST['url'];6 [2 |- W2 Z8 t* l
$curlobj = curl_init();+ B' X+ \2 @" k/ t* |5 K
curl_setopt($curlobj, CURLOPT_POST, 0);) b; ]$ p( F" o
curl_setopt($curlobj,CURLOPT_URL,$link);$ |! \* o' ^; R3 M. X* U
curl_setopt($curlobj, CURLOPT_RETURNTRANSFER, 1);
. x+ E: e* |' n; j8 h$result=curl_exec($curlobj);! {" b4 V* L; H/ u' t! S; y; ]
curl_close($curlobj);
0 @- j' a" S/ b4 Q
' U5 z8 q2 V3 I: z9 f$filename = ‘./curled/’.rand().’.txt’;
8 @5 G3 T2 ?# k$ Wfile_put_contents($filename, $result);
, _5 D9 T5 q% r2 e9 Iecho $result;5 ^( A; T8 S7 A
}2 V! l2 J) p% g5 b2 ~
?>9 P. V* {3 K, O2 Y; {
复制代码& `% R' o: \1 t6 R6 N( r( E- x
这是另一种非常常见的实现,通过PHP使用curl获取数据。“卷曲”文件夹下的文件/数据下载并存储到磁盘,并附加一个随机数“。txt’结尾的文件扩展名。# A1 I9 a7 J- Z& z* H7 d; A/ n
在本系列的下一部分,我们将看到一些可以启动的攻击使用此vulnerbility。XSPA允许攻击者在目标服务器基础设施,主要是内网的Web服务器,Web服务器本身,以及面向互联网的服务器以及。目前,我已经遇到以下五种不同的攻击方式,可以启动使用XSPA:7 K6 q+ {" g4 w# z1 {
1。端口扫描远程互联网服务器,内网设备和本地Web服务器本身。横幅敛也有可能在某些情况下,% F7 H; c, r( I) X
2。开发弱势运行的程序在Intranet或本地Web服务器- z1 A" v$ k: l0 u, ^
3。攻击内部/外部Web应用程序很容易通过URL来获取参数的漏洞(SQLI,参数操作等)' L$ ~/ l/ z+ \& n5 Y. f K
4。指纹图谱的Intranet Web应用程序使用标准的应用程序的默认文件及行为, q2 }1 q4 O8 u$ W% M5 H
5。阅读使用file :/ / /协议处理程序的本地Web服务器上的文件。 |