许多Web应用程序提供的功能将数据从其他Web服务器,由于种种原因。下载XML提要,从远程服务器,Web应用程序可以使用用户指定的URL,获取图像,此功能可能会被滥用,使制作的查询使用易受攻击的Web应用程序作为代理运行在远程攻击其他服务的基于文本的文件等。 /本地服务器。通过这种滥用而产生的功能被命名为攻击,跨站点端口的攻击(XSPA)。) k3 E! F! a8 [/ x+ E* I0 X
XSPA(SSPA)是什么?
+ k- `5 |; S. b/ `如果应用程序处理用户提供的URL和不验证/消毒后端从远程服务器接收到响应,然后将其发送回客户端应用程序是容易受到跨站点端口的攻击。攻击者可以通过发送特制的查询到一个易受攻击的Web应用程序代理攻击,面临的外部Internet服务器,内网设备和Web服务器本身易受攻击的Web应用程序使用的广告功能。的反应,在某些情况下,可以进行研究,以确定服务的可用性(端口状态,横幅等),甚至在非传统的方式获取数据的远程服务。. l' ~$ i) I: x* E. i; {
PHP fsockopen() function:* T" _6 d* i( {* v1 D9 |* m
<?php/ v9 Q- t& v1 _
function GetFile($host,$port,$link)0 ?: z; @- _4 i/ h# c
{
) S) r# Z" Y- ~ \$fp = fsockopen($host, intval($port), $errno, $errstr, 30);
& X3 {+ c: Z1 J% dif (!$fp) {
: J# e& t6 M/ W6 Xecho “$errstr (error number $errno) \n”;
, ^3 b( Y" C6 Z- V} else {
/ f' ^6 P7 p# x6 L( F1 t4 K$out = “GET $link HTTP/1.1\r\n”;2 E6 j0 ^$ m" {$ j2 S; y# E
$out .= “Host: $host\r\n”;
( _3 \ {# R: Y$out .= “Connection: Close\r\n\r\n”;
8 S; T7 w; k" n; `9 C$out .= “\r\n”;
" {. V, m8 F# ^2 vfwrite($fp, $out);) z7 `; `5 t6 L4 T" [# F
$contents=”;
3 b4 [ H Q" T( R6 _/ a. Jwhile (!feof($fp)) {
! ]% F5 l) G' f c7 N3 Y$contents.= fgets($fp, 1024);
; B; R1 \2 R/ W. k( G}5 d7 a6 |9 r" y: P+ E3 L6 d! E
fclose($fp);6 E! r1 Y0 |- v) ?9 D8 \' C
return $contents;; y& O& ?& N4 U$ p
}
& G& [4 j) \- Q9 I6 B}& t, @4 y7 @% p, m" i8 l7 [$ `
?>5 D$ ?2 y3 G2 F) c. `# Y& x5 x
复制代码
! G: c; Q, ^$ ?& \此实现获取数据,如由一个用户使用的fsockopen PHP函数(任何文件或HTML)请求。此功能建立一个TCP连接的套接字的服务器上,并进行原始数据传输。. Y( S" B& B$ F3 }, q1 B6 A
PHP curl_exec() function:1 E1 A, _/ Y0 {/ B, o9 z; L
<?php
K: a+ E5 w5 [" U3 O1 wif (isset($_POST['url']))
3 N% L% b& Q7 K6 Z% e g6 Y{
( h; r. o4 W. ~# ]$link = $_POST['url'];
+ o3 U- T- s1 D$ T& c* l* r$curlobj = curl_init();
( k6 K+ |( H+ S" Ucurl_setopt($curlobj, CURLOPT_POST, 0);
; {5 H* u0 u3 _+ Jcurl_setopt($curlobj,CURLOPT_URL,$link);
( o- u$ J: d! w$ D* k4 a2 ycurl_setopt($curlobj, CURLOPT_RETURNTRANSFER, 1);
# _2 T( P) S5 @0 g& D1 }$result=curl_exec($curlobj);
- P8 _6 A5 O5 bcurl_close($curlobj);; K9 K* G) B' [/ D0 {) t
, J8 r/ \+ n y, K: m$filename = ‘./curled/’.rand().’.txt’;
0 k' M. W9 [) _/ q) V h0 w6 s8 ofile_put_contents($filename, $result);
( S E, D. f7 W P/ @+ mecho $result;! j D% L2 Q+ m6 Z: {( Y* T8 D
}
* g8 d6 G1 v: j+ B7 O7 M?>8 t9 w% ~4 k$ G1 w. [& L0 ]) B+ p7 k
复制代码4 n+ a' w9 T+ B% O# i
这是另一种非常常见的实现,通过PHP使用curl获取数据。“卷曲”文件夹下的文件/数据下载并存储到磁盘,并附加一个随机数“。txt’结尾的文件扩展名。
7 y5 }% e: b( ?2 o! Y在本系列的下一部分,我们将看到一些可以启动的攻击使用此vulnerbility。XSPA允许攻击者在目标服务器基础设施,主要是内网的Web服务器,Web服务器本身,以及面向互联网的服务器以及。目前,我已经遇到以下五种不同的攻击方式,可以启动使用XSPA:
5 ` M9 S2 B( h4 E3 w1。端口扫描远程互联网服务器,内网设备和本地Web服务器本身。横幅敛也有可能在某些情况下, w& m* L3 W5 m) @& R/ t& V5 O5 F
2。开发弱势运行的程序在Intranet或本地Web服务器
" Y6 h' T9 I( _8 w& I3。攻击内部/外部Web应用程序很容易通过URL来获取参数的漏洞(SQLI,参数操作等)
5 y; q6 }: D7 m, z& r+ e' m$ `6 c; M4。指纹图谱的Intranet Web应用程序使用标准的应用程序的默认文件及行为
$ u4 P; o B+ K2 P- d7 L i3 k5。阅读使用file :/ / /协议处理程序的本地Web服务器上的文件。 |