许多Web应用程序提供的功能将数据从其他Web服务器,由于种种原因。下载XML提要,从远程服务器,Web应用程序可以使用用户指定的URL,获取图像,此功能可能会被滥用,使制作的查询使用易受攻击的Web应用程序作为代理运行在远程攻击其他服务的基于文本的文件等。 /本地服务器。通过这种滥用而产生的功能被命名为攻击,跨站点端口的攻击(XSPA)。
; ?, l/ a* u1 O9 m2 cXSPA(SSPA)是什么?# @: S' N) m* p; Q% c
如果应用程序处理用户提供的URL和不验证/消毒后端从远程服务器接收到响应,然后将其发送回客户端应用程序是容易受到跨站点端口的攻击。攻击者可以通过发送特制的查询到一个易受攻击的Web应用程序代理攻击,面临的外部Internet服务器,内网设备和Web服务器本身易受攻击的Web应用程序使用的广告功能。的反应,在某些情况下,可以进行研究,以确定服务的可用性(端口状态,横幅等),甚至在非传统的方式获取数据的远程服务。% l4 }; R; A1 s" h+ p" ^
PHP fsockopen() function:
0 N0 J7 D8 A! \9 C c* O<?php
2 S' U; W" V" jfunction GetFile($host,$port,$link)
/ k( {- O( w4 n# _# h( K1 U2 r. e, _{, B" }/ N" s2 v$ `) R
$fp = fsockopen($host, intval($port), $errno, $errstr, 30);
; C4 h3 M P V( l6 z6 ^4 Y5 pif (!$fp) { ! }, U: C+ ^4 W7 E; W" c
echo “$errstr (error number $errno) \n”;
+ h) k! K ^9 Y8 E* m' h/ F# E} else {
4 R# \+ p" X9 D' h$out = “GET $link HTTP/1.1\r\n”;
* A' J, G L2 l; m& l$out .= “Host: $host\r\n”; ? I9 P+ u7 M0 M9 O
$out .= “Connection: Close\r\n\r\n”;
' \' V' \4 a' j- \0 q9 _$out .= “\r\n”;
. Y8 E2 F0 d. cfwrite($fp, $out);
% u! e7 w6 v0 I( T q7 Y) g$contents=”;
4 a" h( t) R! K9 D0 `+ ~6 |while (!feof($fp)) {
# f' _0 s( F4 i }$contents.= fgets($fp, 1024);- o: \' w+ D! q0 z
}' S. E. K7 ~1 c* U
fclose($fp);
: @. N, l& Z. ?2 Kreturn $contents;
! X K& D+ {/ U7 W2 ?}$ f. h! ?! w) v. `7 x
}7 k; N: ]/ [1 M7 w1 R3 E' J2 ]1 q& g
?>
/ ^ [4 r9 l) L* c7 v复制代码 d, o W: F4 M) d! j
此实现获取数据,如由一个用户使用的fsockopen PHP函数(任何文件或HTML)请求。此功能建立一个TCP连接的套接字的服务器上,并进行原始数据传输。
$ s5 i* M$ H; j# V PHP curl_exec() function:
5 j( B' S5 j" G; i6 k' ]7 u<?php) O, n: ^& M& q. V) P
if (isset($_POST['url']))$ W' D* O- R, a1 F9 M
{
% s$ F6 ~4 q4 F6 V$link = $_POST['url'];
$ z( ~9 v1 Y6 z& }$curlobj = curl_init();
* `5 a; m' q) X) F( Zcurl_setopt($curlobj, CURLOPT_POST, 0);; G# B. N' C7 D7 o1 [
curl_setopt($curlobj,CURLOPT_URL,$link);
7 v$ B. t% A1 o, ecurl_setopt($curlobj, CURLOPT_RETURNTRANSFER, 1);
) S/ n9 Z! d M$result=curl_exec($curlobj);* ~4 `$ o$ C2 H0 z, O! ~7 k
curl_close($curlobj);
* `. w! i2 l. O ) S1 b6 A# u0 r
$filename = ‘./curled/’.rand().’.txt’;
7 [/ j6 A9 \* x: ] R4 r [file_put_contents($filename, $result);
5 g) k/ r9 S: X3 k/ ]echo $result;
+ O- X) C4 n+ b( G8 c, f- f}* h+ q3 i: {2 i* Q& x, W
?>3 x2 [# ~" \0 I
复制代码- v' C; ~8 e3 O. P: K) t
这是另一种非常常见的实现,通过PHP使用curl获取数据。“卷曲”文件夹下的文件/数据下载并存储到磁盘,并附加一个随机数“。txt’结尾的文件扩展名。! _# B# f5 k# ?: [' J
在本系列的下一部分,我们将看到一些可以启动的攻击使用此vulnerbility。XSPA允许攻击者在目标服务器基础设施,主要是内网的Web服务器,Web服务器本身,以及面向互联网的服务器以及。目前,我已经遇到以下五种不同的攻击方式,可以启动使用XSPA:
: A) M, A8 h% b) K( N' A. a1。端口扫描远程互联网服务器,内网设备和本地Web服务器本身。横幅敛也有可能在某些情况下,7 B5 |' o3 p( U4 Q' _; ~
2。开发弱势运行的程序在Intranet或本地Web服务器3 f3 `( |* ^9 k
3。攻击内部/外部Web应用程序很容易通过URL来获取参数的漏洞(SQLI,参数操作等)
9 a6 I% G3 q- v$ g( Z% e) Z- J4。指纹图谱的Intranet Web应用程序使用标准的应用程序的默认文件及行为' P: W; h* Y! L6 m7 J& a- H' v: U
5。阅读使用file :/ / /协议处理程序的本地Web服务器上的文件。 |