许多Web应用程序提供的功能将数据从其他Web服务器,由于种种原因。下载XML提要,从远程服务器,Web应用程序可以使用用户指定的URL,获取图像,此功能可能会被滥用,使制作的查询使用易受攻击的Web应用程序作为代理运行在远程攻击其他服务的基于文本的文件等。 /本地服务器。通过这种滥用而产生的功能被命名为攻击,跨站点端口的攻击(XSPA)。
0 g; z1 N z3 J% J. d; sXSPA(SSPA)是什么?; K6 U/ x- z7 I3 O- U
如果应用程序处理用户提供的URL和不验证/消毒后端从远程服务器接收到响应,然后将其发送回客户端应用程序是容易受到跨站点端口的攻击。攻击者可以通过发送特制的查询到一个易受攻击的Web应用程序代理攻击,面临的外部Internet服务器,内网设备和Web服务器本身易受攻击的Web应用程序使用的广告功能。的反应,在某些情况下,可以进行研究,以确定服务的可用性(端口状态,横幅等),甚至在非传统的方式获取数据的远程服务。4 C1 p! E$ J2 d r& [
PHP fsockopen() function:9 Q i: D9 `3 H! E I' b" z! r S
<?php
& Q4 T/ ?$ x3 n4 _5 z2 F4 { Bfunction GetFile($host,$port,$link)
/ E+ O2 ^ } m, x. G{& N' w d' Y6 n, q2 f& O+ Z' ?. F
$fp = fsockopen($host, intval($port), $errno, $errstr, 30);" G A+ h) j( i, G. {2 u& r/ a. ?
if (!$fp) { " [( w1 H: T: y2 U$ I% F5 B# D
echo “$errstr (error number $errno) \n”;) c+ U7 x0 c; K+ E! a, Z1 ]
} else {6 b( A9 L9 R X
$out = “GET $link HTTP/1.1\r\n”;# s6 D a# H$ e, u5 r( C
$out .= “Host: $host\r\n”;
: w3 A# s6 M+ b+ Z$out .= “Connection: Close\r\n\r\n”;
3 x" f1 T. G4 g5 Y9 j S. E5 W$out .= “\r\n”;
5 D2 P) t: ~, lfwrite($fp, $out);; X4 J& k) c- Q2 J- I F
$contents=”;9 E6 y+ o G. M8 C$ e6 x
while (!feof($fp)) {& o6 P0 Z/ S0 _/ j) h0 r( N
$contents.= fgets($fp, 1024);
/ I/ h5 t/ R" h7 \}
1 X2 J8 ?6 o5 Nfclose($fp);* z8 B+ ]2 P5 [# x2 q
return $contents;
5 O2 j& R6 l1 @3 Y5 E6 d+ t}% j4 G2 e: ~; K2 X4 b% D: N
} F' U" U$ n+ C$ v& Z
?>, D3 J, c" \* k) H& ]4 Y$ G' T
复制代码
5 G6 K4 D7 S4 w, t( H) {此实现获取数据,如由一个用户使用的fsockopen PHP函数(任何文件或HTML)请求。此功能建立一个TCP连接的套接字的服务器上,并进行原始数据传输。: {8 w2 @! [, V$ ~
PHP curl_exec() function:. H' i% x- N7 h1 v( Y1 m
<?php1 M. F l/ K$ D& m# J
if (isset($_POST['url']))
8 Y+ x7 F" g6 O# j& ~# e{
# W1 D) x. h b1 Y: F$link = $_POST['url'];
' q% L: h+ |" O5 |& N/ I7 S$curlobj = curl_init();2 k- ^( ?: W9 K; O1 ~
curl_setopt($curlobj, CURLOPT_POST, 0);
7 x8 D0 ?9 w2 U0 ncurl_setopt($curlobj,CURLOPT_URL,$link);
' L0 z, Z/ P% c' \/ G- u8 qcurl_setopt($curlobj, CURLOPT_RETURNTRANSFER, 1);
0 E% w% C4 W7 x# u- Z8 s% B$result=curl_exec($curlobj);
/ N: r. e3 V9 }& h7 pcurl_close($curlobj);" C1 x. R. y; ~5 X2 s$ o3 U
( z+ O6 u( G3 j; N2 P+ E
$filename = ‘./curled/’.rand().’.txt’;
! k; h! `( A( J' |% O/ u r. Nfile_put_contents($filename, $result);: h5 b4 e5 e9 `" B0 m% q
echo $result;
; S: r* P* G( u @1 u}6 X7 q/ V. F% X! g: Z/ H$ b
?>
& x1 I. U/ N2 i8 j1 w9 Q F: U复制代码6 o" r1 b$ k9 n# U
这是另一种非常常见的实现,通过PHP使用curl获取数据。“卷曲”文件夹下的文件/数据下载并存储到磁盘,并附加一个随机数“。txt’结尾的文件扩展名。
4 Z* }) M' L! G" v7 U在本系列的下一部分,我们将看到一些可以启动的攻击使用此vulnerbility。XSPA允许攻击者在目标服务器基础设施,主要是内网的Web服务器,Web服务器本身,以及面向互联网的服务器以及。目前,我已经遇到以下五种不同的攻击方式,可以启动使用XSPA:
2 b% U& `0 @- h+ A/ z1。端口扫描远程互联网服务器,内网设备和本地Web服务器本身。横幅敛也有可能在某些情况下,) d! q, R/ c5 z4 A8 z- ]
2。开发弱势运行的程序在Intranet或本地Web服务器* M# E" l/ _ t9 g% n3 y. U
3。攻击内部/外部Web应用程序很容易通过URL来获取参数的漏洞(SQLI,参数操作等)
# J0 R! K R6 H8 H4 e4。指纹图谱的Intranet Web应用程序使用标准的应用程序的默认文件及行为
! A) S/ e0 c5 p; D8 h, J5。阅读使用file :/ / /协议处理程序的本地Web服务器上的文件。 |